OID_OFFLOAD_ENCAPSULATION

作为查询请求,过度分配驱动程序使用 OID_OFFLOAD_ENCAPSULATION OID 获取基础微型端口适配器的当前任务卸载封装设置。 NDIS 处理微型端口驱动程序的此 OID 查询。

作为设置请求,超载驱动程序使用 OID_OFFLOAD_ENCAPSULATION OID 来设置基础微型端口适配器的任务卸载封装设置。 支持任务卸载的微型端口驱动程序必须处理此 OID 集请求。

注解

NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含NDIS_OFFLOAD_ENCAPSULATION结构。

微型端口驱动程序

如果微型端口驱动程序不支持卸载和此 OID,则驱动程序应返回NDIS_STATUS_NOT_SUPPORTED。

微型端口驱动程序必须使用 NDIS_OFFLOAD_ENCAPSULATION 结构的内容来更新当前报告的 TCP 卸载功能。 更新后,微型端口驱动程序必须使用 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示报告当前任务卸载功能。 此状态指示可确保使用新功能信息更新所有过度使用的协议驱动程序。

此 OID 用于激活所有已配置或已启用的卸载,或停用所有卸载 (换句话说,硬件开始执行卸载) 。 它不提供对单个卸载的精细控制。 相反, OID_TCP_OFFLOAD_PARAMETERS 用于配置单个卸载,也可以激活它们。 通常,可以使用OID_TCP_OFFLOAD_PARAMETERS配置和激活大多数 TCP/IP 任务卸载。

但是,此 OID 的NDIS_OFFLOAD_ENCAPSULATION结构还涵盖OID_TCP_OFFLOAD_PARAMETERS NDIS_OFFLOAD_PARAMETERS 结构未涵盖的其他两种封装类型: NDIS_ENCAPSULATION_IEEE_802_3NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED。 微型端口驱动程序需要处理不同 OID 所涵盖的封装类型的这种差异。

如果协议驱动程序发出此 OID 以停用所有卸载,则 NDIS_OFFLOAD_ENCAPSULATION 成员的 Enabled 成员将设置为 NDIS_OFFLOAD_SET_OFF。

) (协议驱动程序设置封装

协议驱动程序在确定系统封装要求后设置OID_OFFLOAD_ENCAPSULATION。 协议驱动程序可以从NDIS_BIND_PARAMETERS结构或通过查询OID_TCP_OFFLOAD_CURRENT_CONFIG来确定基础微型端口适配器的功能。 协议驱动程序必须设置微型端口适配器在至少一个卸载服务上支持的封装类型。

如果微型端口驱动程序支持支持所请求的封装类型的任何卸载类型,则驱动程序必须返回NDIS_STATUS_SUCCESS以响应一组OID_OFFLOAD_ENCAPSULATION。 否则,微型端口驱动程序应返回NDIS_STATUS_INVALID_PARAMETER。

对于发送操作,协议驱动程序可以通过仅使用微型端口适配器支持的卸载类型以及所需的封装类型来发出发送请求。 因此,如果 OID_OFFLOAD_ENCAPSULATION 的 OID 集请求失败,则协议驱动程序不得在定向到该微型端口适配器的发送请求中使用任何卸载设置。

对于接收操作,微型端口驱动程序不得启动校验和或 Internet 协议安全性 (IPsec) 卸载服务,直到收到OID_OFFLOAD_ENCAPSULATION的 OID 集请求。

获取当前封装设置 (协议驱动程序)

协议驱动程序只能在设置 OID_OFFLOAD_ENCAPSULATION OID 后发出OID_OFFLOAD_ENCAPSULATION查询。

NDIS 使用包含当前封装设置 的 NDIS_OFFLOAD_ENCAPSULATION 结构进行响应。

协议驱动程序必须准备好处理任何NDIS_STATUS_Xxx失败代码。 如果发生故障,协议驱动程序不得尝试执行定向到受影响的微型端口适配器的任何卸载操作。

另请参阅

NDIS_BIND_PARAMETERS
NDIS_OFFLOAD_ENCAPSULATION
NDIS_OID_REQUEST
NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG
OID_TCP_OFFLOAD_CURRENT_CONFIG

要求

版本:Windows Vista 和更高 版本的标头:Ntddndis.h (包括 Ndis.h)