]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
[update] Make injection plugin available in WIMBOOT mode. (#1834)
authorlongpanda <admin@ventoy.net>
Tue, 13 Sep 2022 14:04:19 +0000 (22:04 +0800)
committerlongpanda <admin@ventoy.net>
Tue, 13 Sep 2022 14:04:19 +0000 (22:04 +0800)
INSTALL/ventoy/vtoyjump32.exe
INSTALL/ventoy/vtoyjump64.exe
vtoyjump/vtoyjump/vtoyjump.c
vtoyjump/vtoyjump/vtoyjump.h

index 23bb57519b13b2b4ad51f5a2e0fb096e2c817144..d5deb3ac2324bda1a972f0d814b23e2d756e94c2 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump32.exe and b/INSTALL/ventoy/vtoyjump32.exe differ
index 28c623df826bfa60a4b285fe0965711eaaaba25f..4d36cf67f9e0ab6a05954c7b914e9743a3e7b909 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump64.exe and b/INSTALL/ventoy/vtoyjump64.exe differ
index 613e8d06184e99135f2b32d001e2fe2bcf9a5d5d..96edd9285a716831f05a42473f641bcb91b5961b 100644 (file)
@@ -36,7 +36,6 @@ static ventoy_guid g_ventoy_guid = VENTOY_GUID;
 static HANDLE g_vtoylog_mutex = NULL;\r
 static HANDLE g_vtoyins_mutex = NULL;\r
 \r
 static HANDLE g_vtoylog_mutex = NULL;\r
 static HANDLE g_vtoyins_mutex = NULL;\r
 \r
-static INT g_winpeshl_ini_updated = 0;\r
 static DWORD g_vtoy_disk_drive;\r
 \r
 static CHAR g_prog_full_path[MAX_PATH];\r
 static DWORD g_vtoy_disk_drive;\r
 \r
 static CHAR g_prog_full_path[MAX_PATH];\r
@@ -1965,31 +1964,6 @@ static BOOL CheckVentoyDisk(DWORD DiskNum)
     return FALSE;\r
 }\r
 \r
     return FALSE;\r
 }\r
 \r
