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


IRP_MN_SET_LOCK

Водители шины должны обрабатывать этот IRP для своих дочерних устройств (дочерних PPO), поддерживающих блокировку устройств. Драйверы функций и фильтров не обрабатывают этот запрос.

Значение

0x12

Основной код

IRP_MJ_PNP

При отправке

Диспетчер 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)