IRP_MN_CANCEL_REMOVE_DEVICE
Все драйверы PnP должны обрабатывать этот IRP.
Значение
0x03
Основной код
При отправке
Диспетчер PnP отправляет этот IRP, чтобы сообщить драйверам устройства о том, что устройство не будет удалено.
Диспетчер PnP отправляет этот IRP на PASSIVE_LEVEL IRQL в контексте системного потока.
Входные параметры
Нет
Выходные параметры
Нет
Блок состояния ввода-вывода
Драйвер должен задать для Irp-IoStatus.Status> значение STATUS_SUCCESS для этого IRP. Если драйвер не выполняет этот IRP, устройство остается в несогласованном состоянии.
Операция
Этот IRP должен обрабатываться сначала драйвером родительской шины для устройства, а затем каждым более высоким драйвером в стеке устройств.
В ответ на этот IRP драйверы возвращают устройство в состояние, в которое оно находилось до получения запроса IRP_MN_QUERY_REMOVE_DEVICE .
Если устройство уже запущено, когда драйвер получает эту IRP, драйвер просто устанавливает состояние успешно и передает IRP следующему драйверу (или завершает IRP, если водитель является водителем шины). Для такой отмены и удаления IRP драйвер функции или фильтра не должен задавать подпрограмму завершения. Устройство может не находиться в состоянии ожидания удаления, так как, например, драйвер не выполнил предыдущее IRP_MN_QUERY_REMOVE_DEVICE.
Диспетчер PnP вызывает обратные вызовы уведомлений EventCategoryTargetDeviceChange с GUID_TARGET_DEVICE_REMOVE_CANCELLED после завершения запроса IRP_MN_CANCEL_REMOVE_DEVICE . Такие обратные вызовы регистрировались на устройстве путем вызова IoRegisterPlugPlayNotification. Диспетчер PnP также вызывает все компоненты пользовательского режима, зарегистрированные для уведомления на устройстве, вызывая Метод RegisterDeviceNotification.
Если на устройстве подключена файловая система, она должна отменить все операции, которые она выполняла в ответ на уведомление об удалении запроса.
См. Plug and Play для получения подробных сведений об обработке irps удаления и общих правил обработки всех Plug and Play незначительных IRP.
Отправка этого IRP
Зарезервировано для системного использования. Драйверы не должны отправлять этот IRP.
Требования
Заголовок |
Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h) |