Возможности индикации статуса причин пробуждения
Начиная с NDIS 6.30, драйвер минипорта должен сообщить о том, может ли он выдавать индикатор состояния причины пробуждения NDIS (NDIS_STATUS_PM_WAKE_REASON) для отчета о событиях пробуждения, вызванных одним из следующих:
Сетевой адаптер получил пакет, соответствующий шаблону пробуждения по локальной сети (WOL). Это включает в себя получение пакета, соответствующего фильтру получения, указанному через запрос установки идентификатора объекта (OID) OID_GEN_CURRENT_PACKET_FILTER.
Примечание Для этого типа состояния причины пробуждения сетевой адаптер должен иметь возможность сохранить полученный пакет. Драйвер должен вернуть полученный пакет в рамках указания состояния.
Сетевой адаптер обнаружил событие, характерное для сети, такое как отключение от точки доступа 802.11 (AP) или получение сообщения службы коротких сообщений (SMS) в мобильной широкополосной сети.
Сетевой адаптер обнаружил активное событие, которое не связано конкретно с шаблоном WOL или типом носителя (событие, независимое от носителя,). Например, драйвер минипорта выдает сведения о состоянии NDIS_STATUS_PM_WAKE_REASON, если он активировал сетевой адаптер для распознавания подключения или отключения носителя.
Примечание Поддержка индикаций статуса причин пробуждения NDIS является необязательной для драйверов минипорта мобильной широкополосной связи (MB).
Когда NDIS вызывает функцию драйвера MiniportInitializeEx, драйвер минипорта сообщает о своих возможностях индикатора состояния причины пробуждения, выполнив следующие действия.
Драйвер минипорта инициализирует структуру NDIS_PM_CAPABILITIES с возможностями управления питанием базового оборудования.
Чтобы включить поддержку индикаторов состояния причины пробуждения, драйвер минипорта должен задать члены структуры NDIS_PM_CAPABILITIES следующим образом:
Драйвер минипорта должен указать NDIS_PM_CAPABILITIES_REVISION_2 и NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2 для редакции и длины структуры NDIS_PM_CAPABILITIES в члене заголовка структуры .
Если сетевой адаптер может сохранить полученный пакет, вызвавший событие пробуждения системы, драйвер минипорта устанавливает флаг 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 для создания отчетов о возможностях управления питанием. Дополнительные сведения об этом методе см. в разделе Reporting Power Management Capabilities.
Дополнительные сведения о процессе инициализации адаптера см. в Инициализация минипорт-адаптера.
Для получения дополнительной информации о том, как сообщать о возможностях управления питанием, см. в разделе Отчет о возможностях управления питанием.