次の方法で共有


NDIS プロトコル ドライバーの概要

NDIS プロトコル ドライバーは、下端で一連の ProtocolXxx 関数をエクスポートします。 このようなプロトコル ドライバーは、NDIS と通信してネットワーク データを送受信します。 プロトコル ドライバーは、上端で MiniportXxx インターフェイスをエクスポートする基になるミニポート ドライバーまたは中間ドライバーにバインドします。

中間ドライバー (仮想ミニポート) のミニポート ドライバーの上端は、物理デバイスを管理しません。 基になるミニポート ドライバーは、物理デバイスを管理します。

プロトコル ドライバーは、常に、NDIS が提供する関数を使用して、基になる NDIS ドライバーと通信し、ネットワーク データを送受信します。 たとえば、コネクションレスの下端を持つプロトコル ドライバー (イーサネットなどのコネクションレス メディアの基になるドライバーと通信する) は、NdisSendNetBufferLists を呼び出して、基になる NDIS ドライバーにネットワーク データを送信する必要があります。 プロトコル ドライバーは、NdisOidRequest を呼び出して、基になるコネクションレス ドライバーがサポートする OID を照会または設定することができます。 接続指向の下端 (ISDN などの接続指向メディアの基になるドライバーと通信する) を持つプロトコル ドライバーは、NdisCoSendNetBufferLists を呼び出して、下位レベルの NDIS ドライバーにネットワーク データを送信する必要があります。 また、NdisCoOidRequest を呼び出して、基になる接続指向ドライバーでサポートされている OID を照会または設定することもできます。

NDIS には、基になるオペレーティング システムの詳細を非表示にする一連の NdisXxx 関数のセットも用意されています。 たとえば、プロトコル ドライバーは、NdisInitializeEvent を呼び出して、同期の目的でイベントを作成し、 NdisInitializeListHead を呼び出して、リンク リストを作成することができます。 このような関数の NDIS バージョンを使用するプロトコル ドライバーでは、Microsoft オペレーティング システム間での移植性が向上します。 ただし、プロトコル ドライバーは、IoCreateDevice などのカーネル モード サポート ルーチンを呼び出すこともできます。 詳細については、「カーネル モード サポート ルーチンの概要」を参照してください。

プロトコル ドライバーの開発者は、他の NDIS ドライバーに適用されるのと同じ 「プログラミングに関する考慮事項」を使用する必要があります。