NDIS_TCP_OFFLOAD_SEND_COMPLETE回调函数 (ndischimney.h)
[TCP 烟囱卸载功能已弃用,不应使用。
卸载目标调用 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结构执行以下作:
-
将状态值写入 状态 成员:
- 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结构传播到基础卸载目标。 主机堆栈将执行发送作。
- 指定发送的数据字节数。 卸载目标通过调用 IDTcpOffloadBytesTransferred调用 NET_BUFFER_LIST_INFO 宏来执行此作。
- 调用 与NET_BUFFER_LIST结构关联的每个NET_BUFFER结构的 NdisAdvanceNetBufferDataStart 函数。 传递给 NdisAdvanceNetBufferDataStart 函数的 NetBuffer 参数应指向NET_BUFFER结构。 DataOffsetDelta 参数应指定NET_BUFFER结构中的数据字节数,这些结构由卸载目标传输,并由远程主机确认。 FreeMdl 参数 NULL。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ndischimney.h (包括 Ndischimney.h) |
IRQL | 任何级别 |