仮想ミニポートの初期化
仮想ミニポートの初期化を開始するために、中間ドライバーは NdisIMInitializeDeviceInstanceEx 関数を呼び出します。 中間ドライバーは通常、ProtocolBindAdapterEx 関数からこの呼び出しを行います。 中間ドライバーが NdisIMInitializeDeviceInstanceEx を呼び出し、プラグ アンド プレイ マネージャーが NDIS を要求して仮想デバイスを起動した後、NDIS はドライバーのミニポートInitializeEx 関数を呼び出します。
プラグ アンド プレイ マネージャーが NdisIMInitializeDeviceInstanceEx が返される前に仮想デバイスを起動する場合、MiniportInitializeEx への呼び出しは NdisIMInitializeDeviceInstanceEx のコンテキストに含めることができます。 中間ドライバーが複数の仮想ミニポートを提供する場合、ドライバーは、使用可能にする各仮想ミニポートの NdisIMInitializeDeviceInstanceEx を呼び出す必要があります。
NDIS は、MiniportInitParameters で NDIS_MINIPORT_INIT_PARAMETERS 構造体の MiniportInitializeEx に初期化パラメーターを渡します。 構造体の IMDeviceInstanceContext メンバーは、仮想デバイスのコンテキスト領域へのポインターを指定します。 ドライバーは、DeviceContext パラメーターで NdisIMInitializeDeviceInstanceEx 関数にこのポインターを渡しました。
MiniportInitializeEx では、中間ドライバーは、仮想ミニポートを初期化するために必要な操作を実行します。 この初期化は、他のミニポート アダプターの初期化と同様です。