IRP_MN_STOP_DEVICE

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

Value

0x04

主代码

IRP_MJ_PNP

发送时间

PnP 管理器发送此 IRP 以停止设备,以便它可以重新配置设备的硬件资源。

在 Windows 2000 及更高版本的系统上,PnP 管理器仅在成功完成之前IRP_MN_QUERY_STOP_DEVICE发送 IRP。

在 Windows 98/Me 上,当设备处于禁用状态且设备堆栈失败时,PnP 管理器还会发送此 IRP IRP_MN_START_DEVICE请求。 如果启动失败,PnP 管理器会发送此 IRP,而不发送IRP_MN_QUERY_STOP_DEVICE请求。

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

输入参数

输出参数

I/O 状态块

驱动程序必须将 Irp-IoStatus.Status> 设置为STATUS_SUCCESS。

操作

此 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)

另请参阅

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_START_DEVICE

IoSetDeviceInterfaceState

IoRegisterDeviceInterface