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。 OffloadBlockList 指针指向的状态树有效,直到微型端口驱动程序调用 NdisMInitiateOffloadComplete。
从其 MiniportInitiateOffload 函数返回后,卸载目标将从状态树卸载状态。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构,其 MiniportOffloadContext 成员指向包含 NULL 值的内存位置后跟要卸载的状态。 有关详细信息,请参阅 存储和引用卸载状态。 NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构的 标头 成员包含一个 类型 成员,该成员指定卸载状态的类型,卸载状态结构 或结构,这些结构紧随内存中的NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构。
卸载目标将与NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构关联的卸载状态卸载到卸载上下文区域。 有关详细信息,请参阅 存储和引用卸载状态。
卸载状态时,卸载目标必须 深度优先/广度-下一时尚遍历状态树。 卸载目标以这种方式卸载状态至关重要。
传递给 MiniportInitiateOffload 函数的状态树中的一些NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构可以是占位符或链接没有要卸载状态的节点。 有关详细信息,请参阅 占位符、链接器和新的卸载。
卸载目标可以从主机堆栈接收缓冲数据,以获取正在卸载的连接。 卸载目标必须在完成卸载作之前将此数据复制到其自己的缓冲区。 有关处理缓冲接收数据的详细信息,请参阅 处理卸载作期间和之后的缓冲接收数据。
对于卸载的每个状态对象,卸载目标还必须提供一个 PVOID 值,该值引用卸载目标在其中存储状态对象的卸载上下文区域。 卸载目标将此 PVOID 值写入 *MiniportOffloadContext 与状态关联的NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构成员指向的内存位置。 如果卸载目标未成功卸载与NDIS_MINIPORT_OFFLOAD_BLOCK_LIST结构关联的状态,则它不应将值写入 *MiniportOffloadContext 成员指向的内存位置。 有关详细信息,请参阅 存储和引用卸载状态。
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | ndischimney.h (包括 Ndischimney.h) |
IRQL | 任何级别 |