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 ルーチン 使用します。
登録された DispatchShutdown ルーチンは、PowerSystemShutdown に対して IRP_MN_SET_POWER 要求送信する前に呼び出されます。 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 コンプライアンス規則 を する | HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |
関連項目
IoRegisterLastChanceShutdownNotification の