Skip to content

Commit

Permalink
1. Add support for some special WinPE
Browse files Browse the repository at this point in the history
2. Add VentoyAutoRun.bat feature
  • Loading branch information
ventoy committed Oct 16, 2021
1 parent 1473be0 commit 0fa25c4
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 0 deletions.
Binary file modified INSTALL/ventoy/vtoyjump32.exe
Binary file not shown.
Binary file modified INSTALL/ventoy/vtoyjump64.exe
Binary file not shown.
51 changes: 51 additions & 0 deletions LANGUAGES/languages.json
Original file line number Diff line number Diff line change
Expand Up @@ -1987,5 +1987,56 @@
"STR_VTSI_CREATE_SUCCESS":"VTSI ֆայլը հաջողությամբ ստեղծվեց!#@Դուք կարող եք օգտագործել Rufus (3.15+) կրիչում ձայնագրելու համար, որպեսզի ավարտեք Ventoy-ի տեղադրումը:",
"STR_VTSI_CREATE_FAILED":"VTSI ֆայլի ստեղծումը ձախողվեց։",
"STRXXX":""
},
{
"name":"Finnish (suomi)",
"FontFamily":"Courier New",
"FontSize":16,
"Author":"heidi.wenger",

"STR_ERROR":"Virhe",
"STR_WARNING":"Varoitus",
"STR_INFO":"Tiedot",
"STR_INCORRECT_DIR":"Ole hyvä ja aja oikean kansion alla!",
"STR_INCORRECT_TREE_DIR":"Älä aja minua tässä, ole hyvä ja lataa julkaistu asennuspaketti, ja suorita ajo siellä.",
"STR_DEVICE":"Laite",
"STR_LOCAL_VER":"Ventoy paketissa",
"STR_DISK_VER":"Ventoy laitteessa",
"STR_STATUS":"Tila - VALMIS",
"STR_INSTALL":"Asenna",
"STR_UPDATE":"Päivitä",
"STR_UPDATE_TIP":"Päivytystoiminto on turvallinen, ISO -tiedostot pysyvät muuttumattomana.#@Jatketaanko?",
"STR_INSTALL_TIP":"Laite tullaan alustamaan ja tämän johdosta kaikki tieto sen sisällä menetetään.#@Jatketaanko?",
"STR_INSTALL_TIP2":"Laite tullaan alustamaan ja tämän johdosta kaikki tieto sen sisällä menetetään.#@Jatketaanko? (Kaksoistarkistus)",
"STR_INSTALL_SUCCESS":"Onnittelut!#@Ventoy on asennettu laitteeseen onnistuneesti.",
"STR_INSTALL_FAILED":"Asennuksen yhteydessä ilmeni virhe. Voit nypätä USB-laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat. Mikäli toimi epäonnistuu aina, lue usein kysytyt kysymykset (FAQ) virallisella sivustolla.",
"STR_UPDATE_SUCCESS":"Onnittelut!#@Ventoy päivitettiin laitteeseen onnistuneesti.",
"STR_UPDATE_FAILED":"Päivityksen aikana ilmeni virhe. Voit nypätä USB-laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat. Mikäli toimi epäonnistuu aina, lue usein kysytyt kysymykset (FAQ) virallisella sivustolla.",
"STR_WAIT_PROCESS":"Toimi on ajossa juuri nyt, ole hyvä ja odota...",
"STR_MENU_OPTION":"Vaihtoehto",
"STR_MENU_SECURE_BOOT":"Secure Boot (turvakäynnistys) -tuki",
"STR_MENU_PART_CFG":"Osioasetukset",
"STR_BTN_OK":"SELVÄ",
"STR_BTN_CANCEL":"Peruuta",
"STR_PRESERVE_SPACE":"Jätä hiukan vapaata tilaa levyn loppuun",
"STR_SPACE_VAL_INVALID":"Epäkelpo määrä tilavaraukselle",
"STR_MENU_CLEAR":"Poista Ventoy",
"STR_CLEAR_SUCCESS":"Ventoy on nyt poistettu laitteesta onnistuneesti.",
"STR_CLEAR_FAILED":"Ilmeni virhe poistettaessa Ventoyta levyltä. Voit nypätä laitteen irti ja koettaa uudelleen. Katso log.txt nähdäksesi yksityiskohdat.",
"STR_MENU_PART_STYLE":"Osiotyyli",
"STR_DISK_2TB_MBR_ERROR":"Ole hyvä ja valitse GPT laitteille joissa on tilavuutta yli 2 teratavua",
"STR_SHOW_ALL_DEV":"Näytä kaikki laitteet",
"STR_PART_ALIGN_4KB":"Järjestä osiot 4Kt mukaisesti",
"STR_WEB_COMMUNICATION_ERR":"Kommunikaatiovirhe:",
"STR_WEB_REMOTE_ABNORMAL":"Kommunikaatiovirhe: epätavanomainen etävaste",
"STR_WEB_REQUEST_TIMEOUT":"Kommunikaatiovirhe: pyynnön aikavaste ylittyi",
"STR_WEB_SERVICE_UNAVAILABLE":"Kommunikaatiovirhe: palvelu on tavoittamattomissa",
"STR_WEB_TOKEN_MISMATCH":"Taustaohjelman tila päivittyi, ole hyvä ja yritä myöhemmin uudelleen.",
"STR_WEB_SERVICE_BUSY":"Palvelu ruuhkautunut, ole hyvä ja yritä myöhemmin uudelleen.",
"STR_MENU_VTSI_CREATE":"Luo VTSI -tiedosto",
"STR_VTSI_CREATE_TIP":"Tällä kerralla laitteeseen ei kirjoiteta, vaan luodaan ainoastaan VTSI -tiedosto#@Jatketaanko?",
"STR_VTSI_CREATE_SUCCESS":"VTSI -tiedosto luotiin onnistuneesti!#@Voit käyttää Rufus-ohjelmaa(3.15+) kirjoittaaksesi sen laitteeseen viimeistelläksesi Ventoy-asennuksen.",
"STR_VTSI_CREATE_FAILED":"VTSI -tiedoston luominen epäonnistui.",
"STRXXX":""
}
]
64 changes: 64 additions & 0 deletions vtoyjump/vtoyjump/vtoyjump.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ static CHAR g_prog_full_path[MAX_PATH];
static CHAR g_prog_dir[MAX_PATH];
static CHAR g_prog_name[MAX_PATH];

