次の方法で共有


NdisMSendNetBufferListsComplete 関数 (ndis.h)

ミニポート ドライバーは、NdisMSendNetBufferListsComplete 関数を呼び出して、NET_BUFFER_LIST 構造体のリンクされたリストを上にあるドライバーに返し、送信要求の最終的な状態を返します。

構文

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

パラメーター

[in] MiniportAdapterHandle

NDIS が ミニポートInitializeEx 関数に渡されたミニポート ハンドル。

NetBufferList

NET_BUFFER_LIST構造体のリンクされたリストへのポインター。 ミニポート ドライバーは、その ミニポートSendNetBufferLists 関数への以前の呼び出しでNET_BUFFER_LIST構造体を受け取りました。

[in] SendCompleteFlags

OR 操作と組み合わせることができる NDIS フラグ。 すべてのフラグをクリアするには、このメンバーを 0 に設定します。 この関数は、次のNDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL フラグをサポートします。設定されている場合は、現在の IRQL がDISPATCH_LEVELされていることを示します。 このフラグの詳細については、「ディスパッチ IRQL 追跡」を参照してください。

戻り値

何一つ

備考

ミニポート ドライバー NdisMSendNetBufferListsComplete を呼び出して、NDIS がドライバーの ミニポートSendNetBufferLists 関数に対して行った送信要求を完了します。 ミニポート ドライバーは、完了した送信要求に関連付けられている NET_BUFFER_LIST 構造体のリンクされた一覧を指定します。 送信要求の状態が保留中の間、ミニポート ドライバーは、NET_BUFFER_LIST構造体と、NET_BUFFER_LIST構造体に関連付けられているすべてのプロトコル割り当てリソースの所有権を保持します。

ミニポート ドライバーが NdisMSendNetBufferListsComplete 呼び出した後、NDIS は、NdisSendNetBufferLists 送信要求を開始する関数を呼び出したドライバーの ProtocolSendNetBufferListsComplete 関数を呼び出します。

ミニポート ドライバーは、任意の順序で要求の送信を完了できます。 たとえば、ミニポート ドライバーは、複数の ミニポートSendNetBufferLists 呼び出しからのNET_BUFFER_LIST構造リストを連結したり、ミニポートSendNetBufferLists 呼び出しからリストを分割したりできます。 ただし、ミニポート ドライバーは、NET_BUFFER_LIST構造体に関連付けられている NET_BUFFER 構造体の一覧を変更することはできません。

ミニポート ドライバーは、NetBufferLists パラメーターが指定する各NET_BUFFER_LIST構造体の 状態 メンバーに次のいずれかの状態コードを設定する必要があります。

構造 形容
NDIS_STATUS_SUCCESS NET_BUFFER_LIST構造および関連するNET_BUFFER構造が記述するすべてのネットワーク データが、伝送のために正常に処理されました。 たとえば、ミニポート ドライバーは、キューにデータをコピーまたはデータが既に送信されています。
NDIS_STATUS_INVALID_LENGTH このNET_BUFFER_LIST構造体に関連付けられている一部のNET_BUFFER構造体のデータのサイズが、基になる NIC では大きすぎます。
NDIS_STATUS_RESOURCES リソースが不足しているため、このNET_BUFFER_LIST構造体の送信要求に失敗しました。
NDIS_STATUS_PAUSED ミニポート アダプターは、ミニポートPause 関数のリファレンス ページで説明されているように、一時停止状態です。
NDIS_STATUS_SEND_ABORTED NDIS は、このNET_BUFFER_LIST構造体の送信操作を取り消すために、ミニポートCancelSend 関数を呼び出しました。
NDIS_STATUS_RESET_IN_PROGRESS ミニポート ドライバーは、リセットが原因で送信要求を中止しました。
NDIS_STATUS_FAILURE ミニポート ドライバーは、前に説明した以外の何らかの理由で送信要求に失敗しました。 たとえば、ミニポート ドライバーは、ハードウェア障害が原因で送信要求を失敗させることができます。

NdisMSendNetBufferListsComplete ミニポート ドライバーの呼び出しは、送信要求のデータがネットワーク経由で送信されたことを必ずしも意味しません。 データは NIC ハードウェアでキューに入れられます。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム 万国
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_SendRcv_Function(ndis)、NdisTimedDataHang、NdisTimedDataSend

関連項目

ミニポートCancelSend

ミニポートInitializeEx

ミニポートSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists