W_INITIATE_OFFLOAD_HANDLER回调函数 (ndischimney.h)

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

MiniportInitiateOffload 从主机堆栈卸载 TCP 烟囱状态。

语法

W_INITIATE_OFFLOAD_HANDLER WInitiateOffloadHandler;

void WInitiateOffloadHandler(
  [in]      IN NDIS_HANDLE MiniportAdapterContext,
  [in, out] IN OUT PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
)
{...}

参数

[in] MiniportAdapterContext

卸载目标分配的上下文区域的句柄,卸载目标在其中维护有关此适配器实例的状态信息。 微型端口驱动程序在调用 NDIS 时向 NDIS 提供了此句柄 NdisMSetMiniportAttributes 从其 MiniportInitializeEx 函数。

[in, out] OffloadBlockList

指向 的指针 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 结构,可以是独立结构,也可以是此类结构链接列表的根。

返回值

备注

MiniportInitiateOffload 函数存储 OffloadBlockList 指针,然后返回 。 卸载目标始终通过调用异步完成卸载操作 NdisMInitiateOffloadComplete。 在微型端口驱动程序调用 NdisMInitiateOffloadComplete 之前,OffloadBlockList 指针指向的状态树有效。

其 MiniportInitiateOffload 函数返回后,卸载目标将从状态树中卸载状态。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 结构,其 MiniportOffloadContext 成员指向包含 NULL 值的内存位置后跟要卸载的状态。 有关详细信息,请参阅 存储和引用卸载状态。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 结构的 Header 成员包含一个 Type 成员,该成员指定卸载状态的类型,以及直接遵循内存中NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构的 卸载状态结构

卸载目标将与NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构关联的卸载状态卸载到卸载上下文区域。 有关详细信息,请参阅 存储和引用卸载状态

卸载状态时,卸载目标必须以 深度优先/广度-下一方式遍历状态树。 卸载目标以这种方式卸载状态至关重要。

传递到 MiniportInitiateOffload 函数的状态树中的某些NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构可以是占位符或链接节点,这些节点没有要卸载的附带状态。 有关详细信息,请参阅 占位符、链接器和新的卸载

卸载目标可以从主机堆栈接收正在卸载的连接的缓冲数据。 卸载目标必须在完成卸载操作之前将此数据复制到自己的缓冲区。 有关处理缓冲接收数据的详细信息,请参阅 处理卸载操作期间和之后的缓冲接收数据

对于它卸载的每个状态对象,卸载目标还必须提供一个 PVOID 值,该值引用卸载目标存储状态对象的卸载上下文区域。 卸载目标将此 PVOID 值写入到与状态关联的 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构的 *MiniportOffloadContext 成员所指向的内存位置。 如果卸载目标未成功卸载与 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST 结构关联的状态,则不应将值写入 *MiniportOffloadContext 成员指向的内存位置。 有关详细信息,请参阅 存储和引用卸载状态

要求

要求
目标平台 Windows
标头 ndischimney.h (包括 Ndischimney.h)
IRQL 任何级别

另请参阅

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes