1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00

Windows MBR Bootloader: better way to handle displaying write errors in WriteEncryptedSectors function

This commit is contained in:
Mounir IDRASSI
2019-11-09 00:24:17 +01:00
parent 3818b443c3
commit 8e9627877d

View File

@@ -108,19 +108,22 @@ BiosResult WriteEncryptedSectors (uint16 sourceSegment, uint16 sourceOffset, byt
EncryptDataUnits (SectorBuffer, &dataUnitNo, 1, BootCryptoInfo); EncryptDataUnits (SectorBuffer, &dataUnitNo, 1, BootCryptoInfo);
} }
result = ReadWriteSectors (true, SectorBuffer, drive, sector + writeOffset, 1, false); result = ReadWriteSectors (true, SectorBuffer, drive, sector + writeOffset, 1, true);
if (BiosResultTimeout == result) if (BiosResultTimeout == result)
{ {
result = ReadWriteSectors (false, TC_BOOT_LOADER_BUFFER_SEGMENT, 0, drive, sector + writeOffset, 8, false); if (BiosResultSuccess == ReadWriteSectors (false, TC_BOOT_LOADER_BUFFER_SEGMENT, 0, drive, sector + writeOffset, 8, false))
if (BiosResultSuccess == result)
{ {
CopyMemory (SectorBuffer, TC_BOOT_LOADER_BUFFER_SEGMENT,0, TC_LB_SIZE); CopyMemory (SectorBuffer, TC_BOOT_LOADER_BUFFER_SEGMENT,0, TC_LB_SIZE);
result = ReadWriteSectors (true, TC_BOOT_LOADER_BUFFER_SEGMENT, 0, drive, sector + writeOffset, 8, false); result = ReadWriteSectors (true, TC_BOOT_LOADER_BUFFER_SEGMENT, 0, drive, sector + writeOffset, 8, true);
} }
} }
if (result != BiosResultSuccess) if (result != BiosResultSuccess)
{
sector += writeOffset;
PrintDiskError (result, true, drive, &sector);
break; break;
}
++sector; ++sector;
++dataUnitNo; ++dataUnitNo;