Am besten mit dem Ziffernblock.
Sorry aber ich verstehe die Frage nicht. Noch mal: Du gibst so viel an wie du aufeinaml lesen möchtest, zum Beipsiel 1024 Bytes. Dann liest ReadFile 1024 Bytes so lange wie es geht. Irgendwann wird ReadFile, wenn du das in einer Schleife tust nichtmehr 1024 Bytes lesen können, weil nicht mehr so viele Bytes da sind. Wie viel es dann noch gelesen hat steht im vorletzten Parameter. Das heißt mit PseudoCode:
Delphi-Quellcode:
var
Gelesen: Cardinal;
begin
while Gelesen = 1024 do
begin
ReadFile(..., ..., 1024, Gelesen, nil)
// mach was mit den Bytes
end;
Wenn
Gelesen also nicht mehr 1024 ist, dann weißt du, dass du die ganze Datei in der Schleife eingelesen hast.