IRP_MN_STOP_DEVICE
所有 PnP 驱动程序都必须处理此 IRP。
值
0x04
主代码
发送时
PnP 管理器发送此 IRP 以停止设备,以便它可以重新配置设备的硬件资源。
在 Windows 2000 及更高版本中,仅当之前的 IRP_MN_QUERY_STOP_DEVICE 成功完成时,PnP 管理器才会发送此 IRP。
在 Windows 98/Me 上,当禁用设备以及设备堆栈失败 IRP_MN_START_DEVICE 请求时,PnP 管理器还会发送此 IRP。 如果启动失败,PnP 管理器会发送此 IRP,而无需前面的 IRP_MN_QUERY_STOP_DEVICE 请求。
PnP 管理器在 IRQL PASSIVE_LEVEL系统线程上下文中发送此 IRP。
输入参数
无
输出参数
无
I/O 状态块
驱动程序必须将 Irp-IoStatus.Status> 设置为 STATUS_SUCCESS。
Operation
此 IRP 首先由设备堆栈顶部的驱动程序处理,然后向下传递到堆栈中的每个较低驱动程序。
为了响应此 IRP,Windows 2000 及更高版本的驱动程序会停止设备并释放设备使用的任何硬件资源,例如 I/O 端口和中断。
在 Windows 2000 及更高版本中,停止 IRP 仅用于释放设备的硬件资源,以便可以重新配置它们。 重新配置资源后,设备将重启。 停止 IRP 不是删除 IRP 的前兆。 有关将 PnP IRP 发送到设备的顺序的详细信息,请参阅即插即用。
在 Windows 98/Me 上,在启动失败后以及禁用设备时,也会使用停止 IRP。 在这些操作系统上运行的 WDM 驱动程序应停止设备、使任何传入 I/O 失败,并禁用和取消注册任何用户模式接口。
驱动程序不得使此 IRP 失败。 如果驱动程序无法释放设备的硬件资源,则必须使上述查询停止 IRP 失败。
有关处理停止 IRP 的详细信息,请参阅停止 设备 。
发送此 IRP
预留给系统使用。 驱动程序不得发送此 IRP。
要求
标头 |
Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h) |