FSCTL_UNLOCK_VOLUME IOCTL (winioctl.h)
Разблокирует том.
Чтобы выполнить эту операцию, вызовите функцию DeviceIoControl со следующими параметрами.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to a volume
FSCTL_UNLOCK_VOLUME, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно.
В противном случае состояние соответствующего условия ошибки в виде кода NTSTATUS.
Дополнительные сведения см. в значения NTSTATUS.
Замечания
Чтобы заблокировать том, используйте код элемента управления FSCTL_LOCK_VOLUME.
Дескриптор hDevice, передаваемый в DeviceIoControl, должен быть дескриптором тома, открытым для прямого доступа. Чтобы получить этот дескриптор, вызовите CreateFile с параметром lpFileName в строку следующей формы:
\\.\X:
где X — это буква секционирования жесткого диска, диск floppy или диск CD-ROM. Приложение также должно указать флаги FILE_SHARE_READ и FILE_SHARE_WRITE в параметре dwShareModeCreateFile.
IIn Windows 8 и Windows Server 2012 этот код поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Нет |
Отработка отказа SMB 3.0 (TFO) | Нет |
SMB 3.0 с масштабируемыми общими папками (SO) | Нет |
Файловая система общего тома кластера (CSVFS) | См. комментарий |
Уведомление PNP выдано только на узле, где была выдана FSCTL.
После получения блокировки на томе CSV необходимо закрыть дескриптор, используемый для блокировки этого тома перед открытием дескриптора тома. Разблокировка тома с помощью FSCTL_UNLOCK_VOLUME недостаточно.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
заголовка | winioctl.h (включая Windows.h) |