在win7系统下
我用老版本的winhex不能直接写磁盘扇区,但是用15.9版本的winhex就可以写了,老版本的提示是拒绝访问。
我认为应该是权限的原因我自己的代码是用DeviceIoControl(其中带FSCTL_LOCK_VOLUME控制参数)
然后用createfile setfilepointer writefile函数对磁盘扇区进行读写的,无论是NTFS还是FAT在win7下都失败敢问我还要用什么方法才能写扇区数据?回复就有分!!!!

解决方案 »

  1.   

    以前在vista下遇到过类似问题,可能win7也差不多吧。
    如果要写的扇区位于某逻辑分区之内,直接写是没权限得的,用驱动也不行。后来查到了方法:细节记不得了,大致是先用DeviceIoControl向逻辑分区发一个FSCTL_LOCK_VOLUME指令,把它“锁住”,然后就可以WriteFile写扇区了。
      

  2.   

    我用过了DeviceIoControl FSCTL_LOCK_VOLUME指令 还是返回拒绝访问
      

  3.   

    没仔细看MSDN
    对于系统盘是不行的,因为没有办法lock,但其他盘都可以
      

  4.   

    VISTA/WIN7是不允许直接对磁盘扇区进行读写的,因为有PartMgr这个驱动在保护磁盘,如果非要对磁盘扇区进行读写的问,可以做一个驱动挂在PartMgr上层,然后将收到的IRP直接下发给下下层驱动,绕过PartMgr这个保护驱动,这样就可以直接对磁盘扇区进行写操作
      

  5.   

    楼主问题解决了没有?我也遇到了这个奇怪的问题。不是所有的writefile都失败