Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Festplattenzugriff / Imagedatei

  Alt 30. Okt 2007, 21:09
SetFilePointer(hDevice, (Sector-1) * SectorSize, [color=#ff0000][b]nil[/b][/color], FILE_BEGIN ); 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!

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)

Ach und mal eine Frage, warum leßt ihr denn nicht gleich die Platte selber komplett aus?
$2B or not $2B
  Mit Zitat antworten Zitat