关于网络唤醒事件

网络唤醒事件是导致网络适配器唤醒系统的外部事件。 网络适配器通过断言特定于总线的唤醒信号来唤醒系统,该信号最终导致系统从睡眠状态转换到工作状态。

NDIS 定义以下两个网络唤醒事件:

  • 接收包含绑定协议驱动程序指定的模式的网络唤醒帧。

  • 收到 Magic Packet。

网络适配器可以支持网络唤醒事件的任意组合,包括根本不包含任何事件。 如果微型端口驱动程序将 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 的 PowerManagementCapabilities 成员设置为 NULL,则 NDIS 会将微型端口驱动程序视为无法感知电源管理。

根据网络适配器的功能,网络唤醒事件可能发生在任何设备电源状态,包括最高功率状态 (D0) 。

网络Wake-Up帧

如果在初始化期间,微型端口驱动程序指示网络适配器可以在收到包含指定模式的数据包时发出唤醒信号,则绑定协议可以在网络适配器上启用基于模式的唤醒方法并指定唤醒模式。 若要启用这种类型的唤醒,协议驱动程序在 OID_PNP_ENABLE_WAKE_UP 中设置 NDIS_PNP_WAKE_UP_PATTERN_MATCH标志。

协议驱动程序使用 OID_PNP_ADD_WAKE_UP_PATTERN 指定唤醒模式,以及指示应将传入数据包的哪些字节与模式进行比较的掩码。 协议驱动程序可以使用 OID_PNP_REMOVE_WAKE_UP_PATTERN 删除唤醒模式。

Magic-Packet Wake-Up

Magic Packet 是包含接收网络适配器 MAC 地址的 16 个连续副本的数据包。

本节包括:

启用唤醒事件

处理唤醒事件