NdisMGetOffloadHandlers 函数 (ndischimney.h)
[TCP 烟囱卸载功能已弃用,不应使用。]
此函数获取特定烟囱类型的 NDIS 函数的入口点。
语法
NDIS_STATUS NdisMGetOffloadHandlers(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN NDIS_CHIMNEY_OFFLOAD_TYPE ChimneyType,
[out] OUT PNDIS_OFFLOAD_EVENT_HANDLERS *OffloadHandlers
);
参数
[in] NdisMiniportHandle
卸载目标分配的上下文区域的句柄,卸载目标在其中维护有关此适配器实例的状态信息。 卸载目标在调用时向 NDIS 提供此句柄 来自它的 NdisMSetMiniportAttributes MiniportInitializeEx 函数。
[in] ChimneyType
烟囱类型是以下NDIS_CHIMNEY_OFFLOAD_TYPE值之一:
NdisTcpChimneyOffload
TCP 烟囱卸载类型。
所有其他NDIS_CHIMNEY_OFFLOAD_TYPE值当前都保留。
[out] OffloadHandlers
指向卸载目标提供的变量的指针。 此变量的大小为 size of (PNDIS_OFFLOAD_EVENT_HANDLERS) 。 如果对 NdisMGetOffloadHandlers 函数的调用成功,该函数将在此变量中返回指向NDIS_OFFLOAD_EVENT_HANDLERS结构的指针。 此结构用作包含入口点的烟囱特定结构的标头。 NDIS_OFFLOAD_EVENT_HANDLERS 结构的格式如下:
typedef struct _NDIS_OFFLOAD_EVENT_HANDLERS {
NDIS_OBJECT_HEADER Header;
} NDIS_OFFLOAD_EVENT_HANDLERS, *PNDIS_OFFLOAD_EVENT_HANDLERS;
此结构包含以下成员:
标头
指定格式化为 NDIS_OBJECT_HEADER 结构的 NDIS 对象标头。
返回值
NdisMGetOffloadHandlers 可以返回以下任一项:
返回代码 | 说明 |
---|---|
|
调用成功。 返回的 NDIS 入口点对指定的烟囱类型有效。 |
|
NDIS 不支持卸载目标指定的烟囱类型。 在这种情况下,NDIS 不返回有效的 OffloadHandlers 指针。 |
注解
卸载目标从其 MiniportInitializeEx 函数调用此函数,以获取特定烟囱类型的 NDIS 函数的入口点。 卸载目标为其支持的每种烟囱类型调用 NdisMGetOffloadHandlers 一次。 在每个调用中,卸载目标指定不同的烟囱类型。
如果对 NdisMGetOffloadHandlers 函数的调用成功,NDIS 将提供有效的 OffloadHandlers 指针,该指针指向NDIS_OFFLOAD_EVENT_HANDLERS结构。 此结构包含 NDIS_OBJECT_HEADER 结构。 卸载目标检查NDIS_OBJECT_HEADER结构的 Type、 Revision 和 Size 成员。 这些成员指定包含烟囱特定入口点的结构、此结构的修订号以及此结构的大小(以字节为单位)。 Type 值与为 ChimneyType 参数提供的卸载目标相同。
如果卸载目标支持指定的 Revision 号,则会将 OffloadHandlers 指针转换为指向相应烟囱特定结构类型的指针。 下表指示每种烟囱类型特定于烟囱的结构。
ChimneyType | 烟囱特定的处理程序结构 |
---|---|
NdisTcpChimneyOffload | NDIS_TCP_OFFLOAD_EVENT_HANDLERS |
例如,对于 NdisTcpChimneyOffload 烟囱类型,卸载目标会将 OffloadHandlers 指针强制转换为 *PNDIS_TCP_OFFLOAD_EVENT_HANDLERS。
烟囱特定的处理程序结构包含与NDIS_OFFLOAD_EVENT_HANDLERS结构相同的NDIS_OBJECT_HEADER结构。
卸载目标将入口点从烟囱特定的结构复制到其自己的内部数据结构中,然后返回 。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ndischimney.h (包括 Ndischimney.h) |