X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/d02f184a8de1a49db423c9539e468941ab565847..78df21fc4053350dbb6f41061dcfeeff9727f4fb:/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c diff --git a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c index fc6a365..c8b7984 100644 --- a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c +++ b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c @@ -161,10 +161,19 @@ STATIC EFI_STATUS EFIAPI ventoy_read_iso_sector { MapLba = (Sector - pchunk->img_start_sector) * 4 + pchunk->disk_start_sector; } - else + else if (g_chain->disk_sector_size == 1024) + { + MapLba = (Sector - pchunk->img_start_sector) * 2 + pchunk->disk_start_sector; + } + else if (g_chain->disk_sector_size == 2048) { - MapLba = (Sector - pchunk->img_start_sector) * 2048 / g_chain->disk_sector_size + pchunk->disk_start_sector; + MapLba = (Sector - pchunk->img_start_sector) + pchunk->disk_start_sector; } + else if (g_chain->disk_sector_size == 4096) + { + MapLba = ((Sector - pchunk->img_start_sector) >> 1) + pchunk->disk_start_sector; + } + secLeft = pchunk->img_end_sector + 1 - Sector; secRead = (Count < secLeft) ? Count : secLeft; @@ -277,10 +286,19 @@ STATIC EFI_STATUS EFIAPI ventoy_write_iso_sector { MapLba = (Sector - pchunk->img_start_sector) * 4 + pchunk->disk_start_sector; } - else + else if (g_chain->disk_sector_size == 1024) + { + MapLba = (Sector - pchunk->img_start_sector) * 2 + pchunk->disk_start_sector; + } + else if (g_chain->disk_sector_size == 2048) { - MapLba = (Sector - pchunk->img_start_sector) * 2048 / g_chain->disk_sector_size + pchunk->disk_start_sector; + MapLba = (Sector - pchunk->img_start_sector) + pchunk->disk_start_sector; } + else if (g_chain->disk_sector_size == 4096) + { + MapLba = ((Sector - pchunk->img_start_sector) >> 1) + pchunk->disk_start_sector; + } + secLeft = pchunk->img_end_sector + 1 - Sector; secRead = (Count < secLeft) ? Count : secLeft;