NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE回调函数 (ndischimney.h)

[TCP 烟囱卸载功能已弃用,不应使用。

卸载目标调用 NdisTcpOffloadDisconnectComplete 函数以完成上一次调用发起的断开连接请求 MiniportTcpOffloadDisconnect 卸载目标的函数。

语法

NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE NdisTcpOffloadDisconnectComplete;

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

参数

[in] NdisMiniportHandle

卸载目标在上一次调用中获取的句柄 NdisMRegisterMiniportDriver 函数。

[in] NetBufferList

指向单个 NET_BUFFER_LIST 结构的指针。 卸载目标将此指针作为输入参数获取到它的输入参数 MiniportTcpOffloadDisconnect 函数。

返回值

没有

言论

完成中止断开连接

如果卸载目标发出中止断开连接,则必须在调用 NdisTcpOffloadDisconnectComplete 函数之前执行以下作:

  • 在连接上完成所有未完成的发送请求,状态值为 NDIS_STATUS_REQUEST_ABORTED。 卸载目标将此状态值写入链接列表中的每个NET_BUFFER_LIST结构 状态 成员,并将其传递给 NdisTcpOffloadSendComplete 函数。
  • 将状态值写入 NetBufferList 指针指向的NET_BUFFER_LIST结构的 状态 成员。 状态值NDIS_STATUS_SUCCESS指示卸载目标已成功发送 RST 段。 有关允许状态值的说明,请参阅 NET_BUFFER_LIST
完成正常断开连接

完成正常断开连接请求之前,卸载目标必须:

  • 将状态值写入传递给NET_BUFFER_LIST结构的 状态 成员 NdisTcpOffloadDisconnectComplete 函数:
    • NDIS_STATUS_SUCCESS值表示,FIN 段以及任何用户数据都已成功由卸载目标 发送, 也由远程主机确认。
    • NDIS_STATUS_UPLOAD_IN_PROGRESS值指示正在上传 NdisMiniportHandle 引用的 TCP 连接。
    • NDIS_STATUS_REQUEST_ABORTED值指示 FIN 段和/或任何用户数据未通过卸载目标成功传输,并且远程主机已确认。 主机堆栈最终将终止 TCP 连接的卸载。
  • 指定已发送并成功确认的用户数据字节数。 卸载目标通过调用 IDTcpOffloadBytesTransferred调用 NET_BUFFER_LIST_INFO 宏来执行此作。
  • 调用 NdisAdvanceNetBufferDataStart 函数。 NetBufferList 参数应指向与卸载目标传递给 NdisTcpOffloadDisconnectComplete 函数NET_BUFFER_LIST结构关联的NET_BUFFER结构。 DataOffsetDelta 参数应指定NET_BUFFER结构中的数据字节数,这些字节既由卸载目标传输,又由远程主机成功确认。 FreeMdl 参数应 NULL
请注意,NdisTcpOffloadDisconnectComplete 函数仅返回 NDIS 传递给卸载目标的NET_BUFFER_LIST结构和关联的结构 MiniportTcpOffloadDisconnect 函数。 NdisTcpOffloadDisconnectComplete 函数无法返回在上一次调用中传递给卸载目标的 NDIS 的NET_BUFFER_LIST结构 MiniportTcpOffloadSend 函数。

要求

要求 价值
目标平台 普遍
标头 ndischimney.h (包括 Ndischimney.h)

另请参阅

MiniportTcpOffloadDisconnect

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver

NdisTcpOffloadSendComplete