IRP_MN_SET_LOCK
Водители шины должны обрабатывать этот IRP для своих дочерних устройств (дочерних PPO), поддерживающих блокировку устройств. Драйверы функций и фильтров не обрабатывают этот запрос.
Значение
0x12
Основной код
При отправке
Диспетчер PnP отправляет этот IRP, чтобы направить драйверы для блокировки устройства и предотвращения извлечения устройства или для разблокировки устройства.
Диспетчер PnP отправляет этот IRP в IRQL PASSIVE_LEVEL в произвольном контексте потока.
Входные параметры
Элемент Parameters.SetLock.Lock структуры IO_STACK_LOCATION является логическим значением, указывающим, следует ли заблокировать (TRUE) или разблокировать (FALSE) устройство.
Выходные параметры
Нет
Блок состояния ввода-вывода
Драйвер шины задает Irp-IoStatus.Status> значение STATUS_SUCCESS или соответствующее состояние ошибки.
При успешном выполнении драйвер устанавливает значение Irp-IoStatus.Information> равным нулю.
Если драйвер шины не обрабатывает этот IRP, он оставляет Irp-IoStatus.Status> как есть и завершает IRP.
Драйверы функций и фильтров не обрабатывают этот IRP. Такие драйверы вызывают IoSkipCurrentIrpStackLocation и передают IRP следующему драйверу. Драйверы функций и фильтров не задают подпрограмму IoCompletion, не изменяют Irp-IoStatus> и не должны завершить IRP.
Операция
Если драйвер возвращает успешное выполнение этого IRP, перед завершением IRP устройство будет заблокировано или разблокировано.
Общие правила обработки Plug and Play незначительных irp см. в Plug and Play.
Отправка этого IRP
Зарезервировано для системного использования. Драйверы не должны отправлять этот IRP.
Требования
Заголовок |
Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h) |