在 LAN 上唤醒时离开低功耗状态

当网络适配器检测到 WOL 事件时,LAN 唤醒 (WOL) 功能会将计算机从低功耗状态唤醒。

微型端口驱动程序在初始化期间报告网络适配器 WOL 功能。 有关报告 WOL 功能的详细信息,请参阅 报告电源管理功能

请注意,当计算机进入睡眠状态时,将取消媒体断开连接 (D3 的电源断开) 功能,以防止在链接状态外部循环时唤醒计算机;也就是说,当开关处于关闭和打开状态时。 有关断开连接时 D3 的详细信息,请参阅 媒体断开连接时低功耗

下图演示了将网络适配器设置为低功耗状态时发生的事件序列。

说明将网络适配器设置为低功耗状态的事件序列的示意图。

当 NDIS 将网络适配器置于低功耗状态时,将发生以下顺序:

  1. NDIS 使用 OID_PM_PARAMETERS 在 LAN 上启用唤醒,并在媒体连接上禁用唤醒。 NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED在 WakeUpFlags 成员中清除。

  2. NDIS 使用 OID_PNP_SET_POWER 通知微型端口驱动程序新的电源状态 (D3) 。

  3. 微型端口驱动程序可以使用 NDIS_STATUS_LINK_STATE 状态指示来指示未知的媒体连接状态。 MediaConnectStateUnknown 值在 NDIS_LINK_STATE 结构的 MediaConnectState 成员中设置。 有关详细信息,请参阅 NDIS_STATUS_LINK_STATE 文档。

  4. NDIS 向 PCI Express (PCIe 发送) 总线 IRP_MN_WAIT_WAKE IRP 以等待 WOL 事件。

  5. NDIS 向 PCIe 总线发送 IRP_MN_SET_POWER IRP,以将总线设置为 D3 状态。

下图演示了在 WOL 事件后为恢复网络适配器的全电而发生的事件序列。

说明在 WOL 事件后为网络适配器恢复全电的事件序列的示意图。

当网络适配器唤醒计算机时,将发生以下顺序:

  1. 网络适配器通过在 PCIe 总线上断言 WAKE# 或 PCI 总线上的 PME# 来唤醒系统。

  2. 总线完成挂起 IRP_MN_WAIT_WAKE IRP。 IRP 正在等待关闭电源序列中最后一个步骤的完成。

  3. NDIS 使用 IRP_MN_SET_POWER IRP 将总线设置为全功率 (D0 )

  4. NDIS 通过 OID 设置请求 (D0) 通知微型端口驱动程序,OID_PNP_SET_POWER。

  5. 网络适配器使用 NDIS_STATUS_LINK_STATE 状态指示通知 NDIS 媒体连接事件。 MediaConnectStateConnected 值在 NDIS_LINK_STATE 结构的 MediaConnectState 成员中设置。

从 NDIS 6.30 开始,如果微型端口驱动程序支持 NDIS_STATUS_PM_WAKE_REASON 状态指示,则必须在网络适配器唤醒系统时发出此状态通知。 驱动程序在处理 OID_PNP_SET_POWER 的 OID 集请求时发出此状态通知,以便转换为全功率 (D0) 状态。

有关详细信息,请参阅 NDIS 唤醒原因状态指示