NdisMTerminateOffloadComplete 函数 (ndischimney.h)
[TCP 烟囱卸载功能已弃用,不应使用。]
卸载目标调用 NdisMTerminateOffloadComplete 函数,以完成由上一次调用 启动的终止卸载操作 卸载目标的 MiniportTerminateOffload 函数。
语法
void NdisMTerminateOffloadComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);
参数
[in] NdisMiniportHandle
卸载目标在上一次调用中获取的句柄 NdisMRegisterMiniportDriver。
[in] OffloadBlockList
指向 的指针 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 结构。 卸载目标获取此指针作为其输入参数 MiniportTerminateOffload 函数。
返回值
无
备注
在调用 NdisMTerminateOffloadComplete 函数之前,卸载目标必须将以下任一NDIS_STATUS值写入状态树中每个NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构的 Status 成员:
-
NDIS_STATUS_SUCCESS
卸载目标已成功终止NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构引用的状态对象的卸载。 如果NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构后跟委托状态结构 (XXX_OFFLOAD_STATE_DELEGATED) ,则卸载目标会将该状态对象的委托变量值成功写入委托状态结构。
-
NDIS_STATUS_FAILURE
终止操作未成功。 此类故障是由灾难性故障引起的,该故障导致要终止的状态对象丢失。 在这种情况下,卸载目标硬件可能没有响应。 主机堆栈可能必须中止连接。
- 完成对 MiniportInvalidateOffload、 MiniportQueryOffload、 MiniportTcpOffloadReceive 的任何未完成调用, MiniportTcpOffloadDisconnect、 MiniportTcpOffloadForward、 MiniportTcpOffloadSend 和 MiniportUpdateOffload 函数。
- 确保对 NdisMIndicateStatusEx、 NdisMOffloadEventIndicate、 NdisTcpOffloadEventHandler 和 已返回 NdisTcpOffloadReceiveHandler 函数。
将未完成的发送数据传递到主机堆栈时,卸载目标还必须为要终止的连接指定以下委派 TCP 变量的非 NULL 值:
- SndUna
- SndNxt
- SndMax
如果正在终止的 TCP 连接上没有未完成的发送数据,则卸载目标必须为 NetBufferListChain 成员指定 NULL 值。
正在上传的 TCP 连接上可能存在未完成的接收数据。 这是卸载目标从网络接收、处理和确认的数据。 有关处理此类数据的详细信息,请参阅 在终止卸载操作期间处理缓冲接收数据。
卸载目标释放与终止状态对象关联的所有资源,例如内存。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ndischimney.h (包括 Ndischimney.h) |
IRQL | 任何级别 |