This commit is contained in:
longpanda
2020-04-08 22:44:17 +08:00
parent ef80baf150
commit c72f96312c
11 changed files with 74 additions and 20 deletions
+4 -4
View File
@@ -38,9 +38,9 @@ const TCHAR * g_Str_English[STR_ID_MAX] =
TEXT("The disk will be formatted and all the data will be lost.\r\nContinue?"),
TEXT("The disk will be formatted and all the data will be lost.\r\nContinue? (Double Check)"),
TEXT("Congratulations!\r\nVentoy has been successfully installed to the device."),
TEXT("An error occurred during the installation. You can try again and check log.txt for detail."),
TEXT("An error occurred during the installation. You can replug the USB and try again. Check log.txt for detail."),
TEXT("Congratulations!\r\nVentoy has been successfully updated to the device."),
TEXT("An error occurred during the update. You can try again and check log.txt for detail."),
TEXT("An error occurred during the update. You can replug the USB and try again. Check log.txt for detail."),
TEXT("A thread is running, please wait..."),
};
@@ -61,9 +61,9 @@ const TCHAR * g_Str_ChineseSimple[STR_ID_MAX] =
TEXT("磁盘会被格式化, 所有数据都会丢失!\r\n是否继续?"),
TEXT("磁盘会被格式化, 所有数据都会丢失!\r\n再次确认是否继续?"),
TEXT("恭喜你! Ventoy 已经成功安装到此设备中."),
TEXT("安装 Ventoy 过程中发生错误. 你可以重试一次, 详细信息请查阅 log.txt 文件."),
TEXT("安装 Ventoy 过程中发生错误. 你可以重新拔插一下U盘然后重试一次, 详细信息请查阅 log.txt 文件."),
TEXT("恭喜你! 新版本的 Ventoy 已经成功更新到此设备中."),
TEXT("更新 Ventoy 过程中遇到错误. 你可以重试一次, 详细信息请查阅 log.txt 文件."),
TEXT("更新 Ventoy 过程中遇到错误. 你可以重新拔插一下U盘然后重试一次, 详细信息请查阅 log.txt 文件."),
TEXT("当前有任务正在运行, 请等待..."),
};
+30 -11
View File
@@ -25,7 +25,7 @@
PHY_DRIVE_INFO *g_PhyDriveList = NULL;
DWORD g_PhyDriveCount = 0;
static int g_FilterRemovable = 1;
static int g_FilterRemovable = 0;
static int g_FilterUSB = 1;
int g_ForceOperation = 1;
@@ -41,11 +41,8 @@ int ParseCmdLineOption(LPSTR lpCmdLine)
for (i = 0; i < __argc; i++)
{
if (strncmp(__argv[i], "-R", 2) == 0)
{
g_FilterRemovable = 0;
}
else if (strncmp(__argv[i], "-U", 2) == 0)
if (strncmp(__argv[i], "-U", 2) == 0 ||
strncmp(__argv[i], "-u", 2) == 0)
{
g_FilterUSB = 0;
}
@@ -58,11 +55,6 @@ int ParseCmdLineOption(LPSTR lpCmdLine)
GetCurrentDirectoryA(sizeof(cfgfile), cfgfile);
strcat_s(cfgfile, sizeof(cfgfile), "\\Ventoy2Disk.ini");
if (0 == GetPrivateProfileIntA("Filter", "Removable", 1, cfgfile))
{
g_FilterRemovable = 0;
}
if (0 == GetPrivateProfileIntA("Filter", "USB", 1, cfgfile))
{
g_FilterUSB = 0;
@@ -258,6 +250,30 @@ PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id)
return NULL;
}
int SortPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount)
{
DWORD i, j;
PHY_DRIVE_INFO TmpDriveInfo;
for (i = 0; i < DriveCount; i++)
{
for (j = i + 1; j < DriveCount; j++)
{
if (pDriveList[i].BusType == BusTypeUsb && pDriveList[j].BusType == BusTypeUsb)
{
if (pDriveList[i].RemovableMedia == FALSE && pDriveList[j].RemovableMedia == TRUE)
{
memcpy(&TmpDriveInfo, pDriveList + i, sizeof(PHY_DRIVE_INFO));
memcpy(pDriveList + i, pDriveList + j, sizeof(PHY_DRIVE_INFO));
memcpy(pDriveList + j, &TmpDriveInfo, sizeof(PHY_DRIVE_INFO));
}
}
}
}
return 0;
}
int Ventoy2DiskInit(void)
{
g_PhyDriveList = (PHY_DRIVE_INFO *)malloc(sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);
@@ -269,6 +285,9 @@ int Ventoy2DiskInit(void)
memset(g_PhyDriveList, 0, sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);
GetAllPhysicalDriveInfo(g_PhyDriveList, &g_PhyDriveCount);
SortPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);
FilterPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);
return 0;
Binary file not shown.
+20
View File
@@ -213,6 +213,16 @@ static DWORD WINAPI InstallVentoyThread(void* Param)
PHY_DRIVE_INFO *pPhyDrive = (PHY_DRIVE_INFO *)Param;
rc = InstallVentoy2PhyDrive(pPhyDrive);
if (rc)
{
Log("This time install failed, now wait and retry...");
Sleep(10000);
Log("Now retry to install...");
rc = InstallVentoy2PhyDrive(pPhyDrive);
}
if (rc == 0)
{
PROGRESS_BAR_SET_POS(PT_FINISH);
@@ -239,6 +249,16 @@ static DWORD WINAPI UpdateVentoyThread(void* Param)
PHY_DRIVE_INFO *pPhyDrive = (PHY_DRIVE_INFO *)Param;
rc = UpdateVentoy2PhyDrive(pPhyDrive);
if (rc)
{
Log("This time update failed, now wait and retry...");
Sleep(10000);
Log("Now retry to update...");
rc = UpdateVentoy2PhyDrive(pPhyDrive);
}
if (rc == 0)
{
PROGRESS_BAR_SET_POS(PT_FINISH);