NDIS_TCP_OFFLOAD_SEND_COMPLETE回呼函式 (ndischimney.h)
[TCP chimney 卸除功能已被取代,不應使用。
卸除目標會呼叫 NdisTcpOffloadSendComplete 函式,以完成對卸除目標的 MiniportTcpOffloadSend 函式所做的一或多個傳送要求。
語法
NDIS_TCP_OFFLOAD_SEND_COMPLETE NdisTcpOffloadSendComplete;
void NdisTcpOffloadSendComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNET_BUFFER_LIST NetBufferList
)
{...}
參數
[in] NdisMiniportHandle
卸除目標在先前呼叫 中取得的句柄 NdisMRegisterMiniportDriver 函式。
[in] NetBufferList
NET_BUFFER_LIST 結構的指標。 這個結構可以是獨立結構,或是NET_BUFFER_LIST結構連結清單中的第一個結構。 卸除目標在對它的一或多個呼叫中取得這些結構 MiniportTcpOffloadSend 函式。
傳回值
無
備註
為了改善系統效能,卸除目標可以建立連結清單,其中包含從多個MiniportTcpOffloadSend函式呼叫NET_BUFFER_LIST結構。 然後,驅動程式就可以在單一呼叫 NdisTcpOffloadSendComplete 函式中傳遞這類連結清單。
完成一或多個傳送要求之前,卸除目標必須針對傳遞給 NdisTcpOffloadSendComplete 函式的每個NET_BUFFER_LIST結構執行下列動作:
-
將狀態值寫入 Status 成員:
- NDIS_STATUS_SUCCESS表示卸除目標已成功傳送與NET_BUFFER_LIST相關聯的所有數據,以及從遠端主機接收的卸除目標已收到所有傳輸數據的通知。 請注意,這與非卸除傳送函式不同, MiniportSendNetBufferLists,不會監視通知。
- NDIS_STATUS_SUCCESS以外的狀態值,例如NDIS_STATUS_REQUEST_ABORTED或NDIS_STATUS_UPLOAD_IN_PROGRESS的狀態值,表示傳送數據未成功認可。 卸除目標可能或可能尚未傳送數據。 卸除目標應該會失敗連結清單中所有後續NET_BUFFER_LIST結構的傳送作業,而不會傳送任何與這些結構相關聯的數據。 卸除目標會在卸除要傳送數據的 TCP 連線終止時,寫入狀態值NDIS_STATUS_UPLOAD_IN_PROGRESS。 在此情況下,主機堆疊會排入佇列並處理 TCP 數據。 卸除目標會在要傳送數據的 TCP 連線上收到 RST 區段時,寫入狀態值NDIS_STATUS_REQUEST_ABORTED。 在此情況下,主機堆疊不會處理 TCP 數據。
- 卸除目標最多應該完成連結清單中的一個NET_BUFFER_LIST結構的部分傳送。 卸除目標會寫入NDIS_STATUS_SUCCESS以外的狀態值,例如,NDIS_STATUS_ABORTED或NDIS_STATUS_UPLOAD_IN_PROGRESS的狀態值寫入這類NET_BUFFER_LIST結構。
- 如果中繼驅動程式無法配置記憶體以將傳送作業傳播至基礎卸除目標,它會將狀態值NDIS_STATUS_REQUEST_UPLOAD寫入連結清單中的第一個NET_BUFFER_LIST結構,並將NDIS_STATUS_UPLOAD_REQUESTED至連結清單中的所有後續NET_BUFFER_LIST結構。 中繼驅動程式不得將NET_BUFFER_LIST結構傳播至基礎卸除目標。 主機堆疊會執行傳送作業。
- 指定傳送的數據位元組數目。 卸除目標會呼叫標識符為TcpOffloadBytesTransferred的 NET_BUFFER_LIST_INFO 宏,以執行此動作。
- 呼叫 NdisAdvanceNetBufferDataStart 函式,適用於與NET_BUFFER_LIST 結構相關聯的每個NET_BUFFER結構。 傳遞至 NdisAdvanceNetBufferDataStart 函式的 NetBuffer 參數應該指向NET_BUFFER結構。 DataOffsetDelta 參數應該指定卸除目標所傳輸之NET_BUFFER結構中的數據位元組數目,以及遠端主機所認可的數據位元組數目。 FreeMdl 參數為 NULL。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ndischimney.h (包括 Ndischimney.h) |
IRQL | 任何層級 |