次の方法で共有


中間ドライバー経由のネットワーク データの転送

中間ドライバーをミニポート ドライバーとして登録」で説明したように、中間ドライバーは NdisMRegisterMiniportDriver で登録する際に、MiniportSendNetBufferLists 関数を提供する必要があります。 MiniportSendNetBufferLists 関数は、ドライバーにコネクションレス下端がある場合、NdisSendNetBufferLists を呼び出すことによって受信する NET_BUFFER_LIST 構造体を転送できます。 MiniportSendNetBufferLists は、NdisSendNetBufferLists を受け取った NET_BUFFER_LIST 構造体のリストを、基になるミニポート ドライバーの機能に関係なく送信できます。

MiniportSendNetBufferLists は、NdisSendNetBufferLists の基になる呼び出し元によって決定された順序で配置された NET_BUFFER_LIST 構造体のリストを受信します。 ほとんどの場合、中間ドライバーは、NET_BUFFER_LIST 構造体の受信配列を基になるミニポート ドライバーに渡すため、この順序を維持する必要があります。 基になるドライバーに渡す前にネットワークデータ内のデータを変更する中間ドライバは、リストを並べ替えることができます。

NDIS は常に、リンクリストとして NdisSendNetBufferLists に渡される NET_BUFFER_LIST 構造体ポインターの順序を保持します。 また、基になるミニポート ドライバーは、MiniportSendNetBufferLists 関数に渡されるリストが、ネットワーク データが同じ順序で送信されることを意味すると仮定しています。