【求助】FSCTL_LOCK_VOLUME如何使用

u010840761 2013-10-18 07:44:46
问一个小白的问题,我已经使用FSCTL_LOCK_VOLUME锁定了E盘,目的是防止别人操作E盘,然后我自己锁定成功了,然后我要打开E盘的文件e:\d.sys,如何使用呢?我用createfile("e:\d.sys",参数...),打开就不成功了,难道锁定以后,自己打开文件也不能打开了吗?
FSCTL_LOCK_VOLUME以后,难道就不能在打开这个盘的任何文件了吗?直接读取这个盘的扇区我知道可以,因为FSCTL_LOCK_VOLUME的时候有一个全盘的句柄,用这个句柄就可以了。可是我现在需要读取或者写入这个被FSCTL_LOCK_VOLUME的盘的上面的一个文件,并没有事先打开,所以没有句柄,如何使用readfile(句柄,参数...)来读取文件内容啊?
...全文
488 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanxin112 2013-10-21
  • 打赏
  • 举报
回复
如果要打开文件操作,就不能锁定磁盘。
天律界中子 2013-10-18
  • 打赏
  • 举报
回复
你是通过API锁定了硬盘,系统根本不知道也不需要知道是谁锁定了硬盘,它只知道硬盘被锁定了,想要使用就要解锁。MSDN的Remarks注明了: A locked volume remains locked until one of the following occurs: 1.The application uses the FSCTL_UNLOCK_VOLUME control code to unlock the volume. 2.The handle closes, either directly through CloseHandle, or indirectly when a process terminates. 如果想实现自己能用而别人不能用,可以考虑设置用户权限。。。我也没用过这个API,具体的就不清楚了。

65,182

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