From d151e74336d1567a408204539a38b2a0a30a0231 Mon Sep 17 00:00:00 2001 From: longpanda Date: Sat, 23 Oct 2021 15:46:28 +0800 Subject: [PATCH] Optimization for Ventoy2Disk.exe --- INSTALL/Ventoy2Disk.exe | Bin 347648 -> 347648 bytes Ventoy2Disk/Ventoy2Disk/DiskService_vds.c | 27 ++++++++-------- Ventoy2Disk/Ventoy2Disk/PhyDrive.c | 36 +++++++++++++++++----- 3 files changed, 43 insertions(+), 20 deletions(-) diff --git a/INSTALL/Ventoy2Disk.exe b/INSTALL/Ventoy2Disk.exe index 626efc0787802ccb122202662836d40a07aa3c8c..4f66a011d1287637ad03f18a3519321820d7f55a 100644 GIT binary patch delta 34329 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Ⓢ?|)DKz)uLNC!UO_(y=I~%NB=eWx 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%0Ao}sxo%G>k-{Ramc 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 Z4VX3WGN>9$*gU0q{)~tP%abF?e*yT*4_^QP diff --git a/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c b/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c index 69f09967..49479b6d 100644 --- a/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c +++ b/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c @@ -887,7 +887,7 @@ STATIC BOOL VDS_CallBack_CleanDisk(void *pInterface, VDS_DISK_PROP *pDiskProp, U BOOL VDS_CleanDisk(int DriveIndex) { BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_CleanDisk, 0); - Log("VDS_CleanDisk %d ret:%d", DriveIndex, ret); + Log("VDS_CleanDisk %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -958,15 +958,15 @@ STATIC BOOL VDS_CallBack_DeletePartition(void *pInterface, VDS_DISK_PROP *pDiskP BOOL VDS_DeleteAllPartitions(int DriveIndex) { - BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_DeletePartition, 0); - Log("VDS_DeleteAllPartitions %d ret:%d", DriveIndex, ret); + BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_DeletePartition, 0); + Log("VDS_DeleteAllPartitions %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } BOOL VDS_DeleteVtoyEFIPartition(int DriveIndex) { BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_DeletePartition, 2); - Log("VDS_DeleteVtoyEFIPartition %d ret:%d", DriveIndex, ret); + Log("VDS_DeleteVtoyEFIPartition %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -1029,8 +1029,8 @@ STATIC BOOL VDS_CallBack_ChangeEFIAttr(void *pInterface, VDS_DISK_PROP *pDiskPro BOOL VDS_ChangeVtoyEFIAttr(int DriveIndex, UINT64 Attr) { - BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_ChangeEFIAttr, Attr); - Log("VDS_ChangeVtoyEFIAttr %d ret:%d", DriveIndex, ret); + BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK, DriveIndex, VDS_CallBack_ChangeEFIAttr, Attr); + Log("VDS_ChangeVtoyEFIAttr %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -1070,7 +1070,7 @@ BOOL VDS_ChangeVtoyEFI2ESP(int DriveIndex, UINT64 Offset) Para.Offset = Offset; BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK2, DriveIndex, VDS_CallBack_ChangeEFIType, (ULONG)&Para); - Log("VDS_ChangeVtoyEFI2ESP %d ret:%d", DriveIndex, ret); + Log("VDS_ChangeVtoyEFI2ESP %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -1083,7 +1083,7 @@ BOOL VDS_ChangeVtoyEFI2Basic(int DriveIndex, UINT64 Offset) Para.Offset = Offset; BOOL ret = VDS_DiskCommProc(INTF_ADVANCEDDISK2, DriveIndex, VDS_CallBack_ChangeEFIType, (ULONG)&Para); - Log("VDS_ChangeVtoyEFI2ESP %d ret:%d", DriveIndex, ret); + Log("VDS_ChangeVtoyEFI2Basic %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -1157,8 +1157,8 @@ BOOL VDS_CreateVtoyEFIPart(int DriveIndex, UINT64 Offset) memcpy(&(Para.Type), &EspPartType, sizeof(GUID)); CoCreateGuid(&(Para.Id)); - BOOL ret = VDS_DiskCommProc(INTF_CREATEPARTITIONEX, DriveIndex, VDS_CallBack_CreateVtoyEFI, (ULONG)&Para); - Log("VDS_CreateVtoyEFIPart %d ret:%d", DriveIndex, ret); + BOOL ret = VDS_DiskCommProc(INTF_CREATEPARTITIONEX, DriveIndex, VDS_CallBack_CreateVtoyEFI, (ULONG)&Para); + Log("VDS_CreateVtoyEFIPart %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; } @@ -1217,7 +1217,8 @@ BOOL VDS_FormatVtoyEFIPart(int DriveIndex, UINT64 Offset) Para.Offset = Offset; memcpy(Para.Name, L"VTOYEFI", 7 * 2); - BOOL ret = VDS_DiskCommProc(INTF_PARTITIONMF, DriveIndex, VDS_CallBack_FormatVtoyEFI, (ULONG)&Para); - Log("VDS_FormatVtoyEFIPart %d ret:%d", DriveIndex, ret); + BOOL ret = VDS_DiskCommProc(INTF_PARTITIONMF, DriveIndex, VDS_CallBack_FormatVtoyEFI, (ULONG)&Para); + Log("VDS_FormatVtoyEFIPart %d ret:%d (%s)", DriveIndex, ret, ret ? "SUCCESS" : "FAIL"); return ret; -} \ No newline at end of file +} + diff --git a/Ventoy2Disk/Ventoy2Disk/PhyDrive.c b/Ventoy2Disk/Ventoy2Disk/PhyDrive.c index d36f51dd..343866d5 100644 --- a/Ventoy2Disk/Ventoy2Disk/PhyDrive.c +++ b/Ventoy2Disk/Ventoy2Disk/PhyDrive.c @@ -1837,9 +1837,11 @@ static BOOL BackupDataBeforeCleanDisk(int PhyDrive, UINT64 DiskSize, BYTE **pBac BOOL Return = FALSE; BOOL ret = FALSE; BYTE *backup = NULL; + UINT64 offset; HANDLE hDrive = INVALID_HANDLE_VALUE; LARGE_INTEGER liCurPosition; LARGE_INTEGER liNewPosition; + VTOY_GPT_INFO *pGPT = NULL; Log("BackupDataBeforeCleanDisk %d", PhyDrive); @@ -1870,6 +1872,18 @@ static BOOL BackupDataBeforeCleanDisk(int PhyDrive, UINT64 DiskSize, BYTE **pBac goto out; } + pGPT = (VTOY_GPT_INFO *)backup; + offset = pGPT->Head.EfiBackupLBA * 512; + if (offset >= (DiskSize - SIZE_2MB) && offset < DiskSize) + { + Log("EFI partition table check success"); + } + else + { + Log("Backup EFI LBA not in last 2MB range: %llu", pGPT->Head.EfiBackupLBA); + goto out; + } + //read last 2MB liCurPosition.QuadPart = DiskSize - SIZE_2MB; liNewPosition.QuadPart = 0; @@ -2111,6 +2125,13 @@ int UpdateVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int TryId) { bWriteBack = FALSE; } + + //write the first 2MB except parttable + if (!WriteBackupDataToDisk(hDrive, 34 * 512, pBackup + 34 * 512, SIZE_2MB - 34 * 512)) + { + bWriteBack = FALSE; + } + Status = ERROR_NOT_FOUND; } else if (Esp2Basic) @@ -2288,12 +2309,7 @@ int UpdateVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int TryId) if (CleanDisk) { - if (!WriteBackupDataToDisk(hDrive, 4 * 512, pBackup + 4 * 512, SIZE_2MB - 4 * 512)) - { - bWriteBack = FALSE; - } - - if (!WriteBackupDataToDisk(hDrive, 0, pBackup, 4 * 512)) + if (!WriteBackupDataToDisk(hDrive, 0, pBackup, 34 * 512)) { bWriteBack = FALSE; } @@ -2302,9 +2318,15 @@ int UpdateVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int TryId) if (bWriteBack) { - Log("Write success, now delete %s", BackBinFile); + Log("Write backup data success, now delete %s", BackBinFile); DeleteFileA(BackBinFile); } + else + { + Log("Write backup data failed"); + } + + Sleep(1000); } //Refresh Drive Layout