Die Zeile LTotalCount := Read(Buffer, Offset, Count);
schlägt fehl, denn Count beträgt 2.446.468.450 Bytes, LTotalCount -1.848.498.846 Bytes. LTotalCount ist deklariert als NativeInt, also Int64; High(LTotalCount)
= 9.223.372.036.854.775.807 ein Überlauf kann es also ja wohl nicht sein.
Mal geguckt, was
Read
für'n Rückgabetyp hat und welchen Typ der Count Parameter hat?