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 例程。
在电源管理器发送 PowerSystemShutdown的IRP_MN_SET_POWER 请求之前,将调用已注册的 DispatchShutdown 例程。 对于转换到任何其他电源状态,不调用 DispatchShutdown 例程。
驱动程序编写器不能假设相对于其他此类例程或其他关闭活动调用驱动程序的 DispatchShutdown 例程的顺序。
PnP 驱动程序可能会注册关闭例程,以在系统关闭开始之前执行某些任务,例如锁定代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 2000 和更高版本的 Windows 中可用。 在 Microsoft Windows 98/Me 中不可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) 、 IrqlIoPassive5 (wdm) 、 PowerIrpDDis (wdm) |