NdisCoSendNetBufferLists 関数は、NET_BUFFER_LIST 構造体の指定されたリストに含まれているネットワーク データを送信します。
構文
VOID NdisCoSendNetBufferLists(
[in] NDIS_HANDLE NdisVcHandle,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG SendFlags
);
パラメーター
[in] NdisVcHandle
送信要求のターゲットを識別する仮想接続 (VC) へのハンドル。
[in] NetBufferLists
NET_BUFFER_LIST 構造体のリンクされたリストへのポインター。 各NET_BUFFER_LIST構造体は、NET_BUFFER 構造体の一覧を記述します。
[in] SendFlags
送信操作の属性を定義するフラグ。 フラグは、ビットごとの OR 演算と組み合わせることができます。 すべてのフラグをクリアするには、このパラメーターを 0 に設定します。 NdisCoSendNetBufferLists では、次のフラグがサポートされています。
NDIS_SEND_FLAGS_DISPATCH_LEVEL
現在の IRQL はDISPATCH_LEVEL。 このフラグの詳細については、「ディスパッチ IRQL 追跡」を参照してください。
NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK
NDIS はループバックを確認する必要があります。 既定では、NDIS は、送信要求を送信したドライバーにデータをループ バックしません。 上にあるドライバーは、NDIS_SEND_FLAGS_CHECK_FOR_LOOPBACK設定することで、この動作をオーバーライドできます。 このフラグが設定されている場合、NDIS は、バインディングの受信条件に一致するデータを含むすべてのNET_BUFFER構造体を識別します。 NDIS は、基になるドライバーに条件に一致するNET_BUFFER構造体を示します。 このフラグは、他のバインディングでのループバックのチェックやループ バックには影響しません。
戻り値
何一つ
備考
CoNDIS プロトコル ドライバーが NdisCoSendNetBufferLists 呼び出した後、NDIS は、NetBufferLists パラメーターが基になるドライバーに指定する NET_BUFFER_LIST 構造体を送信します。ミニポートCoSendNetBufferLists 関数を します。
プロトコル ドライバーは、次のいずれかの関数を呼び出して、プールから各NET_BUFFER_LIST構造体を割り当てる必要があります。
-
NdisAllocateNetBufferList の
- NdisAllocateNetBufferAndNetBufferList の
- NdisAllocateCloneNetBufferList の
プロトコル ドライバーは、各 NET_BUFFER_LIST 構造体の SourceHandle メンバーを、NdisVcHandle パラメーターで渡されるのと同じ値に設定する必要があります。 ソース ハンドルは、基になるミニポート ドライバーが呼び出した後、プロトコル ドライバーにNET_BUFFER_LIST構造体を返すために NDIS が必要な情報を提供します。NdisMCoSendNetBufferListsComplete 関数を します。
プロトコル ドライバーが NdisCoSendNetBufferLists 呼び出す前に、ドライバーは、NET_BUFFER_LIST_INFO マクロで送信要求に付随する情報を設定できます。 基になるドライバーは、NET_BUFFER_LIST_INFO マクロを使用してこの情報を取得できます。
プロトコル ドライバーは、NET_BUFFER_LIST構造体の一覧 NdisCoSendNetBufferLists を呼び出す前に、プロトコル ドライバーは、ネットワーク データを送信する順序でNET_BUFFER_LIST構造体が設定されていることを確認する必要があります。
プロトコル ドライバーが NdisCoSendNetBufferLists 呼び出されるとすぐに、NET_BUFFER_LIST構造体と関連するすべてのリソースが所有されなくなります。 NDIS は、ProtocolCoSendNetBufferListsComplete 関数を呼び出して、構造体とデータをプロトコル ドライバーに返します。 NDIS では、ProtocolCoSendNetBufferListsComplete にリストを渡す前に、複数の送信要求から NET_BUFFER_LIST 構造体の単一のリンクされたリストに構造体とデータ収集できます。
NDIS が ProtocolCoSendNetBufferListsComplete 呼び出すまで、プロトコル ドライバーによって開始される送信の現在の状態は、プロトコル ドライバーでは使用できません。 プロトコル ドライバーは、NdisCoSendNetBufferLists 呼び出すときに、送信要求に割り当てられたすべてのリソースの所有権を一時的に解放します。 ドライバーが NdisCoSendNetBufferLists を呼び出した後、プロトコル ドライバーは、NET_BUFFER_LIST構造体または関連付けられているデータ調べようとしないでください。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows Vista の NDIS 6.0 ドライバーでサポートされています。 |
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | ndis.h (Ndis.h を含む) |
| ライブラリ | Ndis.lib |
| IRQL | <=DISPATCH_LEVEL |
| DDI コンプライアンス規則 を する | Irql_Connection_Function(ndis) |
関連項目
ミニポートCoSendNetBufferLists NdisAllocateCloneNetBufferList NdisAllocateNetBufferAndNetBufferList のNdisAllocateNetBufferList の
NdisMCoSendNetBufferListsComplete ProtocolCoSendNetBufferListsComplete