Возможности создания отчетов о состоянии причины пробуждения
Начиная с NDIS 6.30, драйвер минипорта должен сообщить, может ли он выдать индикатор состояния причины пробуждения NDIS (NDIS_STATUS_PM_WAKE_REASON), чтобы сообщить о событиях пробуждения, вызванных одним из следующих:
Сетевой адаптер получил пакет, соответствующий шаблону пробуждения по локальной сети (WOL). Сюда входит получение пакета, соответствующего фильтру получения, указанному с помощью запроса на набор идентификатора объекта (OID) OID_GEN_CURRENT_PACKET_FILTER.
Примечание Для этого типа указания состояния причины пробуждения сетевой адаптер должен иметь возможность сохранить полученный пакет. Драйвер должен вернуть полученный пакет в индикаторе состояния.
Сетевой адаптер обнаружил событие, зависящего от носителя, например отмену связи с точкой доступа (AP) 802.11 или получение sms-сообщения мобильной широкополосной связи (МБ).
Сетевой адаптер обнаружил другое включенное событие, не относящееся к шаблону WOL или типу носителя (независимое от носителя событие). Например, драйвер минипорта выдает NDIS_STATUS_PM_WAKE_REASON состояние, если он включил сетевой адаптер для обнаружения подключения к мультимедиа или отключения.
Примечание Поддержка индикаторов состояния причины пробуждения NDIS является необязательной для драйверов минипорта мобильной широкополосной связи (МБ).
Когда NDIS вызывает функцию MiniportInitializeEx драйвера, драйвер минипорта сообщает о возможностях индикации состояния причины пробуждения, выполнив следующие действия:
Драйвер мини-порта инициализирует структуру NDIS_PM_CAPABILITIES с помощью возможностей управления питанием базового оборудования.
Чтобы включить поддержку индикаторов состояния причины пробуждения, драйвер мини-порта должен задать элементы структуры NDIS_PM_CAPABILITIES следующим образом:
Драйвер мини-порта должен указать NDIS_PM_CAPABILITIES_REVISION_2 и NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 для редакции и длины структуры NDIS_PM_CAPABILITIES в элементе Header структуры.
Если сетевой адаптер может хранить полученный пакет, который вызвал событие пробуждения системы, драйвер мини-порта устанавливает флаг NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED в элементе Flags этой структуры.
Если этот флаг установлен, сетевой адаптер должен иметь возможность сохранить полученный пакет, который привел к созданию события пробуждения адаптера. Кроме того, драйвер мини-порта должен иметь возможность выполнять следующие действия с этим пакетом после перехода сетевого адаптера в состояние полной мощности:
Драйвер мини-порта должен иметь возможность указать пакет, вызвав NdisMIndicateReceiveNetBufferLists.
Драйвер мини-порта должен иметь возможность выдать NDIS_STATUS_PM_WAKE_REASON указание состояния и передать пакет с указанием.
Драйвер мини-порта устанавливает для члена MaxWoLPacketSaveBuffer максимальный размер (в единицах байтов) буфера, содержащего пакет WOL, вызвавшего событие пробуждения системы.
Значение элемента MaxWoLPacketSaveBuffer должно быть меньше или равно размеру (в байтах) максимального блока передачи (MTU) и заголовка управления доступом к мультимедиа (MAC) для сетевого носителя. Драйвер сообщает размер MTU с помощью запросов OID OID_GEN_MAXIMUM_FRAME_SIZE.
Драйвер мини-порта задает для SupportedWakeUpEvents независимые от мультимедиа события пробуждения, поддерживаемые сетевым адаптером, например создание события пробуждения при подключении адаптера к сетевому интерфейсу.
Драйвер мини-порта задает для MediaSpecificWakeUpEvents события пробуждения, которые поддерживает сетевой адаптер. Эти события включают создание события пробуждения, когда адаптер 802.11 развязан с AP.
Драйвер мини-порта инициализирует структуру NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES и задает для элементаPowerManagementCapabilitiesEx адрес инициализированной структуры NDIS_PM_CAPABILITIES .
Драйвер мини-порта вызывает функцию NdisMSetMiniportAttributes для регистрации возможностей управления питанием. Когда драйвер мини-порта вызывает эту функцию, он задает для параметра MiniportAttributes адрес структуры NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES .
Метод, используемый драйверами минипорта для сообщения о возможностях указания состояния причины пробуждения, основан на методе NDIS 6.20 для создания отчетов о возможностях управления питанием. Дополнительные сведения об этом методе см. в разделе Возможности управления питанием отчетов.
Дополнительные сведения о процессе инициализации адаптера см. в разделе Инициализация адаптера miniport.
Дополнительные сведения о том, как сообщать о возможностях управления питанием, см. в разделе Возможности управления питанием отчетов.