NDIS 中間ドライバーは、 そのミニポートXxx 関数とその ProtocolXxx 関数を DriverEntry 関数のコンテキストで NDIS に登録する必要があります。 中間ドライバーは、MiniportXxx 関数を登録するために、NDIS_INTERMEDIATE_DRIVER フラグを設定して NdisMRegisterMiniportDriver を呼び出す必要があります。 このフラグは、ドライバーがMiniportDriverCharacteristicsで渡すNDIS_MINIPORT_DRIVER_CHARACTERISTICS構造体にあります。 この呼び出しは、中間ドライバーの ミニポートXxx 関数をエクスポートします。 ミニポートXxx 関数の登録の詳細については、「ミニポート ドライバーとして中間ドライバーを登録する」を参照してください。
中間ドライバーは、その仮想ミニポートが初期化されるときに、したがって、ドライバーがアダプターの送信と要求を受け入れる準備ができたときに制御することに注意してください。 NDIS は、プラグ アンド プレイ (PnP) マネージャーが仮想ミニポート デバイスを開始した後、および中間ドライバーがそのデバイスの NdisIMInitializeDeviceInstanceEx を呼び出した後、中間ドライバーのミニポート初期化Ex 関数を呼び出します。 ミニポートInitializeEx の呼び出しは後で発生する可能性があるため、NdisIMInitializeDeviceInstanceEx 呼び出しのコンテキスト内では必ずしもありません。 中間ドライバーが複数の仮想ミニポートをエクスポートする場合、ドライバーは、ネットワーク要求で使用できる各仮想ミニポートの NdisIMInitializeDeviceInstanceEx を呼び出す必要があります。
ProtocolXxx 関数を登録するには、中間ドライバーが NdisRegisterProtocolDriver 関数を呼び出す必要があります。 ProtocolXxx 関数の登録の詳細については、「中間ドライバーをプロトコル ドライバーとして登録する」を参照してください。