Moin Luckie,
zwei Sachen:
Deine Schleife hat einen Durchlauf zuviel
for Loop := NumBufs downto 0 do
entweder NumBufs-1 oder downto 1
Der eigentliche Fehler dürfte aber das hier sein:
Code:
b := Windows.ReadFile(hDrive, [color=red]IOBuffer[/color], VirtBufferSize, BytesRead, nil);
Code:
b := Windows.ReadFile(hDrive, IOBuffer[color=red]^[/color], VirtBufferSize, BytesRead, nil);
(beim Schreiben natürlich auch)