hDevice = CreateFile("\\\\.\\PhysicalDrive0",0,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);if (hDevice == INVALID_HANDLE_VALUE) // cannot open the drive
{
  ShowMessage("出错1");
  return;
}
junk = SetFilePointer (hDevice,0, NULL, FILE_BEGIN) ;if (junk == 0xFFFFFFFF) // Test for failure.
{
  ShowMessage("出错2");
  return;
}
bResult = ReadFile(hDevice,Buffer,sizeof(Buffer),&junk,NULL);
CloseHandle(hDevice);
if(bResult)
  ShowMessage("出错3");没有出错,但是读出来的结果确不是0,0,1扇区的内容啊??

解决方案 »

  1.   

    哥儿们,以上是bcb的代码。
    在那里没人给解答。
    希望在这里大家指点一下。
      

  2.   

    你看readfile读出来的数据有多少(看junk的值)?然后是buffer的定义在哪儿?把定义贴出来
      

  3.   

    谢谢楼上哥们了。
    我原来读出来的是0.
    不过问题找到了。
    hDevice = CreateFile("\\\\.\\PhysicalDrive0",0,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); 
    第二个参数不要用0,就可以了。