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 傳送 PowerSystemShutdown的IRP_MN_SET_POWER要求之前,會呼叫已註冊的 DispatchShutdown 例程。 不會呼叫 DispatchShutdown 例程,以轉換至任何其他電源狀態。
驅動程式寫入器無法假設驅動程式 的 DispatchShutdown 例程相對於其他這類例程或其他關機活動呼叫的順序。
PnP 驅動程式可能會註冊關機例程,以在系統關機啟動之前執行特定工作,例如鎖定程序代碼。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 中使用。 無法在 Microsoft Windows 98/Me 中使用。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 IrqlIoPassive5 (wdm ) 、 PowerIrpDDis (wdm) |