IoRegisterBootDriverReinitialization 関数 (ntddk.h)
IoRegisterBootDriverReinitialization ルーチンは、ブート ドライバーによって呼び出され、すべてのデバイスが列挙されて起動された後に呼び出される I/O マネージャーにドライバーの再初期化ルーチンを登録します。
構文
void IoRegisterBootDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
パラメーター
[in] DriverObject
ブート ドライバーを再初期化するためのドライバー オブジェクトへのポインター。
[in] DriverReinitializationRoutine
ドライバーの 再初期化 ルーチンへのポインター。
[in, optional] Context
ドライバーの再初期化ルーチンに渡される省略可能なコンテキスト ポインター。
戻り値
なし
解説
ブート ドライバーは通常、ブート ドライバーの初期化中に実行される DriverEntry ルーチンから IoRegisterBootDriverReinitialization を呼び出します。 IoRegisterBootDriverReinitialization は、すべてのデバイスの列挙と起動後に I/O マネージャーによって呼び出されるドライバーの再初期化コールバック ルーチンを登録します。 DriverReinitializationRoutine は、IRQL = PASSIVE_LEVELのシステム スレッドで実行されます。
ドライバーは、DriverEntry ルーチンがSTATUS_SUCCESSを返す場合にのみ、IoRegisterBootDriverReinitialization を呼び出す必要があります。
DriverReinitializationRoutine がレジストリを使用する場合、DriverEntry ルーチンは、IoRegisterBootDriverReinitialization の Context パラメーターに、DriverEntry の独自の RegistryPath パラメーターが指す文字列のコピーを含める必要があります。
DriverEntry ルーチンは、IoRegisterBootDriverReinitialization を 1 回だけ呼び出すことができます。 再初期化ルーチンを複数回実行する必要がある場合、DriverReinitializationRoutine は、DriverReinitializationRoutine が呼び出された回数を追跡するために Count パラメーターを使用して、必要な回数だけ IoRegisterBootDriverReinitializationを呼び出すことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntifs.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |