Поделиться через


Низкий уровень энергии при отключении медиа.

Функция снижения энергопотребления при отключении носителя (D3 на отключении) снижает потребление энергии, переводя сетевой адаптер в состояние пониженного энергопотребления (D3), когда носитель отключен. При повторном подключении носителя сетевой адаптер возвращается в состояние полной мощности (D0).

NDIS использует функцию D3 при отключении подключения в следующих условиях:

  • Оборудование сетевого адаптера должно иметь возможность создавать событие пробуждения на подключении к мультимедиа.

  • Минипорт-драйвер должен указать возможность события пробуждения сетевого адаптера в поле MinLinkChangeWakeUp структуры NDIS_PM_CAPABILITIES.

  • Значение MinLinkChangeWakeUp должно соответствовать значению элемента DeviceWake структуры DEVICE_CAPABILITIES, сообщаемой IRP_MN_QUERY_CAPABILITIES IRP.

  • Драйвер минипорта должен зарегистрироваться в качестве драйвера NDIS 6.20 или более поздней версии.

  • Сетевой адаптер должен быть адаптером ETHERNET PCI.

  • Функция события пробуждения должна быть включена с помощью ключевого слова *DeviceSleepOnDisconnect стандартного INF-файла.

  • Набор микросхем компьютера должен иметь возможность правильно распространять событие пробуждения, когда компьютер полностью включен. NDIS проверяет это путем запроса свойства DEVPKEY_PciDevice_S0WakeupSupported PCI.

Обратите внимание, что D3 при отключении доступно только в то время как компьютер полностью подключен к рабочему состоянию (S0). Эта функция отменяется, когда компьютер входит в состояние спящего режима, чтобы предотвратить пробуждение компьютера при внешнем цикле состояния связи; т. е. при отключении и включении переключателя. Дополнительные сведения о настройке состояния низкой мощности при входе компьютера в состояние спящего режима см. в разделе Низкая мощность для пробуждения по локальной сети.

Минипорт-драйвер сообщает D3 о возможностях отключения во время инициализации. Дополнительные сведения о возможностях отключения D3 см. в разделе Reporting Power Management Capabilities.

Ключевое слово INF-файла *DeviceSleepOnDisconnect стандартного INF-файла указывает, включена или отключена поддержка D3 устройством при отключении. Дополнительные сведения об этом ключевом слове INF см. в стандартных ключевых слов INF для управления питанием.

Во время инициализации мини-драйвер, поддерживающий D3 при отключении, должен сообщать о самом низком уровне питания, на котором он может уведомлять операционную систему о событии подключения к сети. Драйвер минипорта сообщает уровень энергопотребления в члене MinLinkChangeWakeUp структуры NDIS_PM_CAPABILITIES. Например, драйвер минипорта может сообщать NdisDeviceStateD3.

На следующем рисунке показана последовательность событий, для установки сетевого адаптера в состояние низкой мощности после события отключения носителя.

схема, иллюстрирующая последовательность событий, для установки сетевого адаптера в состояние низкой мощности после события отключения мультимедиа.

Когда адаптер обнаруживает отключение носителя, происходит следующая последовательность:

  1. Оборудование сетевого адаптера обнаруживает событие отключения носителя и передает сведения минипорт драйверу.

  2. Минипорт-драйвер уведомляет NDIS о событии отключения мультимедиа с помощью указания состояния NDIS_STATUS_LINK_STATE. Элемент StatusBuffer структуры NDIS_STATUS_INDICATION содержит структуру NDIS_LINK_STATE. Значение MediaConnectStateDisconnected устанавливается в члене MediaConnectState структуры NDIS_LINK_STATE.

  3. NDIS использует OID_PM_PARAMETERS для отключения пробуждения по локальной сети и включения пробуждения при подключении к мультимедиа (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED задан в элементе WakeUpFlags).

  4. NDIS использует OID_PNP_SET_POWER OID для уведомления драйвера минипорта о новом состоянии питания (D3).

  5. NDIS отправляет IRP IRP_MN_WAIT_WAKE на шину PCIe, чтобы ожидать событие повторного подключения.

  6. NDIS задает шину PCIe в состояние D3 с IRP_MN_SET_POWER IRP.

На следующем рисунке показана последовательность событий для восстановления полной мощности сетевого адаптера после события подключения мультимедиа.

диаграмма, иллюстрирующая последовательность событий для восстановления полной мощности сетевого адаптера после события подключения мультимедиа.

При повторном подключении носителя происходит следующая последовательность:

  1. Сетевой адаптер пробуждает систему, задействуя WAKE# на шине PCIe или PME# на шине PCI.

  2. Автобус завершает выполнение ожидающего IRP_MN_WAIT_WAKE IRP. IRP ожидает завершения последнего шага в последовательности отключения.

  3. NDIS устанавливает шину на полную мощность (D0) с IRP_MN_SET_POWER IRP.

  4. NDIS уведомляет минипорт-драйвер о том, что сетевой адаптер находится в состоянии полного питания (D0) с помощью запроса OID OID_PNP_SET_POWER.

  5. Сетевой адаптер уведомляет NDIS о событии подключения мультимедиа с указанием состояния NDIS_STATUS_LINK_STATE. Значение MediaConnectStateConnected задано в элементе MediaConnectState структуры NDIS_LINK_STATE.

Начиная с NDIS 6.30, если драйвер минипорта поддерживает NDIS_STATUS_PM_WAKE_REASON индикаторы состояния, он должен выдавать это уведомление о состоянии, если сетевой адаптер проснет систему. Драйвер выдает это уведомление о состоянии во время обработки запроса на установку OID OID_PNP_SET_POWER для перехода в состояние полной мощности (D0).

Дополнительные сведения см. в разделе индикаторы состояния причины пробуждения NDIS.

Примечание Если драйвер минипорта выдает указание состояния NDIS_STATUS_PM_WAKE_REASON, это необходимо сделать, прежде чем он выдает указание состояния NDIS_STATUS_LINK_STATE.