[TCP 烟囱卸载功能已弃用,不应使用。
卸载目标调用 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 函数和每个 -connection NdisTcpOffloadReceiveHandler 函数。
卸载目标的 MiniportTcpOffloadReceive 函数可以在卸载目标的调用 NdisTcpOffloadReceiveComplete 函数的上下文中调用。 在这种情况下,卸载目标不得再次调用 NdisTcpOffloadReceiveComplete 函数,直到上次调用 NdisTcpOffloadReceiveComplete。
为了提高系统性能,卸载目标可以创建包含从多个调用到它的 NET_BUFFER_LIST 结构的链接列表 MiniportTcpOffloadReceive 函数。 卸载目标可以在单个调用 NdisTcpOffloadReceiveComplete 函数中传递此类链接列表。 请注意,卸载目标可以分发在单个调用中发布的接收请求 MiniportTcpOffloadReceive 函数跨多个完成调用,只要卸载目标按照发送到 MiniportTcpOffloadReceive 函数的顺序完成接收请求。
在调用 NdisTcpOffloadReceiveComplete 函数之前,卸载目标对传递给函数的每个NET_BUFFER_LIST结构执行以下作:
- 将以下状态值之一写入 状态 成员:
- 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的 ID 调用 NET_BUFFER_LIST_INFO 宏返回的数据字节数。
- 调用 NdisAdvanceNetBufferDataStart 函数。 NetBufferList 参数应指向与NET_BUFFER_LIST结构关联的NET_BUFFER结构。 DataOffsetDelta 参数应指定卸载目标放置在与NET_BUFFER结构关联的内存描述符列表(MDL)中的数据字节数。 FreeMdl 参数应 NULL。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ndischimney.h (包括 Ndischimney.h) |
IRQL | 任何级别 |