添加和删除 LAN 唤醒模式

若要添加 LAN 唤醒 (WOL) 模式,NDIS 协议驱动程序会发出 OID_PM_ADD_WOL_PATTERN的 OID 集请求。 NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_PM_WOL_PATTERN结构的指针。 如果网络适配器支持 WOL 数据包,协议驱动程序应指定该 WOL 数据包。 当网络适配器不支持 WOL 数据包时,协议驱动程序应使用 WOL 位图唤醒方法。

NDIS_PM_WOL_PATTERN包含以下信息:

优先
包含 WOL 模式的优先级。 如果在没有可用于更多 WOL 模式的资源时,过度分配的驱动程序添加了较高优先级的 WOL 模式,则 NDIS 可能会删除优先级较低的 WOL 模式来释放资源。 微型端口驱动程序应忽略此成员。 协议驱动程序可以指定预定义范围(从NDIS_PM_WOL_PRIORITY_LOWEST到NDIS_PM_WOL_PRIORITY_HIGHEST)内的任何优先级。

WoLPacketType
包含一个 NDIS_PM_WOL_PACKET 枚举值,该值指定 WOL 数据包的类型。

FriendlyName
包含包含 WOL 数据包的用户可读说明 的NDIS_PM_COUNTED_STRING 结构。

PatternId
包含标识 WOL 模式的 NDIS 提供的值。 在 NDIS 将 OID_PM_ADD_WOL_PATTERN OID 请求向下发送到基础 NDIS 驱动程序或完成对过度分配驱动程序的请求之前,NDIS 会将 PatternId 设置为网络适配器上的 WOL 模式中唯一的值。

NextWoLPatternOffset
包含从 OID 请求 InformationBuffer) 开头的一个 NDIS_PM_WOL_PATTERN 结构到OID_PM_WOL_PATTERN_LIST OID 列表中下一个NDIS_PM_WOL_PATTERN结构的偏移 量 ( 。 有关OID_PM_WOL_PATTERN_LIST的详细信息,请参阅 获取 WOL 模式的当前设置

WoLPattern
包含联合中的 IPv4TcpSynParametersIPv6TcpSynParametersEapolRequestIdMessageParametersWoLBitMapPattern 结构之一。

IPv4TcpSynParameters
包含 IPv4 TCP 同步 (SYN) 信息。

IPv6TcpSynParameters
包含 IPv6 TCP SYN 信息。

EapolRequestIdMessageParameters
包含 802.1X EAP over LAN (EAPOL) 请求标识消息参数。

WoLBitMapPattern
包含 WOL 位图模式规范。

NDIS 将网络适配器唯一的标识符分配给每个 WOL 模式。 模式标识符是在网络适配器上设置的每个模式的唯一值。 但是,模式标识符并非在所有网络适配器中全局唯一。 当 NDIS 将 OID_PM_ADD_WOL_PATTERN OID 请求发送到微型端口驱动程序时,NDIS 会将标识符传递给基础网络适配器。 如果添加 WOL 模式成功,NDIS 会将标识符返回给添加 WOL 模式的过度驱动程序。 覆盖驱动程序使用 标识符删除以前添加的 WOL 模式。 当从网络适配器中删除 WOL 模式时,模式标识符还用于过度驱动程序的状态指示中。

协议驱动程序必须发出 OID_PM_REMOVE_WOL_PATTERN 的 OID 集请求,以删除它们添加到网络适配器的所有模式,然后才能关闭到该网络适配器的绑定。 NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向模式标识符的指针。

用户模式应用程序使用 GUID_PM_REMOVE_WOL_PATTERN WMI GUID 从网络适配器中删除以前添加的 WOL 模式。 NDIS 将此 WMI 请求转换为网络适配器 OID_PM_REMOVE_WOL_PATTERN 的 OID 集请求。 NDIS 删除应用程序在停止网络适配器之前从网络适配器添加的所有 WOL 模式。

NDIS 允许多个 NDIS 协议驱动程序将 WOL 模式添加到同一网络适配器。 为了确保在请求的 WOL 模式数大于网络适配器可以支持的数量时设置了正确的 WOL 模式集,协议驱动程序在 NDIS_PM_WOL_PATTERN 结构的 Priority 成员中为每个请求的 WOL 模式分配优先级。 当 NDIS 由于网络适配器资源不足而无法添加新的高优先级 WOL 模式时,如果有任何) ,NDIS 会删除 (低优先级模式之一,并尝试再次添加高优先级模式。

注意 微型端口驱动程序应使模式添加请求失败,并返回STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL状态代码,以允许 NDIS 重新确定模式的优先级。

如果 NDIS 删除了优先级较低的模式之一,它会通知设置已删除模式的过度驱动程序 NDIS_STATUS_PM_WOL_PATTERN_REJECTED 状态指示。 NDIS_STATUS_INDICATION 结构的 StatusBuffer 成员包含已拒绝的 WOL 模式的 WOL 模式标识符的 ULONG。 NDIS 在 NDIS_PM_WOL_PATTERN 结构的 PatternId 成员中提供了 WOL 模式标识符。

对于可能在基础结构中漫游时使用基础结构元素卸载模式的无线网络适配器,新的基础结构元素可能不支持相同的功能,微型端口驱动程序可以使用适当的状态代码发送 NDIS_STATUS_PM_WOL_PATTERN_REJECTED 状态指示。