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 | 任何级别 |