Поделиться через


IOCTL_STORAGE_MEDIA_REMOVAL IOCTL (ntddstor.h)

Блокирует устройство, чтобы предотвратить удаление носителя. Если драйвер может предотвратить удаление носителя во время использования диска, он отключает или включает механизм, который извлекает носитель на устройстве- вызывающий объект открылся для доступа на чтение или запись.

В отличие от IOCTL_STORAGE_EJECTION_CONTROL, для которого драйвер отслеживает запросы вызывающим абонентом, драйвер игнорирует запросы IOCTL_STORAGE_MEDIA_REMOVAL разблокировки только в том случае, если его число блокировки уже равно нулю, что позволяет любому вызывающему объекту разблокировать диск.

Драйвер для такого съемных носителей устройства, поддерживающего этот IOCTL, должен выполнять следующие действия:

  1. Сохраняйте количество блокировок в расширении объекта устройства.
  2. Сохраняйте количество блокировок на физическое устройство.
  3. При вызове с этим IOCTL, если флаг, чтобы предотвратить удаление носителя, увеличьте число; Если флаг недоступен, урежение счетчика.
  4. Запретить удаление носителя, если все счетчики блокировок не равны нулю.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Буфер с Irp->AssociatedIrp.SystemBuffer содержит логическое значение, а TRUE, указывающее, что драйвер должен заблокировать носитель на диске.

Длина входного буфера

Длина логическое значение.

Выходной буфер

Никакой.

Длина выходного буфера

Никакой.

Блок состояния

Поле сведений равно нулю. Поле состояния имеет значение STATUS_SUCCESS или, возможно, STATUS_INVALID_DEVICE_REQUEST, STATUS_NO_MEDIA_IN_DEVICE или STATUS_DEVICE_NOT_CONNECTED.

Требования

Требование Ценность
заголовка ntddstor.h (include Ntddstor.h)

См. также

IOCTL_STORAGE_EJECTION_CONTROL