Низкий уровень энергии при отключении медиа.
Функция снижения энергопотребления при отключении носителя (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.
На следующем рисунке показана последовательность событий, для установки сетевого адаптера в состояние низкой мощности после события отключения носителя.
Когда адаптер обнаруживает отключение носителя, происходит следующая последовательность:
Оборудование сетевого адаптера обнаруживает событие отключения носителя и передает сведения минипорт драйверу.
Минипорт-драйвер уведомляет NDIS о событии отключения мультимедиа с помощью указания состояния NDIS_STATUS_LINK_STATE. Элемент StatusBuffer структуры NDIS_STATUS_INDICATION содержит структуру NDIS_LINK_STATE. Значение MediaConnectStateDisconnected устанавливается в члене MediaConnectState структуры NDIS_LINK_STATE.
NDIS использует OID_PM_PARAMETERS для отключения пробуждения по локальной сети и включения пробуждения при подключении к мультимедиа (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED задан в элементе WakeUpFlags).
NDIS использует OID_PNP_SET_POWER OID для уведомления драйвера минипорта о новом состоянии питания (D3).
NDIS отправляет IRP IRP_MN_WAIT_WAKE на шину PCIe, чтобы ожидать событие повторного подключения.
NDIS задает шину PCIe в состояние D3 с IRP_MN_SET_POWER IRP.
На следующем рисунке показана последовательность событий для восстановления полной мощности сетевого адаптера после события подключения мультимедиа.
При повторном подключении носителя происходит следующая последовательность:
Сетевой адаптер пробуждает систему, задействуя WAKE# на шине PCIe или PME# на шине PCI.
Автобус завершает выполнение ожидающего IRP_MN_WAIT_WAKE IRP. IRP ожидает завершения последнего шага в последовательности отключения.
NDIS устанавливает шину на полную мощность (D0) с IRP_MN_SET_POWER IRP.
NDIS уведомляет минипорт-драйвер о том, что сетевой адаптер находится в состоянии полного питания (D0) с помощью запроса OID OID_PNP_SET_POWER.
Сетевой адаптер уведомляет 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.