-static int GetWinpeshlIniFileAttr(WinpeshlIniAttr *pAttr)\r
-{\r
-    HANDLE hFile;\r
-    SYSTEMTIME systime;\r
-\r
-    hFile = CreateFileA(WINPESHL_INI, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);\r
-    if (hFile == INVALID_HANDLE_VALUE)\r
-    {\r
-        Log("Could not open the file<%s>, error:%u", WINPESHL_INI, GetLastError());\r
-        return 1;\r
-    }\r
-\r
-    pAttr->FileSize = (INT)GetFileSize(hFile, NULL);\r
-    GetFileTime(hFile, &pAttr->CreateTime, &pAttr->LastAccessTime, &pAttr->LastWriteTime);\r
-\r
-    FileTimeToSystemTime(&pAttr->LastWriteTime, &systime);\r
-    Log("Winpeshl.ini size:%d LastWriteTime:<%04u/%02u/%02u %02u:%02u:%02u.%03u>", \r
-        pAttr->FileSize,\r
-        systime.wYear, systime.wMonth, systime.wDay, \r
-        systime.wHour, systime.wMinute, systime.wSecond, \r
-        systime.wMilliseconds);\r
-\r
-    CloseHandle(hFile);\r
-    return 0;\r
-}\r
 \r
 static int VentoyHook(ventoy_os_param *param)\r
 {\r
 \r
 static int VentoyHook(ventoy_os_param *param)\r
 {\r
@@ -2012,8 +1986,6 @@ static int VentoyHook(ventoy_os_param *param)
 \r
        Log("VentoyHook Path:<%s>", param->vtoy_img_path);\r
 \r
 \r
        Log("VentoyHook Path:<%s>", param->vtoy_img_path);\r
 \r
-    g_winpeshl_ini_updated = 0;\r
-\r
     if (IsUTF8Encode(param->vtoy_img_path))\r
     {\r
         Log("This file is UTF8 encoding");\r
     if (IsUTF8Encode(param->vtoy_img_path))\r
     {\r
         Log("This file is UTF8 encoding");\r
@@ -2210,35 +2182,9 @@ static int VentoyHook(ventoy_os_param *param)
         sprintf_s(IsoPath, sizeof(IsoPath), "%C:%s", VtoyLetter, g_windows_data.injection_archive);\r
         if (IsFileExist("%s", IsoPath))\r
         {\r
         sprintf_s(IsoPath, sizeof(IsoPath), "%C:%s", VtoyLetter, g_windows_data.injection_archive);\r
         if (IsFileExist("%s", IsoPath))\r
         {\r
-            int rc1 = -1, rc2 = -1;\r
-            WinpeshlIniAttr Attr1, Attr2;\r
-            memset(&Attr1, 0, sizeof(Attr1));\r
-            memset(&Attr2, 0, sizeof(Attr2));\r
-\r
             Log("decompress injection archive %s...", IsoPath);\r
             Log("decompress injection archive %s...", IsoPath);\r
-\r
-            if (IsFileExist(WINPESHL_INI))\r
-            {\r
-                rc1 = GetWinpeshlIniFileAttr(&Attr1);\r
-            }\r
-\r
             DecompressInjectionArchive(IsoPath, VtoyDiskNum);\r
 \r
             DecompressInjectionArchive(IsoPath, VtoyDiskNum);\r
 \r
-            if (IsFileExist(WINPESHL_INI))\r
-            {\r
-                rc2 = GetWinpeshlIniFileAttr(&Attr2);\r
-                if (rc1 == rc2 && rc1 == 0)\r
-                {\r
-                    if (Attr1.FileSize != Attr2.FileSize ||\r
-                        Attr1.LastWriteTime.dwHighDateTime != Attr2.LastWriteTime.dwHighDateTime ||\r
-                        Attr1.LastWriteTime.dwLowDateTime != Attr2.LastWriteTime.dwLowDateTime)\r
-                    {\r
-                        Log("winpeshl.ini file updated");\r
-                        g_winpeshl_ini_updated = 1;\r
-                    }\r
-                }\r
-            }\r
-\r
             if (IsFileExist("%s", AUTO_RUN_BAT))\r
             {\r
                 HANDLE hOut;\r
             if (IsFileExist("%s", AUTO_RUN_BAT))\r
             {\r
                 HANDLE hOut;\r
@@ -2526,11 +2472,13 @@ int real_main(int argc, char **argv)
        if (strstr(argv[0], "vtoyjump.exe"))\r
        {\r
         wimboot = 1;\r
        if (strstr(argv[0], "vtoyjump.exe"))\r
        {\r
         wimboot = 1;\r
-               rc = VentoyJumpWimboot(argc, argv, LunchFile);\r
+        DeleteFileA(WINPESHL_INI);\r
+        IsFileExist(WINPESHL_INI);\r
+        rc = VentoyJumpWimboot(argc, argv, LunchFile);\r
        }\r
        else\r
        {\r
        }\r
        else\r
        {\r
-               rc = VentoyJump(argc, argv, LunchFile);\r
+        rc = VentoyJump(argc, argv, LunchFile);\r
        }\r
 \r
        Log("LunchFile=<%s> CallParam=<%s>", LunchFile, CallParam);\r
        }\r
 \r
        Log("LunchFile=<%s> CallParam=<%s>", LunchFile, CallParam);\r
@@ -2548,10 +2496,10 @@ int real_main(int argc, char **argv)
                sprintf_s(LunchFile, sizeof(LunchFile), "%s", g_prog_full_path);\r
                Log("Final lunchFile is <%s>", LunchFile);\r
        }\r
                sprintf_s(LunchFile, sizeof(LunchFile), "%s", g_prog_full_path);\r
                Log("Final lunchFile is <%s>", LunchFile);\r
        }\r
-    else if (wimboot && g_winpeshl_ini_updated)\r
+    else if (wimboot && IsFileExist(WINPESHL_INI))\r
     {\r
         sprintf_s(LunchFile, MAX_PATH, "X:\\Windows\\system32\\winpeshl.exe");\r
     {\r
         sprintf_s(LunchFile, MAX_PATH, "X:\\Windows\\system32\\winpeshl.exe");\r
-        Log("Recall winpeshl.exe");\r
+        Log("winpeshl.ini updated, now recall winpeshl.exe");\r
     }\r
     else\r
     {\r
     }\r
     else\r
     {\r
index f4abb264b94ed6043e5a5bf1818048659698aab3..b19b334c1f2b353f335634c0b07294ad939549b2 100644 (file)
@@ -152,15 +152,6 @@ typedef struct VTOY_GPT_INFO
 #pragma pack()
 \r
 \r
 #pragma pack()
 \r
 \r
-typedef struct WinpeshlIniAttr\r
-{\r
-    INT FileSize;\r
-    FILETIME CreateTime;\r
-    FILETIME LastAccessTime;\r
-    FILETIME LastWriteTime;\r
-}WinpeshlIniAttr;\r
-\r
-\r
 typedef struct VarDiskInfo\r
 {\r
     UINT64 Capacity;\r
 typedef struct VarDiskInfo\r
 {\r
     UINT64 Capacity;\r