Использовать устройство после блокировки с помощью FSCTL_LOCK_VOLUME управляющего кода API win32?
Как я могу использовать устройство после его блокировки FSCTL_LOCK_VOLUME
управляющий код Win32 API, например, перечисление файлов на устройстве или удаление файлов с устройства и т. д.
я могу перечислить все файлы по FindFirstFile()
а также FindNextFile()
когда устройство не заблокировано, но когда я блокирую их, я не могу использовать эти две функции.
есть ли альтернативная функция, например, для вывода списка файлов, которые работали с дескриптором устройства?
МСДН сказал:
Доступ к заблокированному тому можно получить только через дескрипторы файлового объекта (*hDevice), который блокирует том.
спасибо большое, удачи
1 ответ
Ты не можешь
Когда том заблокирован, он доступен только в виде необработанного представления структур данных тома, а не в виде файлов. Это то что FSCTL_LOCK_VOLUME
для того, чтобы позволить вам возиться с необработанными структурами данных. Ты можешь использовать ReadFile
, ReadFileEx
а также WriteFile
а также WriteFileEx
и двоюродные братья, на ручке вы перешли DeviceIoControl
читать сырой том.
Если вы не хотите этого делать, а просто остановите других людей, изменяющих диск, пока вы смотрите на него (для резервного копирования и т. Д.), Вы можете рассмотреть теневые копии. Это зависит от того, что вы пытаетесь сделать, хотя.