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 驱动程序或完成向过度分配的驱动程序发出的请求之前,它将 ULONG ProtocolOffloadId 成员 NDIS_PM_PROTOCOL_OFFLOAD 结构的成员设置为唯一值。 协议驱动程序和 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_STATUS_PM_OFFLOAD_REJECTED