+ bRet = TRUE;\r
+\r
+out:\r
+ \r
+ return bRet;\r
+}\r
+\r
+static BOOL BackupDataBeforeCleanDisk(int PhyDrive, UINT64 DiskSize, BYTE **pBackup)\r
+{\r
+ DWORD dwSize;\r
+ DWORD dwStatus;\r
+ BOOL Return = FALSE;\r
+ BOOL ret = FALSE;\r
+ BYTE *backup = NULL;\r
+ UINT64 offset;\r
+ HANDLE hDrive = INVALID_HANDLE_VALUE;\r
+ LARGE_INTEGER liCurPosition;\r
+ LARGE_INTEGER liNewPosition;\r
+ VTOY_GPT_INFO *pGPT = NULL;\r
+\r
+ Log("BackupDataBeforeCleanDisk %d", PhyDrive);\r
+\r
+ // step1: check write access\r
+ hDrive = GetPhysicalHandle(PhyDrive, TRUE, TRUE, FALSE);\r
+ if (hDrive == INVALID_HANDLE_VALUE)\r
+ {\r
+ Log("Failed to GetPhysicalHandle for write.");\r
+ goto out;\r
+ }\r