Использовать устройство после блокировки с помощью FSCTL_LOCK_VOLUME управляющего кода API win32?

Как я могу использовать устройство после его блокировки FSCTL_LOCK_VOLUME управляющий код Win32 API, например, перечисление файлов на устройстве или удаление файлов с устройства и т. д.
я могу перечислить все файлы по FindFirstFile() а также FindNextFile() когда устройство не заблокировано, но когда я блокирую их, я не могу использовать эти две функции.
есть ли альтернативная функция, например, для вывода списка файлов, которые работали с дескриптором устройства?
МСДН сказал:

Доступ к заблокированному тому можно получить только через дескрипторы файлового объекта (*hDevice), который блокирует том.

спасибо большое, удачи

1 ответ

Ты не можешь

Когда том заблокирован, он доступен только в виде необработанного представления структур данных тома, а не в виде файлов. Это то что FSCTL_LOCK_VOLUME для того, чтобы позволить вам возиться с необработанными структурами данных. Ты можешь использовать ReadFile, ReadFileEx а также WriteFile а также WriteFileEx и двоюродные братья, на ручке вы перешли DeviceIoControl читать сырой том.

Если вы не хотите этого делать, а просто остановите других людей, изменяющих диск, пока вы смотрите на него (для резервного копирования и т. Д.), Вы можете рассмотреть теневые копии. Это зависит от того, что вы пытаетесь сделать, хотя.

Другие вопросы по тегам