代碼大致如下
var
hDev:THandle;
buf:array [0..511] of byte;
dr:DWORD;
lp:int64;
b:Boolean;
begin
hDev := CreateFile('\\.\C:', GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
OPEN_EXISTING, 0, 0);
lp :=$18FFFFF000;
FileSeek(hDev,lp,FILE_BEGIN);
FillChar(buf,sizeof(buf),$AA);
b :=ReadFile(hDev,buf,512,dr,nil);
dr :=GetLastError;
CloseHandle(hDev);
FHexMemo.SetBuffer(Self,0);
EnabledDebugPrivilege(false);
我的C盤是從0x18FFFFF000開始就讀不出資料,也就是最后8個扇區讀不出資料,后來發現,其他盤也是這樣,大致是最后8個扇區讀不出資料。
如下圖,壯觀分水嶺,一大片AA AA AA AA。。。。的都是讀不出資料的,之前顯示0的都是可以讀取的。有誰知道怎么解決?

uj5u.com熱心網友回復:
補一下WinHEX的資料,0x18FFFFF000后面是有資料的。
再補下WinHEX的末尾資料,末尾是0x18FFFFFFFF,是有資料的。

我的程式也是末尾是0x18FFFFFFFF,但是讀不出資料,全是初始值AAAAAAA.......

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273438.html
上一篇:基于socket的郵件收發器