怎样用语言实现得到引导区的数据..Thank you

解决方案 »

  1.   

    http://www.csdn.net/develop/Read_Article.asp?Id=13507
      

  2.   

    在2k下用DeviceIoControl()读第一个扇区,在dos下用int 13h中断读第一个扇区.在98下要用vxd比较麻烦一点.
      

  3.   

    能具体写写代码吗 
    thank you!
      

  4.   

    DWORD ReadDiskSector(DWORD LogicSector, 
    unsigned char *str)
    {
    HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ,
    FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
    if(hDevice == INVALID_HANDLE_VALUE)
    {
    AfxMessageBox("Can't open disk");
    CloseHandle(hDevice);
    return FALSE;
    }
    long hi = LogicSector >> 23; SetFilePointer(hDevice, 
    (long)((LogicSector * 512) % 
    0x100000000), &hi, FILE_BEGIN); DWORD read; ReadFile(hDevice, str, 512, 
    &read, NULL);

    CloseHandle(hDevice);
    return read;}
    unsigned char *str;
    str = (unsigned char *)malloc(512);
    ReadDiskSector(0, str);
    就可以了,这里假定硬盘每个扇区512字节.这是在2000下的代码,我还有dos下的,需要就给你.
      

  5.   

    Thank you! 可可猫can you give me dos's code?