IoRegisterDriverReinitialization ルーチンは、ドライバーの初期化中または再初期化中にドライバーによって呼び出され、ドライバーの前に再度呼び出される 再初期化 ルーチンを登録し、場合によってはシステムの初期化が完了します。
構文
VOID IoRegisterDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
パラメーター
[in] DriverObject
DriverEntry ルーチンに入力されたドライバー オブジェクトへのポインター。
[in] DriverReinitializationRoutine
ドライバーの 再初期化 ルーチンへのポインター。
[in, optional] Context
ドライバーの 再初期化 ルーチンに渡されるコンテキストへのポインター。
戻り値
何一つ
備考
ドライバーは、DriverEntry ルーチンがSTATUS_SUCCESSを返す場合にのみ、このルーチンを呼び出すことができます。 ドライバー提供の 再初期化 ルーチンがレジストリを使用する必要がある場合、DriverEntry ルーチンには、この呼び出しで 再初期化 ルーチンに渡されるコンテキストの一部として、RegistryPath がポイントする文字列のコピーを含める必要があります。
ドライバーが動的に読み込まれる場合は、通常実行中のシステム中にこれが発生する可能性があるため、再初期化キューへのすべての参照を同期する必要があります。
CountDriverReinitializationRoutine への入力は、現在の呼び出しを含め、このルーチンが呼び出された回数を示します。
DriverEntry ルーチンは、IoRegisterDriverReinitialization を 1 回だけ呼び出すことができます。 再初期化 ルーチンを、他のドライバーの 再初期化 ルーチンが制御を返した後に再度実行する必要がある場合、再初期化 ルーチンは、ドライバーの 再初期化 ルーチンを実行する必要がある回数 ioRegisterDriverReinitialization 呼び出すこともできます。
通常、再初期化 ルーチンを持つドライバーは、PnP とレガシ デバイスの両方を制御する上位レベルのドライバーです。 このようなドライバーは、PnP マネージャーが検出するデバイス (および PnP マネージャーがドライバーの AddDevice ルーチンを呼び出す) のデバイス オブジェクトを作成するだけでなく、ドライバーは PnP マネージャーが検出しないレガシ デバイスのデバイス オブジェクトも作成する必要があります。 ドライバーは、再初期化 ルーチンを使用して、これらのデバイス オブジェクトを作成し、基になるデバイスの次の下位ドライバーにドライバーを重ねて使用できます。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
| ターゲット プラットフォーム の | 万国 |
| ヘッダー | ntddk.h (Ntddk.h を含む) |
| ライブラリ | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| DDI コンプライアンス規則 を する | HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |
関連項目
IoRegisterBootDriverReinitialization の