IRP_MN_CANCEL_REMOVE_DEVICE

所有 PnP 驱动程序都必须处理此 IRP。

Value

0x03

主代码

IRP_MJ_PNP

发送时间

PnP 管理器发送此 IRP 来通知设备的驱动程序不会删除该设备。

PnP 管理器在 IRQL PASSIVE_LEVEL系统线程上下文中发送此 IRP。

输入参数

输出参数

I/O 状态块

驱动程序必须将 Irp-IoStatus.Status> 设置为STATUS_SUCCESS IRP。 如果驱动程序使此 IRP 失败,则设备将离开不一致状态。

操作

此 IRP 必须先由设备的父总线驱动程序处理,然后由设备堆栈中每个更高的驱动程序处理。

为了响应此 IRP,驱动程序在接收请求之前将设备IRP_MN_QUERY_REMOVE_DEVICE状态。

如果设备在驱动程序收到此 IRP 时已启动,则驱动程序只需将状态设置为"成功",将 IRP 传递给下一个驱动程序 (或完成 IRP(如果驱动程序是总线驱动程序) )。 对于此类取消删除 IRP,函数或筛选器驱动程序不需要设置完成例程。 设备可能未在删除挂起状态,因为例如,驱动程序在上一次操作IRP_MN_QUERY_REMOVE_DEVICE。

PnP 管理器在请求完成后使用 GUID_TARGET_DEVICE_REMOVE_CANCELLED 调用任何 EventCategoryTargetDeviceChangeIRP_MN_CANCEL_REMOVE_DEVICE 回调。 此类回调通过调用 IoRegisterPlugPlayNotification 在设备上注册。 PnP 管理器还通过调用 RegisterDeviceNotification 调用在设备上注册通知的任何用户模式组件。

如果文件系统装载在设备上,则必须撤消它在响应查询删除通知时执行的任何操作。

有关即插即用删除的 IRP 的详细信息以及处理所有次要 IRP 的一般规则,请参阅即插即用规则

发送此 IRP

预留给系统使用。 驱动程序不得发送此 IRP。

要求

标头

Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h)

另请参阅

IoRegisterPlugPlayNotification

IRP_MN_QUERY_REMOVE_DEVICE