Zitat von
himitsu:
also wenn ich das seh, dann kann dieses nur auf die ersten 4 GB der Partition zugreifen.
ich hoffe seine Platte ist nicht größer, denn sonst werden bei Positionen über 4 GB (also ab Sektor 8388608) falsche Sektoren ausgelesen!
naja, ich fange erst bei Offset 500000000 an, sprich 20GB. Da fängt die erweiterete Partition an, welche ich sicher soll. Die Systempartition enthält keine wichtigen Daten, daher brauch ich die nicht sichern.
Zitat von
himitsu:
das FileSeek ... sei froh, daß es da auch eine 64-Bitvariante von gibt (Delphi hat es da eigentlich nicht so mit solchen Funktionen (es mag immernoch seine 32 Bit zu sehr)
PS: das 64-Bit-FileSeek macht intern das
Delphi-Quellcode:
var i8: Int64;
i8 := Int64(Sector-1) * SectorSize;
SetFilePointer(THandle(
Handle), Int64Rec(i8).Lo, @Int64Rec(i8).Hi, FILE_BEGIN);
PSS: das nächste mal bitte einach im
MSDN/
PSDK nachlesen wie gewüschte Funktionen verwendet werden müssen.
Obwohl man eigentlich allein aus den Parameternamen den Grund hätte schon erkennen können
Code:
SetFilePointer(hFile: THandle; lDistanceToMove: [color=#ff0000]Longint;[/color]
lpDistanceToMoveHigh: [color=#ff0000]Pointer[/color]; dwMoveMethod: DWORD)
frage mich grade, warum ich die funktion nicht nachgeschaut hatte, obwohl das eigentlich der logischste Fehler gewesen wäre...
Zitat von
himitsu:
Ach und mal eine Frage, warum leßt ihr denn nicht gleich die Platte selber komplett aus?
weil ich kaum ein Image (256 MB) von der platte komplett runterbekomme wegen den Lesefehlern. Wenn es zu viele werden, kam es schon öfters vor, dass sich die Platte abmeldet.
Danke & Gruß Frank