X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/4bf43ab9d4e6b724836724c1d514760d164df79a..293f677cbfbaae984fc3063c62d4b9afa0067520:/Plugson/src/Core/ventoy_util_windows.c diff --git a/Plugson/src/Core/ventoy_util_windows.c b/Plugson/src/Core/ventoy_util_windows.c index 24da3ec..b65f773 100644 --- a/Plugson/src/Core/ventoy_util_windows.c +++ b/Plugson/src/Core/ventoy_util_windows.c @@ -683,75 +683,6 @@ int ventoy_write_buf_to_file(const char *FileName, void *Bufer, int BufLen) return 0; } -int ventoy_decompress_tar(char *tarbuf, int buflen, int *tarsize) -{ - int rc = 1; - int inused; - HANDLE hFile; - DWORD dwSize; - DWORD dwRead; - WCHAR FullPath[MAX_PATH]; - BYTE *buffer; - VENTOY_MAGIC Magic; - - GetModuleFileNameW(NULL, FullPath, MAX_PATH); - hFile = CreateFileW(FullPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); - if (hFile == INVALID_HANDLE_VALUE) - { - vlog("Failed to open self %u\n", LASTERR); - return 1; - } - - dwSize = GetFileSize(hFile, NULL); - if (dwSize == INVALID_FILE_SIZE) - { - vlog("Invalid self exe size %u\n", LASTERR); - CHECK_CLOSE_HANDLE(hFile); - return 1; - } - - buffer = malloc(dwSize); - if (!buffer) - { - vlog("Failed to malloc %u\n", dwSize); - CHECK_CLOSE_HANDLE(hFile); - return 1; - } - ReadFile(hFile, buffer, dwSize, &dwRead, NULL); - - memcpy(&Magic, buffer + dwSize - sizeof(Magic), sizeof(Magic)); - if (Magic.magic1 == 0x54535251 && Magic.magic2 == 0xa4a3a2a1) - { - g_unxz_buffer = (UCHAR *)tarbuf; - g_unxz_len = 0; - - unxz(buffer + dwSize - Magic.xzlen - sizeof(Magic), Magic.xzlen, NULL, unxz_flush, NULL, &inused, unxz_error); - vlog("bigexe:%u xzlen:%u rawdata size:%d\n", dwSize, Magic.xzlen, g_unxz_len); - - if (inused != Magic.xzlen) - { - vlog("Failed to unxz www %d\n", inused); - rc = 1; - } - else - { - *tarsize = g_unxz_len; - rc = 0; - } - } - else - { - vlog("Invalid magic 0x%x 0x%x\n", Magic.magic1, Magic.magic2); - rc = 1; - } - - free(buffer); - CHECK_CLOSE_HANDLE(hFile); - - return rc; -} - - static volatile int g_thread_stop = 0; static HANDLE g_writeback_thread; static HANDLE g_writeback_event;