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 を 1 つ受け取ります。 ドライバーは、DispatchShutdown ルーチン内IRP_MJ_SHUTDOWN IRP を処理します。
ドライバーがデバイスのシャットダウン通知を要求しなくなった場合は、 IoUnregisterShutdownNotification を使用して、シャットダウン通知キューからドライバーを削除します。
シャットダウン通知を受け取るために登録する必要があるのは、デバイス スタック内のドライバーが 1 つだけです。
システムは、ファイル システムをフラッシュする前に 、IRP_MJ_SHUTDOWN 要求をドライバーに送信します。 大容量記憶装置デバイスのドライバーなど、一部のドライバーでは、システムがファイル システムをフラッシュした後にシャットダウン通知が必要な場合があります。 ファイル システムのフラッシュ後にデバイスのシャットダウン通知を受信するには、代わりに IoRegisterLastChanceShutdownNotification ルーチンを使用します。
Power Manager が PowerSystemShutdown の IRP_MN_SET_POWER 要求を送信する前に、登録済みの DispatchShutdown ルーチンが呼び出されます。 DispatchShutdown ルーチンは、他の電源状態への移行には呼び出されません。
ドライバーライターは、ドライバーの DispatchShutdown ルーチンが他のこのようなルーチンまたは他のシャットダウン アクティビティに関連して呼び出される順序について仮定することはできません。
PnP ドライバーは、コードのロックダウンなど、システムのシャットダウンが開始される前に特定のタスクを実行するシャットダウン ルーチンを登録する場合があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降のバージョンの Windows で使用できます。 Microsoft Windows 98/Me では使用できません。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |