IoRegisterShutdownNotification 函数 (wdm.h)

IoRegisterShutdownNotification 例程注册驱动程序,以在系统关闭时接收 IRP_MJ_SHUTDOWN IRP。

语法

NTSTATUS IoRegisterShutdownNotification(
  [in] PDEVICE_OBJECT DeviceObject
);

参数

[in] DeviceObject

指向驱动程序请求关闭通知的设备的设备对象的指针。 系统将此指针传递给驱动程序的 DispatchShutdown 例程。

返回值

IoRegisterShutdownNotification 在成功时返回STATUS_SUCCESS,或者在失败时返回相应的 NTSTATUS 错误代码。

言论

IoRegisterShutdownNotification 例程注册驱动程序,以便在系统关闭时接收指定设备的 IRP_MJ_SHUTDOWN IRP。 驱动程序会为其注册的每个设备接收一个此类 IRP,以便接收通知。 驱动程序在其 DispatchShutdown 例程中处理 IRP_MJ_SHUTDOWN IRP。

如果驱动程序停止要求设备关闭通知,请使用 IoUnregisterShutdownNotification 从关闭通知队列中删除驱动程序。

设备堆栈中只有一个驱动程序应注册以接收关闭通知。

系统在刷新文件系统之前向驱动程序发送 IRP_MJ_SHUTDOWN 请求。 某些驱动程序(如大容量存储设备的驱动程序)可能需要在系统刷新文件系统后关闭通知。 若要在刷新文件系统后接收设备的关闭通知,请改用 IoRegisterLastChanceShutdownNotification 例程。

在 Power Manager 发送 PowerSystemShutdownIRP_MN_SET_POWER 请求之前,将调用已注册 的 dispatchShutdown 例程。 DispatchShutdown 例程不要求转换为任何其他电源状态。

驱动程序编写器无法假设驱动程序的 DispatchShutdown 例程相对于其他此类例程或其他关闭活动的顺序。

PnP 驱动程序可能会注册关闭例程以在系统关闭开始之前执行某些任务,例如锁定代码。

要求

要求 价值
最低支持的客户端 在 Windows 2000 及更高版本的 Windows 中可用。 Microsoft Windows 98/Me 中不可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)IrqlIoPassive5(wdm)PowerIrpDDis(wdm)

另请参阅

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification