Windows下createfile函数用GENERIC_READ访问模式打不开磁盘

2021-07-15 15:18

阅读:721

标签:mode   虚拟机   参数传递   win7   函数   我的电脑   windows   value   code   

  这两天做毕设,快气死了!想读写磁盘扇区,我就百度了,都是这样写的:

        

    HANDLE hDevice = CreateFile(TEXT("\\\\.\\PhysicalDrive1",    // drive,一般physicaldrive0是主磁盘,我不干,整死了咋整,虚拟机又卡
                        GENERIC_REAF,                // no access to the drive
                       FILE_SHARE_READ ,// share mode,
                      NULL,             // default security attributes
                      OPEN_EXISTING,   // disposition
                      0,                // file attributes
                      NULL);            // do not copy file attributes
 
    if (hDevice == INVALID_HANDLE_VALUE) // cannot open the drive
    {
MessageBox("error");
return (FALSE); }
.......................
CloseHandle(hDevice);

     别人都用createfile函数打开设备,获得磁盘返回的句柄之后,将句柄作为deviceIOcontrol函数的参数传递给磁盘扇区吧,我就不行,死活不行,win7下也不行。只要我用GENERIC_READ 或者是 GENERIC_WRITE,只会弹出error。各种百度都没找到,但是别人家的分区软件确实在我的电脑上运行。

    最后我终于看到,把GENERIC_READ换成FILE_READ_ATTRIBUTES之后终于可以了,我的句柄获得了,哈哈哈!开心!

Windows下createfile函数用GENERIC_READ访问模式打不开磁盘

标签:mode   虚拟机   参数传递   win7   函数   我的电脑   windows   value   code   

原文地址:https://www.cnblogs.com/piaoxuewaiwai/p/8944368.html


评论


亲,登录后才可以留言!