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 関数は、次のいずれかの値を返すことができます。
リターン コード | 説明 |
---|---|
|
クライアント アプリケーションは、指定されたすべての受信データを使用しました。 |
|
クライアント アプリケーションは、指定されたすべての受信データを拒否しました。 |
|
クライアント アプリケーションは、指定された受信データのサブセットを使用しました。 クライアント アプリケーションによって使用されたデータの量 (バイト単位) は、 BytesConsumed パラメーターで指定された変数で返されます。 |
注釈
上にあるドライバーまたはホスト スタックに表示を伝達するために、中間ドライバーは を呼び出します。 NdisTcpOffloadReceiveHandler 関数。 中間ドライバーは、 NdisTcpOffloadReceiveHandler 関数に次のパラメーターを渡します。
- オフロードされた TCP 接続のコンテキストにオフロード ターゲットが格納されている NdisOffloadHandle 。 詳細については、「 中間ドライバーを介したオフロード状態の参照。
- NDIS が中間ドライバーの ProtocolTcpOffloadReceiveIndicate 関数に渡した NetBufferList ポインター。
- NDIS が中間ドライバーの ProtocolTcpOffloadReceiveIndicate 関数に渡した状態。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | ndischimney.h (Ndischimney.h を含む) |