#define AUTO_RUN_BAT "X:\\VentoyAutoRun.bat"
#define AUTO_RUN_LOG "X:\\VentoyAutoRun.log"

#define LOG_FILE "X:\\Windows\\system32\\ventoy.log"
#define MUTEX_LOCK(hmutex) if (hmutex != NULL) LockStatus = WaitForSingleObject(hmutex, INFINITE)
#define MUTEX_UNLOCK(hmutex) if (hmutex != NULL && WAIT_OBJECT_0 == LockStatus) ReleaseMutex(hmutex)
Expand Down Expand Up @@ -1251,7 +1254,9 @@ static int VentoyHook(ventoy_os_param *param)
int rc;
BOOL find = FALSE;
CHAR Letter;
CHAR MntLetter;
DWORD Drives;
DWORD NewDrives;
DISK_EXTENT DiskExtent;
UINT8 UUID[16];
CHAR IsoPath[MAX_PATH];
Expand Down Expand Up @@ -1316,7 +1321,28 @@ static int VentoyHook(ventoy_os_param *param)

Log("Find ISO file <%s>", IsoPath);

Drives = GetLogicalDrives();
Log("Drives before mount: 0x%x", Drives);

rc = MountIsoFile(IsoPath, DiskExtent.DiskNumber);

NewDrives = GetLogicalDrives();
Log("Drives after mount: 0x%x", NewDrives);

MntLetter = 'A';
NewDrives = (NewDrives ^ Drives);
while (NewDrives)
{
if (NewDrives & 0x01)
{
Log("Maybe the ISO file is mounted at %C:", MntLetter);
break;
}

NewDrives >>= 1;
MntLetter++;
}

Log("Mount ISO FILE: %s", rc == 0 ? "SUCCESS" : "FAILED");

// for protect
Expand Down Expand Up @@ -1348,6 +1374,44 @@ static int VentoyHook(ventoy_os_param *param)
{
Log("decompress injection archive %s...", IsoPath);
DecompressInjectionArchive(IsoPath, DiskExtent.DiskNumber);

if (IsFileExist("%s", AUTO_RUN_BAT))
{
HANDLE hOut;
DWORD flags = CREATE_NO_WINDOW;
CHAR StrBuf[1024];
STARTUPINFOA Si;
PROCESS_INFORMATION Pi;
SECURITY_ATTRIBUTES Sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE };

Log("%s exist, now run it...", AUTO_RUN_BAT);

GetStartupInfoA(&Si);

hOut = CreateFileA(AUTO_RUN_LOG,
FILE_APPEND_DATA,
FILE_SHARE_WRITE | FILE_SHARE_READ,
&Sa,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);

Si.dwFlags |= STARTF_USESTDHANDLES;
if (hOut != INVALID_HANDLE_VALUE)
{
Si.hStdError = hOut;
Si.hStdOutput = hOut;
}

sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path);
sprintf_s(StrBuf, sizeof(StrBuf), "cmd.exe /c %s \"%s\" %C", AUTO_RUN_BAT, IsoPath, MntLetter);
CreateProcessA(NULL, StrBuf, NULL, NULL, TRUE, flags, NULL, NULL, &Si, &Pi);
WaitForSingleObject(Pi.hProcess, INFINITE);
}
else
{
Log("%s not exist...", AUTO_RUN_BAT);
}
}
else
{
Expand Down

0 comments on commit 0fa25c4

Please sign in to comment.