Создание отчетов о возможностях управления питанием
Минипорт-драйверы, поддерживающие NDIS 6.20 и более поздних версий NDIS, сообщают о возможностях управления питанием оборудования во время инициализации. NDIS сообщает о текущих возможностях вышележащим драйверам протокола NDIS во время операции привязки. Однако NDIS может скрыть некоторые возможности от протокольного драйвера. Например, NDIS может сообщать о различных возможностях, когда пользователь отключает некоторые или все возможности управления питанием.
Обратите внимание, что текущие возможности управления питанием, которые NDIS сообщает драйверу протокола, не обязательно совпадают с аппаратными возможностями, которые мини-драйвер сообщил NDIS.
Если драйвер минипорта NDIS 6.1 или более ранней версии привязан к драйверу протокола NDIS 6.20, NDIS преобразует возможности управления питанием в формат, поддерживаемый драйвером протокола NDIS 6.20. NDIS также преобразует возможности управления питанием, которые драйвер минипорта NDIS 6.20 сообщает в формат, поддерживаемый драйверами NDIS 6.1 и более ранними версиями.
Возможности оборудования, которые минипорт-драйвер сообщает, могут быть включены или отключены в настройках INF-файла. Дополнительные сведения о параметрах INF-файла управления питанием см. в разделе Стандартные ключевые слова INF для управления питанием.
Во время инициализации минипорта минипорт-драйвер инициализирует структуру NDIS_PM_CAPABILITIES с возможностями управления питанием базового оборудования. Драйвер минипорта задает элемент PowerManagementCapabilitiesEx структуры NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES, чтобы указать на структуру NDIS_PM_CAPABILITIES.
Структура NDIS_PM_CAPABILITIES содержит следующие сведения:
Флаги
Для NDIS 6.20 этот член зарезервирован для NDIS.
Начиная с NDIS 6.30, определены следующие флаги:
NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED
Если этот флаг задан, сетевой адаптер может сохранить полученный пакет, который вызвал у адаптера создание события пробуждения.
Дополнительные сведения об этой функции управления питанием см. в индикациях статуса причин пробуждения NDIS.
NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED
Если этот флаг задан, драйвер минипорта поддерживает выборочную приостановку NDIS для сетевых адаптеров.
Дополнительные сведения об этой возможности управления питанием см. в выборочнойприостановке NDIS.
Поддерживаемые шаблоны пакетов WoL
Содержит флаги, указывающие шаблоны пакетов пробуждения по локальной сети (WOL), поддерживаемые сетевым адаптером. Например, сетевой адаптер может создать событие пробуждения при получении растрового изображения, магического пакета WOL или сообщения идентификатора запроса EAP по локальной сети (EAPOL). Полный список шаблонов, поддерживаемых в текущей операционной системе, см. на странице справки по NDIS_PM_CAPABILITIES.
NumTotalWoLPatterns
Значение ULONG, содержащее общее количество шаблонов WOL, поддерживаемых сетевым адаптером. Это сумма "число поддерживаемых шаблонов протокола WOL" и "число поддерживаемых шаблонов растрового изображения WOL".
Например, если драйвер поддерживает 8 гибких шаблонов растровых карт, TCP SYN IPv4 (с помощью предварительного фильтра) и волшебный пакет, вы должны указать 9 в NumTotalWoLPatterns. (8 растровых карт + 1 IPv4 TCP SYN = 9)
Примечание Общее количество шаблонов WOL не включает шаблон пробуждения волшебного пакета.
Дополнительные сведения о шаблонах протокола WOL см. в NDIS_PM_WOL_PATTERN.
MaxWoLPatternSize
Содержит максимальное количество байтов, которые можно сравнить с шаблоном.
MaxWoLPatternOffset
Содержит количество байтов в пакете, который можно проверить, который начинается с начала заголовка MAC.
MaxWoLPacketSaveBuffer
Содержит количество байтов шаблона протокола WOL, которое мини-драйвер может сохранить в буфере и указать стек драйверов.
ПоддерживаемыеСетевыеЗагрузки
Содержит флаги, указывающие функции разгрузки протокола управления питанием, поддерживаемые сетевым адаптером. Минипорт драйверы используют эти флаги для сообщения о поддержке разгрузки протокола с низким энергопотреблением сетевого адаптера. Например, сетевой адаптер может поддерживать разгрузку IPv4 ARP, запрос соседей IPv6 (NS) или IEEE 802.11 надежную защищённую сеть (RSN) с 4-сторонним и 2-сторонним подтверждением. Для получения полного списка разгрузок протоколов, поддерживаемых в текущей операционной системе, см. на справочной странице NDIS_PM_CAPABILITIES.
NumArpOffloadIPv4Addresses
Содержит количество IPv4-адресов для разгрузки ARP.
NumNSOffloadIPv6Addresses
Содержит количество сетевых запросов для разгрузки (NS) IPv6, поддерживаемых сетевым адаптером.
MinMagicPacketWakeUp
Определяет минимальное состояние энергопотребления устройства, из которого сетевой адаптер может воспроизвести сигнал пробуждения при получении магического пакета . (магического пакета — это пакет, содержащий 16 смежных копий адреса Ethernet принимающего сетевого адаптера.)
MinPatternWakeUp
Указывает наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событии пробуждения при получении сетевого кадра, содержащего шаблон, указанный драйвером протокола.
MinLinkChangeWakeUp
Указывает наименьшее состояние питания устройства, из которого сетевой адаптер может сигнализировать о событии пробуждения при изменении связи (подключение или отключение мультимедиа).
SupportedWakeUpEvents
Указывает события пробуждения, независимые от мультимедиа, поддерживаемые сетевым адаптером. Эти события не связаны с типами медиаконтента. Например, эти события пробуждения включают события изменения подключения.
MediaSpecificWakeUpEvents
Указывает события пробуждения, специфичные для носителя, которые поддерживаются сетевым адаптером. Например, эти события включают следующее:
Сетевой адаптер 802.11 отсоединяется от точки доступа (AP).
Сетевой адаптер мобильной широкополосной связи (МБ) обнаруживает изменение состояния регистрации на службу MB.
Если минипорт-драйвер поддерживает разгрузку протоколов на сетевой адаптер в состоянии низкого энергопотребления, он должен поддерживать то же состояние низкого энергопотребления для разгрузки протокола, которое поддерживается для события WOL шаблона. Это значение указано в MinPatternWakeUp или MinMagicPacketWakeUp.
NDIS инициализирует структуру NDIS_PM_CAPABILITIES с текущими возможностями энергосбережения базового сетевого адаптера и передает ее вышестоящим драйверам протокола во время операции привязки. NDIS задает элемент PowerManagementCapabilitiesEx структуры NDIS_BIND_PARAMETERS так, чтобы он указывал на структуру NDIS_PM_CAPABILITIES.
Вышележащие драйверы могут использовать запрос OID_PM_HARDWARE_CAPABILITIES OID, чтобы получить информацию о возможностях управления питанием сетевого адаптера. NDIS обрабатывает этот запрос OID от имени минипорт-драйвера. Минипорт-драйверы NDIS не обязаны поддерживать запрос OID_PM_HARDWARE_CAPABILITIES OID.
Верхнеуровневые драйверы могут использовать OID_PM_CURRENT_CAPABILITIES OID для запроса текущих возможностей управления питанием сетевого адаптера. NDIS обрабатывает этот запрос OID от имени минипорта. Драйверы мини-порта NDIS не требуются для поддержки запроса OID_PM_CURRENT_CAPABILITIES OID.