共用方式為


NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE回呼函式 (ndischimney.h)

[TCP chimney 卸除功能已被取代,不應使用。

卸除目標會呼叫 NdisTcpOffloadReceiveComplete 函式,以傳回已張貼的接收要求, (接收緩衝區) 主機堆棧。 卸除目標先前在對它的一或多個呼叫中收到接收要求 MiniportTcpOffloadReceive 函式

語法

NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE NdisTcpOffloadReceiveComplete;

void NdisTcpOffloadReceiveComplete(
  [in] IN NDIS_HANDLE NdisMiniportHandle,
  [in] IN PNET_BUFFER_LIST NetBufferList
)
{...}

參數

[in] NdisMiniportHandle

卸除目標在先前呼叫 中取得的句柄 NdisMRegisterMiniportDriver 函式。

[in] NetBufferList

NET_BUFFER_LIST 結構的指標。 這個結構可以是獨立結構,或是NET_BUFFER_LIST結構連結清單中的第一個結構。 卸除目標在對它的一或多個呼叫中取得這些結構 MiniportTcpOffloadReceive 函式

傳回值

備註

卸除目標應該使用並傳回預先張貼的接收要求,其順序是要求張貼到的順序卸除目標的 MiniportTcpOffloadReceive 函式。 也就是說,卸除目標應該先使用並傳回預先貼入的接收要求,先出 (FIFO) 順序。

卸除目標必須串行化 對 NdisTcpOffloadReceiveComplete 函式和 的呼叫 NdisTcpOffloadReceiveHandler 函式會根據每個連線。

卸除目標的 MiniportTcpOffloadReceive 函式可以在卸除目標對 NdisTcpOffloadReceiveComplete 函式的卸除目標呼叫內容中呼叫。 在此情況下,卸除目標必須再次呼叫 NdisTcpOffloadReceiveComplete 函式,直到前一次呼叫 NdisTcpOffloadReceiveComplete 為止。

為了改善系統效能,卸除目標可以建立連結清單,其中包含從多個呼叫到它的 NET_BUFFER_LIST 結構 MiniportTcpOffloadReceive 函式 。 卸除目標可以在單一呼叫 NdisTcpOffloadReceiveComplete 函式中傳遞這類連結清單。 請注意,卸除目標可以散發在單一呼叫中張貼的接收要求 只要 卸除目標以與 MiniportTcpOffloadReceive 函式張貼到MiniportTcpOffloadReceive 函式相同的順序完成接收要求,就會超過一個完成呼叫。

呼叫 NdisTcpOffloadReceiveComplete 函式之前,卸除目標會針對傳遞給函式的每個NET_BUFFER_LIST結構執行下列動作:

  • 將下列其中一個狀態值寫入 Status 成員:
    NDIS_STATUS_SUCCESS
    卸除目標會接收與 NetBufferList 參數所參考之NET_BUFFER_LIST結構相關聯的所有數據。 卸除目標也會進階 TCP 連線的 TCP 委派狀態中的 RcvNxtRcvWnd 變數。 卸除目標可能或可能尚未產生已接收數據的通知,視卸除目標是否正在等候傳送延遲的通知而定。
    NDIS_STATUS_REQUEST_ABORTED
    卸除目標正在處理所接收數據時發生錯誤。 如果卸除目標提供一些有效的數據,其中包含 NetBufferList 參數所指向的NET_BUFFER_LIST結構,卸除目標會藉由呼叫 NET_BUFFER_LIST_INFO 宏來指定有效的數據位元組數目。 卸除目標可能或可能尚未認可所接收數據的某些部分。
    NDIS_STATUS_UPLOAD_IN_PROGRESS
    正在上傳緩衝區的連線。
    NDIS_STATUS_INVALID_STATE
    在卸除目標之後張貼接收要求,表示已透過呼叫 中斷連線 NdisTcpOffloadEventHandler
  • 指定以 TcpOffloadBytesTransferred識別符呼叫 NET_BUFFER_LIST_INFO 宏所傳回的數據位元組數目。
  • 呼叫 NdisAdvanceNetBufferDataStart 函式。 NetBufferList 參數應該指向與 NET_BUFFER_LIST 結構相關聯的NET_BUFFER結構。 DataOffsetDelta 參數應該指定卸除目標放在記憶體描述元中的數據位元組數目, (MDL) 與NET_BUFFER結構相關聯。 FreeMdl 參數應該是 NULL

規格需求

需求
目標平台 Universal
標頭 ndischimney.h (包括 Ndischimney.h)
IRQL 任何層級

另請參閱

MiniportTcpOffloadReceive

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver