Обязательные и необязательные OID для управления питанием
Для минипорт-драйвера поддержка управления питанием включает в себя поддержку идентификаторов объектов управления питанием (OID). Подробные сведения о том, как минипорт-драйверы обрабатывают запросы и наборы для OID, см. в разделе "Получение и настройка сведений о драйверахMiniport" и поддержке NDIS для WMI.
Существует два уровня поддержки управления питанием для мини-портов:
Минипорт-драйвер может поддерживать сетевой адаптер, выполняющий переход между состояниями питания. Эта поддержка является минимальным уровнем поддержки управления питанием. Описание состояний питания устройства для сетевых адаптеров см. в разделе "Состояния питания устройств" для сетевых адаптеров.
Мини-драйвер также может поддерживать одно или несколько событий пробуждения сети.
Минипорт драйверы сообщают о возможностях управления питанием во время инициализации. Дополнительные сведения о возможностях управления питанием, сообщаемые во время инициализации, см. в NDIS_MINIPORT_ADAPTER_ATTRIBUTES и связанных структурах атрибутов.
Минипорт-драйвер должен поддерживать следующие идентификаторы OID напрямую или в атрибутах сетевого адаптера для перехода между состояниями питания:
-
Промежуточные драйверы должны отвечать на этот запрос OID. NDIS отвечает на OID_PNP_CAPABILITIES запросы от имени физических сетевых адаптеров. Дополнительные сведения об ответе на этот OID в промежуточном драйвере см. в разделе "Обработка событий PnP и событий управления питанием" в промежуточном драйвере.
-
Этот OID указывает состояние питания устройства, в которое сетевой адаптер должен подготовиться к переходу. Минипорт-драйвер всегда должен возвращать NDIS_STATUS_SUCCESS в ответ на запрос OID_PNP_QUERY_POWER. Возвращая NDIS_STATUS_SUCCESS в ответ на этот запрос OID, драйвер минипорта гарантирует, что он передаст сетевой адаптер в указанное состояние питания устройства при получении последующего запроса OID_PNP_SET_POWER. Минипорт-драйвер, в данном случае, не должен ничего делать, чтобы поставить под угрозу переход.
-
Этот OID указывает, что сетевой адаптер должен перейти к указанному состоянию питания устройства. Минипорт-драйвер должен задать сетевой адаптер указанному состоянию, прежде чем драйвер возвращает NDIS_STATUS_SUCCESS. Минипорт-драйвер всегда должен возвращать NDIS_STATUS_SUCCESS в ответ на этот OID. Если OID_PNP_SET_POWER устанавливает сетевой адаптер для рабочего состояния питания, а драйвер мини-порта завершается ошибкой этого OID, NDIS предполагает, что устройство находится в невосстановленном состоянии.
Чтобы поддерживать события пробуждения сети, мини-драйвер должен также поддерживать OID_PNP_ENABLE_WAKE_UP OID. Оба драйвера протокола и NDIS используют этот OID для включения возможностей пробуждения сетевого адаптера. Дополнительные сведения см. в разделе "Включение событий пробуждения".
Для поддержки сетевых кадров пробуждения (см . сведения о событиях пробуждения сети), мини-драйвер также должен поддерживать следующие идентификаторы OID, связанные с событиями пробуждения:
-
Драйвер протокола использует этот OID для добавления шаблона пробуждения в список, который поддерживает сетевой адаптер или мини-драйвер.
OID_PNP_REMOVE_WAKE_UP_PATTERN
Драйвер протокола использует этот OID для удаления шаблона пробуждения, указанного ранее с OID_PNP_ADD_WAKE_UP_PATTERN.
Мини-порты NDIS, поддерживающие события пробуждения сети, при необходимости могут поддерживать следующие статистические OID, связанные с событиями пробуждения:
-
Драйверы протокола запрашивают этот OID, чтобы определить количество ложных пробуждений, сигнализированных сетевым адаптером драйвера минипорта.
-
Драйверы протокола запрашивают этот идентификатор, чтобы определить количество допустимых пробуждений, сигнализированных сетевым адаптером драйвера минипорта.