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


IRP_MN_STOP_DEVICE

Все драйверы PnP должны обрабатывать этот IRP.

Значение

0x04

Основной код

IRP_MJ_PNP

При отправке

Диспетчер PnP отправляет этот IRP для остановки устройства, чтобы можно было перенастроить аппаратные ресурсы устройства.

В системах Windows 2000 и более поздних версий диспетчер PnP отправляет этот IRP только в том случае, если предыдущие IRP_MN_QUERY_STOP_DEVICE успешно завершены.

В Windows 98/Me диспетчер PnP также отправляет этот IRP, когда устройство отключено и когда стек устройств не выполнил запрос IRP_MN_START_DEVICE . В случае сбоя запуска диспетчер PnP отправляет этот IRP без предыдущего запроса IRP_MN_QUERY_STOP_DEVICE .

Диспетчер PnP отправляет этот IRP на PASSIVE_LEVEL IRQL в контексте системного потока.

Входные параметры

Нет

Выходные параметры

Нет

Блок состояния ввода-вывода

Драйвер должен задать для Irp-IoStatus.Status> значение STATUS_SUCCESS.

Операция

Этот IRP сначала обрабатывается драйвером в верхней части стека устройств, а затем передается каждому нижнему драйверу в стеке.

В ответ на этот IRP драйверы Windows 2000 и более поздних версий останавливают устройство и освобождают все аппаратные ресурсы, используемые устройством, такие как порты ввода-вывода и прерывания.

В Windows 2000 и более поздних версиях остановка IRP используется исключительно для освобождения аппаратных ресурсов устройства, чтобы их можно было перенастроить. После перенастройки ресурсов устройство перезапускается. Остановка IRP не является предшественником удаления IRP. Дополнительные сведения о порядке отправки PnP IRP на устройства см. в Plug and Play.

В Windows 98/Me остановка IRP также используется после неудачного запуска и при отключении устройства. Драйверы WDM, работающие в этих операционных системах, должны останавливать устройство, завершать работу всех входящих операций ввода-вывода, а также отключать и отменять регистрацию любых интерфейсов пользовательского режима.

Драйвер не должен завершить ошибку этого IRP. Если драйвер не может освободить аппаратные ресурсы устройства, он должен завершиться ошибкой предыдущего IRP с остановкой запроса.

Подробные сведения об обработке останова irp см. в разделе Остановка устройства .

Отправка этого IRP

Зарезервировано для системного использования. Драйверы не должны отправлять этот IRP.

Требования

Заголовок

Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h)

См. также раздел

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_START_DEVICE

IoSetDeviceInterfaceState

IoRegisterDeviceInterface