OID_PM_ADD_PROTOCOL_OFFLOAD

作为一组,NDIS 协议驱动程序使用 OID_PM_ADD_PROTOCOL_OFFLOAD OID 将用于电源管理的协议卸载添加到网络适配器。 NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_PM_PROTOCOL_OFFLOAD结构的指针。

注解

NDIS 6.20 及更高版本的协议驱动程序使用 OID_PM_ADD_PROTOCOL_OFFLOAD OID 将用于电源管理的协议卸载添加到网络适配器。 如果请求成功,当网络适配器处于低功耗状态时,网络适配器必须为卸载协议生成并传输必要的响应数据包。

协议驱动程序可以在成功绑定到基础网络适配器后卸载协议,并且只要具有必要的数据 ((例如接口的 IP 地址) 卸载协议)。 协议驱动程序还可以卸载协议以响应某些其他电源管理事件通知,例如拒绝以前添加的 WOL 模式或卸载的协议。

为了避免 NDIS 和其他绑定到同一微型端口适配器的协议驱动程序中的争用情况,在 NDIS 开始将网络适配器设置为低功耗状态后,任何将另一个协议卸载到该网络适配器的尝试都将失败。 例如,如果 NDIS 协议驱动程序尝试在处理该网络适配器的 NetEventSetPower 事件通知的上下文中卸载协议,则 NDIS 将使请求失败。

在 NDIS 将此 OID 请求向下发送到基础 NDIS 驱动程序或完成对 overlying 驱动程序的请求之前,它会将 NDIS_PM_PROTOCOL_OFFLOAD 结构的 ULONG ProtocolOffloadId 成员设置为唯一值。 协议驱动程序和 NDIS 将此协议卸载标识符与 OID_PM_REMOVE_PROTOCOL_OFFLOAD OID 请求一起使用,以从基础网络适配器中删除协议卸载。

注意 协议卸载标识符是在网络适配器上设置的每个协议卸载的唯一值。 但是,协议卸载标识符并非在所有网络适配器中全局唯一。

如果 NDIS 或基础网络适配器拒绝卸载,则会生成 NDIS_STATUS_PM_OFFLOAD_REJECTED 状态指示。 为 OID 返回NDIS_STATUS_SUCCESS后,可能会发生这种情况。 NDIS_STATUS_INDICATION 结构的 StatusBuffer 成员包含已拒绝协议卸载的 ULONG 协议卸载标识符。

有关本机 802.11 无线 LAN 微型端口驱动程序如何使用此 OID 的信息,请参阅 添加和删除低功率协议卸载

微型端口驱动程序返回请求的以下状态代码之一:

NDIS_STATUS_SUCCESS
已成功添加请求的协议卸载。 NDIS_PM_PROTOCOL_OFFLOAD 结构的 ProtocolOffloadId 成员包含协议卸载标识符。

NDIS_STATUS_PENDING
请求正在等待完成。 请求完成后,NDIS 会将最终状态代码和结果传递给调用方 OID 请求完成处理程序。

NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
请求失败,因为协议卸载列表已满,并且网络适配器无法添加另一个协议卸载。

NDIS_STATUS_RESOURCES
由于缺少资源,NDIS 或基础网络适配器无法添加新协议卸载。

NDIS_STATUS_INVALID_PARAMETER
NDIS_PM_PROTOCOL_OFFLOAD 结构中的一个或多个参数无效。

NDIS_STATUS_BUFFER_TOO_SHORT
信息缓冲区太短。 NDIS 设置 数据。SET_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。

NDIS_STATUS_NOT_SUPPORTED
网络适配器不支持请求的协议卸载。

NDIS_STATUS_FAILURE
请求因上述原因以外的原因而失败。

要求

版本

在 NDIS 6.20 及更高版本中受支持。 对于微型端口驱动程序是必需的。

标头

Ntddndis.h (包括 Ndis.h)

另请参阅

NDIS_OID_REQUEST

NDIS_PM_PROTOCOL_OFFLOAD

NDIS_STATUS_INDICATION

NDIS_STATUS_PM_OFFLOAD_REJECTED

OID_PM_REMOVE_PROTOCOL_OFFLOAD

添加和删除低功耗协议卸载