次の方法で共有


IoRegisterDriverReinitialization 関数 (ntddk.h)

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)

関連項目

DRIVER_OBJECT

IoRegisterBootDriverReinitialization