0

通过win32 api控制代码锁定设备后如何使用设备FSCTL_LOCK_VOLUME,例如列出设备中的文件或从设备中删除文件等。
我可以在设备未锁定时列出所有文件,FindFirstFile()但是FindNextFile()当我锁定它们时,我无法使用这两个功能。
是否有任何替代功能,例如列出与设备句柄一起使用的文件?
msdn 说:

只能通过锁定该卷的文件对象 (*hDevice) 的句柄来访问锁定的卷。

非常感谢,祝你好运。

4

1 回答 1

1

你不能。

一旦卷被锁定,它只能作为卷数据结构的原始视图访问,而不是作为文件访问。这就是FSCTL_LOCK_VOLUME为了让你搞乱原始数据结构。您可以在传递给的句柄上使用ReadFile, ReadFileExand WriteFileand and and and cousinsWriteFileExDeviceIoControl表兄弟来读取原始卷。

如果您不想这样做,而只是在您查看磁盘时阻止其他人修改磁盘(用于备份等),您可能会考虑卷影副本。不过,这确实取决于您要做什么。

于 2013-03-28T16:41:22.910 回答