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


Отключение носителя с низким энергопотреблением

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

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

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

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

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

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

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

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

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

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

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

В стандартном INF-файле *DeviceSleepOnDisconnect ключевое слово указывается, включена или отключена поддержка 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 OID_PNP_SET_POWER для уведомления драйвера мини-порта о новом состоянии питания (D3).

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

  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 .