共用方式為


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)鏈結。 MDL 包含已接收的數據。 MDL 已鎖定,使其保持常駐狀態,但不會對應到系統記憶體中。

NetBufferList 所指定的 NET_BUFFER_LIST 結構 必須是獨立結構,而且不能是 NET_BUFFER_LIST 結構鏈接清單中的第一個結構。 卸除目標可以藉由鏈結到卸除接收指示中相同 NET_BUFFER 所需的數目,來因應這項限制。

[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 函式:

  • NdisOffloadHandle 卸除目標儲存在卸除 TCP 連線的內容中。 如需詳細資訊,請參閱 透過中繼驅動程式參考卸除狀態。
  • NetBufferList NDIS 傳遞至中繼驅動程式 ProtocolTcpOffloadReceiveIndicate 函式的指標。
  • NDIS 傳遞至中繼驅動程式 ProtocolTcpOffloadReceiveIndicate 函式的 Status

要求

要求 價值
目標平臺 窗戶
標頭 ndischimney.h (包括 Ndischimney.h)

另請參閱

MDL

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisInitiateOffload

NdisOffloadTcpReceiveReturn

NdisTcpOffloadReceiveHandler