如何通过FSCTL_LOCK_VOLUME
win32 api控制代码锁定设备,例如列出设备中的文件或从设备中删除文件等,如何使用设备。
当设备未锁定时,我可以按FindFirstFile()
和FindNextFile()
列出所有文件,但是当我锁定它们时,我无法使用这两个功能。
是否有任何替代功能,例如列出与设备句柄一起使用的文件?
msdn说:
只能通过锁定卷的文件对象(* hDevice)的句柄访问锁定的卷。
非常感谢,祝你好运。
答案 0 :(得分:1)
你不能。
一旦卷被锁定,它只能作为卷数据结构的原始视图访问,而不能作为文件访问。这就是FSCTL_LOCK_VOLUME
的用途,让你搞乱原始数据结构。您可以在传递给ReadFile
的句柄上使用ReadFileEx
,WriteFile
和WriteFileEx
以及DeviceIoControl
和堂兄弟来阅读原始卷。
如果您不想这样做,但只是阻止其他人在您查看它时修改磁盘(对于备份等),您可能会考虑使用卷影副本。它确实取决于你想要做的事情。