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 委派狀態中的 RcvNxt 和 RcvWnd 變數。 卸除目標可能或可能尚未產生已接收數據的通知,視卸除目標是否正在等候傳送延遲的通知而定。
- 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 | 任何層級 |