WDM の下端を含むミニポート ドライバーの初期化

オペレーティング システムによってミニポート ドライバーが読み込まれた後、NDIS ミニポート ドライバーの MiniportInitializeEx 関数を呼び出して、ミニポート ドライバーが管理するミニポート インスタンスを初期化します。 WDM 下端を持つミニポート インスタンスを介して通信するために、ミニポート ドライバーは、その通信を設定する特定の情報を取得する必要があります。

このミニポート インスタンスの初期化中に、ミニポート ドライバーは、WDM インターフェイスを介してミニポート インスタンスとの通信を設定するために必要なデバイス オブジェクトを取得する NdisMGetDeviceProperty 関数を呼び出す必要があります。 この呼び出しで、ミニポート ドライバーは、 DEVICE_OBJECT 構造体へのポインターを受け取る MiniportAdapterHandle パラメーターとバッファーでミニポート インスタンスにハンドルを渡します。 ミニポート ドライバーは、次のデバイス オブジェクト (NextDeviceObject パラメーター) への取得されたポインターを使用して IRP を作成し、送信します。 詳細については、「IRP の処理」を参照してください。

WDM 下端を持つミニポート ドライバーは、逆シリアル化されたミニポート ドライバーである必要があります。 逆シリアル化されたミニポート ドライバーは、これらの要求をすぐに処理するのに十分なリソースがない場合は常に、送信要求と受信要求の独自のキューを内部的に管理します。ミニポート ドライバーが逆シリアル化されていない場合、NDIS はこのキューを管理します。 NDIS WDM ミニポート ドライバーは、NDIS 呼び出しのコンテキストの外部でパケットを送受信するため逆シリアル化する必要があります。 ミニポート インスタンスの初期化中に、NDIS WDM ミニポート ドライバーは、逆シリアル化された機能を指定する必要があります。 すべての NDIS 6.0 以降のミニポート ドライバーが逆シリアル化されます。

なお、NDIS WDM ミニポート ドライバーは、中間ドライバー (上部にミニポート ドライバー インターフェイス、下部にプロトコル ドライバー インターフェイスを公開するドライバー) にすることはできません。