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)

另請參閱

DispatchShutdown

IoRegisterLastChanceShutdownNotification

IoUnregisterShutdownNotification