报告电源管理功能
支持 NDIS 6.20 及更高版本的 NDIS 的微型端口驱动程序在初始化期间报告其硬件电源管理功能。 NDIS 在绑定操作期间向过度覆盖 NDIS 协议驱动程序报告当前功能。 但是,NDIS 可以从协议驱动程序中隐藏某些功能。 例如,当用户禁用部分或全部电源管理功能时,NDIS 可能会报告不同的功能。
请注意,NDIS 向协议驱动程序报告的当前电源管理功能不一定与微型端口驱动程序向 NDIS 报告的硬件功能相同。
如果 NDIS 6.1 或更早版本的微型端口驱动程序绑定到 NDIS 6.20 协议驱动程序,则 NDIS 会将电源管理功能转换为 NDIS 6.20 协议驱动程序支持的格式。 NDIS 还将 NDIS 6.20 微型端口驱动程序报告的电源管理功能转换为 NDIS 6.1 和更早版本驱动程序支持的格式。
微型端口驱动程序报告的硬件功能可以在 INF 文件设置中启用或禁用。 有关电源管理 INF 文件设置的详细信息,请参阅 适用于电源管理的标准化 INF 关键字。
在微型端口初始化期间,微型端口驱动程序使用基础硬件的电源管理功能初始化 NDIS_PM_CAPABILITIES 结构。 微型端口驱动程序将 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 结构的 PowerManagementCapabilitiesEx 成员设置为指向 NDIS_PM_CAPABILITIES 结构。
NDIS_PM_CAPABILITIES结构包括以下信息:
标志
对于 NDIS 6.20,此成员是为 NDIS 保留的。
从 NDIS 6.30 开始,定义了以下标志:
NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED
如果设置了此标志,网络适配器可以保存导致适配器生成唤醒事件的接收数据包。
有关此电源管理功能的详细信息,请参阅 NDIS 唤醒原因状态指示。
NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED
如果设置了此标志,微型端口驱动程序支持网络适配器的 NDIS 选择性挂起。
有关此电源管理功能的详细信息,请参阅 NDIS 选择性挂起。
SupportedWoLPacketPatterns
包含指定网络适配器支持的 LAN 唤醒 (WOL) 数据包模式的标志。 例如,网络适配器在收到位图、WOL 幻数据包或 LAN 上的 EAP (EAPOL) 请求标识符消息时,可以生成唤醒事件。 有关当前操作系统中支持的模式的完整列表,请参阅 NDIS_PM_CAPABILITIES 参考页。
NumTotalWoLPatterns
一个 ULONG 值,该值包含网络适配器支持的 WOL 模式总数。 这是“支持的 WOL 协议模式数”和“支持的 WOL 位图模式数”的总和。
例如,如果驱动程序支持 8 种灵活的位图模式、通过预设筛选器) 和幻数据包 (IPv4 TCP SYN,则你将在 NumTotalWoLPatterns 中报告 9。 (8 个位图 + 1 个 IPv4 TCP SYN = 9)
注意 WOL 模式的总数不包括幻数据包唤醒模式。
有关 WOL 协议模式的详细信息,请参阅 NDIS_PM_WOL_PATTERN。
MaxWoLPatternSize
包含可与模式进行比较的最大字节数。
MaxWoLPatternOffset
包含可检查的数据包中的字节数,该字节数从 MAC 标头的开头开始。
MaxWoLPacketSaveBuffer
包含微型端口驱动程序可以保存到缓冲区并指示驱动程序堆栈向上的 WOL 协议模式的字节数。
SupportedProtocolOffloads
包含指定网络适配器支持的电源管理协议卸载功能的标志。 微型端口驱动程序使用这些标志来报告网络适配器的低功耗协议卸载功能。 例如,网络适配器可以支持 IPv4 ARP 卸载、IPv6 邻居请求 (NS) ,或 IEEE 802.11 可靠的安全网络 (RSN) 4 向和 2 向握手。 有关当前操作系统中支持的协议卸载的完整列表,请参阅 NDIS_PM_CAPABILITIES 参考页。
NumArpOffloadIPv4Addresses
包含 ARP 卸载 IPv4 地址的数目。
NumNSOffloadIPv6Addresses
包含网络适配器支持的网络请求 (NS) 卸载 IPv6 请求的数目。
MinMagicPacketWakeUp
指定最低设备电源状态,网络适配器可在收到 幻数据包时从中发出唤醒事件信号。 (幻数据包 是包含接收网络适配器以太网地址的 16 个连续副本的数据包。)
MinPatternWakeUp
指定最低设备电源状态,网络适配器可在收到包含协议驱动程序指定的模式的网络帧时发出唤醒事件信号。
MinLinkChangeWakeUp
指定最低设备电源状态,当 (媒体连接或断开连接) 发生链接更改时,网络适配器可以从该状态发出唤醒事件信号。
SupportedWakeUpEvents
指定网络适配器支持的独立于媒体的唤醒事件。 这些事件不特定于媒体类型。 例如,这些唤醒事件包括链接更改事件。
MediaSpecificWakeUpEvents
指定网络适配器支持的特定于媒体的唤醒事件。 例如,这些事件包括:
802.11 网络适配器取消与接入点 (AP) 的关联。
移动宽带 (MB) 网络适配器检测到其注册状态对 MB 服务的更改。
如果微型端口驱动程序支持将协议卸载到处于低功耗状态的网络适配器,则它必须支持与模式匹配 WOL 事件所支持的协议卸载相同的低功耗状态;即 MinPatternWakeUp 或 MinMagicPacketWakeUp 成员中指定的值。
NDIS 使用基础网络适配器的当前可用电源管理功能初始化 NDIS_PM_CAPABILITIES 结构,并在绑定操作期间向其传递协议过度覆盖协议驱动程序。 NDIS 将 NDIS_BIND_PARAMETERS 结构的 PowerManagementCapabilitiesEx 成员设置为指向 NDIS_PM_CAPABILITIES 结构。
过分的驱动程序可以使用 OID_PM_HARDWARE_CAPABILITIES OID 查询来获取网络适配器的硬件电源管理功能。 NDIS 代表微型端口驱动程序处理此 OID 请求。 NDIS 微型端口驱动程序不需要支持OID_PM_HARDWARE_CAPABILITIES OID 请求。
过分的驱动程序可以使用 OID_PM_CURRENT_CAPABILITIES OID 来查询网络适配器的当前可用电源管理功能。 NDIS 代表微型端口驱动程序处理此 OID 请求。 NDIS 微型端口驱动程序不需要支持 OID_PM_CURRENT_CAPABILITIES OID 请求。