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 |
関連項目
NdisSendNetBufferLists の