TCP_OFFLOAD_RECEIVE_INDICATE_HANDLER コールバック関数 (ndischimney.h)

[TCP のチムニー オフロード機能は非推奨であり、使用しないでください。]

NDIS は、プロトコル ドライバーまたは中間ドライバーを呼び出します。 ProtocolTcpOffloadReceiveIndicate 関数は、基になるドライバーまたはオフロード ターゲットによって示されている受信データを配信します。

構文

TCP_OFFLOAD_RECEIVE_INDICATE_HANDLER TcpOffloadReceiveIndicateHandler;

NDIS_STATUS TcpOffloadReceiveIndicateHandler(
  [in]  IN PVOID OffloadContext,
  [in]  IN PNET_BUFFER_LIST NetBufferList,
  [in]  IN NDIS_STATUS Status,
  [out] OUT PULONG BytesConsumed
)
{...}

パラメーター

[in] OffloadContext

示す TCP 接続のプロトコルまたは中間ドライバーの NDIS_OFFLOAD_HANDLE 構造体へのポインター。 プロトコルまたは中間ドライバーは、接続のオフロード時に NdisInitiateOffload 関数に入力パラメーターとしてこのポインターを指定しました。

[in] NetBufferList

NET_BUFFER_LIST構造体へのポインター。 各 NET_BUFFER_LIST 構造体は、 NET_BUFFER 構造体の一覧を記述します。 リスト 内の各NET_BUFFER 構造は、 メモリ記述子リスト (MDL) のチェーンにマップされます。 MDLs には、受信したデータが含まれています。 MDP は、常駐状態のままになるようにロックされますが、システム メモリにはマップされません。

NetBufferList によって指定されるNET_BUFFER_LIST構造体はスタンドアロン構造である必要があり、NET_BUFFER_LIST構造体のリンクリストの最初の構造体にすることはできません。 オフロード ターゲットは、オフロード受信表示の同じ NET_BUFFER に必要な数の MDL をチェーンすることで、この制限を回避できます。

[in] Status

中間ドライバーは、 を呼び出すときにこの状態を伝達する必要があります NdisTcpOffloadReceiveHandler

[out] BytesConsumed

クライアント アプリケーションによって使用されたバイト数を受け取る ULONG 型の変数へのポインター。

戻り値

次に、 ProtocolTcpOffloadReceiveIndicate 関数は、次のいずれかの値を返すことができます。

リターン コード 説明
NDIS_STATUS_SUCCESS
クライアント アプリケーションは、指定されたすべての受信データを使用しました。
NDIS_STATUS_OFFLOAD_DATA_NOT_ACCEPTED
クライアント アプリケーションは、指定されたすべての受信データを拒否しました。
NDIS_STATUS_OFFLOAD_DATA_PARTIALLY_ACCEPTED
クライアント アプリケーションは、指定された受信データのサブセットを使用しました。 クライアント アプリケーションによって使用されたデータの量 (バイト単位) は、 BytesConsumed パラメーターで指定された変数で返されます。

注釈

上にあるドライバーまたはホスト スタックに表示を伝達するために、中間ドライバーは を呼び出します。 NdisTcpOffloadReceiveHandler 関数。 中間ドライバーは、 NdisTcpOffloadReceiveHandler 関数に次のパラメーターを渡します。

  • オフロードされた TCP 接続のコンテキストにオフロード ターゲットが格納されている NdisOffloadHandle 。 詳細については、「 中間ドライバーを介したオフロード状態の参照
  • NDIS が中間ドライバーの ProtocolTcpOffloadReceiveIndicate 関数に渡した NetBufferList ポインター。
  • NDIS が中間ドライバーの ProtocolTcpOffloadReceiveIndicate 関数に渡した状態

要件

要件
対象プラットフォーム Windows
ヘッダー ndischimney.h (Ndischimney.h を含む)

こちらもご覧ください

Mdl

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisInitiateOffload

NdisOffloadTcpReceiveReturn

NdisTcpOffloadReceiveHandler