управление питанием Wi-Fi для современных резервных платформ
На аппаратной платформе Windows, реализующей современную модель резервного питания, устройство Wi-Fi поддерживает подключение к сети, пока платформа находится в состоянии ожидания. Правильное управление питанием Wi-Fi устройства ( как во время современного режима ожидания, так и при включении дисплея ) имеет важное значение для обеспечения длительного времени работы батареи.
Wi-Fi — это повсеместный беспроводной технологии среднего радиуса действия, которая обеспечивает высокую пропускную способность и низкую задержку связи между компьютерными системами, устройствами и Интернетом.
Каждая аппаратная платформа Windows, поддерживающая современный режим ожидания, должна быть оснащена устройством Wi-Fi или мобильным широкополосным устройством (MBB). Так как интеграция Wi-Fi является более распространенной и широко распространенной, ожидается, что Wi-Fi устройство будет включаться и подключаться почти все время.
Общие сведения
Устройство Wi-Fi на современной резервной платформе должно поддерживать несколько ключевых функций управления питанием для снижения энергопотребления как устройством, так и платформой в целом.
Первая функция, называемая режимом экономии энергии, позволяет устройству Wi-Fi уменьшить потребление энергии, оставаясь подключенным к точке доступа. Режим экономии энергии снижает энергопотребление за счет увеличения задержки передачи данных. Ожидается, что режим экономии электроэнергии всегда будет включен, если платформа работает от батареи, за исключением случаев, когда требуются подключения с низкой задержкой (например, для вызовов VOIP). Дополнительные сведения см. в разделе Режим автоматического экономии энергии Wi-Fi.
Второй ключевой функцией управления питанием является пробуждение с сопоставлением шаблонов. Эта функция позволяет Windows вооружать устройство Wi-Fi для пробуждения системы на микросхеме (SoC), когда устройство Wi-Fi обнаруживает сетевой пакет, соответствующий сохраненной схеме. Пробуждение с сопоставлением шаблонов работает только во время современного режима ожидания. Хотя включен пробуждение с учетом соответствия шаблону, устройство Wi-Fi работает в режиме очень низкого энергопотребления и прослушивает входящие данные, предназначенные для определенных системных служб или зарегистрированных приложений (например, push-уведомлений и электронной почты). В то же время другие компоненты аппаратной платформы находятся в состоянии низкого энергопотребления. Дополнительные сведения см. в разделе События сетевого Wake-Up.
Кроме того, Wi-Fi устройства на современной резервной платформе должны поддерживать следующие функции управления питанием во время выполнения:
- Состояние включения и выключения радиосвязи
- Разгрузка списка сети (NLO)
- Разгрузка ARP/NS
- Объединение пакетов D0
- Динамическое управление DTIM
- Набор триггеров подключения Wi-Fi, в том числе пробуждение при отключении от AP.
В этой статье содержатся рекомендации по проектированию Wi-Fi устройств на современной резервной платформе, которые подключены к SoC через шину SDIO или PCI Express (PCIe) или физически интегрированы в сам SoC. Корпорация Майкрософт не тестирует Wi-Fi устройств, которые подключаются через универсальную последовательную шину (USB) на современных резервных платформах, и не публикует никаких рекомендаций по проектированию для таких устройств.
Устройство Wi-Fi управляется драйвером Wi-Fi мини-порта, который предоставляет поставщик устройств Wi-Fi. Windows отправляет устройствам запросы на управление питанием (NDIS OID) для настройки режима экономии энергии и пробуждения с соответствием шаблону. Windows включает и отключает пробуждение с сопоставлением шаблонов, когда платформа входит в современный резервный режим и выходит из нее. Драйвер Wi-Fi мини-порта обрабатывает эти запросы, настраивая устройство Wi-Fi через шину SDIO, PCIe или собственную шину SoC.
Устройство Wi-Fi на современной резервной платформе почти всегда включено и, как ожидается, будет очень энергоэффективным. Если данные не передаются по каналу Wi-Fi и включен режим экономии энергии, устройство Wi-Fi должно потреблять менее 10 милливатт в среднем. Если пользователь выключил переключатель, включив режим "в самолете" или явно выключив Wi-Fi в приложении "Параметры Windows" , устройство Wi-Fi в среднем должно потреблять менее 1 милливатта.
Режимы управления питанием устройств
Устройство Wi-Fi должно поддерживать несколько режимов управления питанием. Каждый режим представляет собой сочетание действий устройства, сетевого подключения и включения пробуждения с соответствием шаблону.
- Активен
-
Устройство Wi-Fi подключено к сети и активно передает данные.
Механизм перехода: Wi-Fi аппаратного обеспечения устройства автономно переходит из режима бездействия с подключением в активный режим.
- Подключенный режим бездействия
-
Устройство Wi-Fi подключено к сети, но не передает данные активно.
Механизм перехода:
- Wi-Fi аппаратное обеспечение устройства автономно переходит из режима подключенного режима бездействия в активный режим.
- Энергопотребление устройства в активном режиме будет являться фактором беспроводной технологии (то есть 802.11a/b/g/n), расстоянием до точки доступа, количеством передаваемых данных и т. д.
- Подключенный спящий режим
-
Устройство Wi-Fi подключено к точке доступа, но остальная часть платформы находится в очень низком энергопотреблении. Пробуждение с сопоставлением шаблонов включено, чтобы устройство Wi-Fi пробуждает SoC для определенного набора входящих сетевых пакетов.
Механизм перехода:
- Прежде чем устройство Wi-Fi покинет D0, NDIS отправит запрос OID_PM_ADD_WOL_PATTERN , чтобы указать драйверу Wi-Fi мини-порта добавить шаблоны пробуждения по локальной сети.
- Чтобы указать драйверу Wi-Fi минипорта включить пробуждение по шаблону, NDIS отправит запрос OID_PM_PARAMETERS .
- NDIS отправит запрос OID_PNP_SET_POWER с NDIS_DEVICE_POWER_STATE значением NdisDeviceStateD2 (для SDIO) или NdisDeviceStateD3 (для PCIe).
- Отключенный спящий режим
-
Устройство Wi-Fi работает, но не подключено к точке доступа, так как предпочтительная точка доступа не находится в пределах диапазона. Остальная часть платформы находится в состоянии очень низкого энергопотребления. Включен пробуждение с сопоставлением шаблонов, а список разгрузки сети переключится на устройство Wi-Fi. Устройство Wi-Fi использует список разгрузки сети для периодического сканирования предпочтительных сетей для подключения.
Механизм перехода:
- Устройство Wi-Fi использует список разгрузки сети для периодического сканирования предпочтительных сетей для подключения.
- Если во время этих периодических проверок обнаруживается соответствующая сеть, устройство Wi-Fi будет разбудить SoC.
- Радио отключено
-
На Wi-Fi устройстве по-прежнему применяется питание, но радио (радиочастотные компоненты) было выключено.
Механизм перехода:
- В D0 NDIS отправляет запрос OID_DOT11_NIC_POWER_STATE со значением FALSE, указывая, что радиосвязь должна быть выключена.
- Выключенное устройство
-
Устройство Wi-Fi полностью выключено.
Механизм перехода:
- NDIS отправит запрос OID_PNP_SET_POWER со значением NDIS_DEVICE_POWER_STATE NdisDeviceStateD3.
- Если устройство Wi-Fi подключено к SDIO или PCIe, встроенное ПО ACPI системы отключит питание или сбросит Wi-Fi устройство с помощью линии GPIO от SoC к устройству Wi-Fi.
- Если устройство Wi-Fi интегрировано в SoC, встроенное ПО системы отвечает за выключение питания или сброс Wi-Fi устройства с помощью проприетарного механизма.
Среднее энергопотребление и задержка выхода
В следующей таблице показаны ожидаемое энергопотребление и задержка при выходе в активное состояние для каждого режима управления питанием. Для этих цифр предположим, что устройство Wi-Fi постоянно подключено к одной точке доступа, которая имеет WPA2-Personal безопасности, за исключением режима отключения и выключения питания.
Режим управления питанием устройства | Состояние питания устройства | Среднее энергопотребление | Задержка выхода из активной |
---|---|---|---|
Активный режим | D0 | <= 750 милливатт | Н/Д |
Режим бездействия с подключением | D0 | <= 25 милливатт | <= 100 миллисекунда |
Подключенный спящий режим | D2 для SDIO; D3 для PCIe | <= 10 милливатт | <= 300 миллисекунда |
Отключенный спящий режим | D2 для SDIO; D3 для PCIe | <= 10 милливатт | <= 300 миллисекунда |
Режим выключения радиосвязи | D0 или D2 | <= 1 милливатт | <= 2 секунды |
Режим выключения (пробуждение отключено) | D3 | <= 1 милливатт | <= 5 секунд |
Для устройств, подключенных к SDIO, D2 — это самое глубокое состояние питания устройства с поддержкой пробуждения для современного режима ожидания. Для устройств, подключенных к PCIe, D3 (в частности, подсостояние D3hot) является самым глубоким состоянием питания устройства с пробуждением для современного режима ожидания.
Windows 8, Windows 8.1 и Windows 10 поддерживают современный режим ожидания на устройствах вне SoC Wi-Fi, которые подключаются через шину SDIO. Windows 8.1 также поддерживает современный режим ожидания на устройствах вне SoC Wi-Fi, которые подключаются через шину PCIe.
Требования при Wi-Fi цепи общих папок устройства
В некоторых Wi-Fi конструкциях устройств Wi-Fi использует аналоговую и радиочастотную схему с bluetooth и дополнительными устройствами FM-радиосвязи. В этих Wi-Fi устройствах не должно быть зависимости состояния питания между Wi-Fi устройством и другими интегрированными устройствами связи. Устройство Wi-Fi должно иметь внутреннюю схему питания, чтобы обеспечить среднее энергопотребление менее 1 милливатта в режиме радиосвязи.
Механизмы управления питанием программного обеспечения
Управление питанием Wi-Fi устройства в основном основано на командах NDIS, которые драйвер мини-порта Wi-Fi получает от сетевой подсистемы Windows. Драйвер Wi-Fi минипорта отвечает за преобразование этих команд NDIS (называемых запросами OID) в сообщения конкретного устройства для отправки на Wi-Fi устройство через шину ввода-вывода.
Разработка драйвера NDIS — это сложная задача, область которой выходит за рамки Wi-Fi управления питанием устройств. Сведения о том, как разобраться в этом разделе, см. в статье Native 802.11 Wireless LAN (Локальная сеть 802.11 ). Если вы являетесь разработчиком Wi-Fi, вам следует ознакомиться с набором тестов сетевых устройств в комплекте сертификации оборудования Windows и использовать эти тесты в качестве фактического эталона для обеспечения правильной работы Wi-Fi устройства и его драйвера Wi-Fi мини-порта.
Ожидается, что устройство Wi-Fi всегда будет включено и подключено к сети, за исключением случаев, когда современная резервная платформа находится в состоянии питания системы S5 (выключение). Таким образом, правильное управление питанием Wi-Fi устройства имеет решающее значение для работы батареи системы как в режиме ожидания, так и при включении дисплея. Режим управления питанием Wi-Fi устройства может часто меняться, так как устройство отвечает на запросы программного обеспечения для сканирования новых сетей или само устройство обнаруживает, что точка доступа отключена. Механизмы программного управления питанием и итоговое энергопотребление, описанные в следующем обсуждении, предполагают, что Wi-Fi устройство подключено к одной точке доступа с приемлемой мощностью сигнала.
Драйвер Wi-Fi мини-порта должен включить следующие ключевые функции управления питанием, чтобы гарантировать, что Wi-Fi устройство является экономичным как во время современного режима ожидания, так и при включении дисплея:
В следующих абзацах подробно рассматриваются требования к этим двум функциям.
Помимо режима энергопотребления и пробуждения с соответствием шаблону, устройство Wi-Fi и драйвер Wi-Fi мини-порта должны поддерживать ряд других функций. Дополнительные сведения см. в разделе Другие требования к управлению питанием Wi-Fi.
Режим энергопотребления
В спецификации 802.11 описывается режим автоматического энергопотребления Wi-Fi (опрос с экономией энергии) для Wi-Fi сетей. В этом режиме Wi-Fi радио пропускает опрос на наличие подмножества широковещательных маяков, тем самым уменьшая среднее энергопотребление устройства. Windows требует, чтобы Wi-Fi устройство включило режим энергопотребления, когда устройство находится в активном режиме (D0), подключенном бездействии (D0) или подключенном режиме сна (D2 для SDIO; Режим управления питанием D3 для PCIe. Режим энергопотребления не имеет смысла, если Wi-Fi устройство находится в режиме управления питанием переключателя.
Драйвер Wi-Fi минипорта должен поддерживать и включать режим энергопотребления, если Wi-Fi устройство находится в следующих режимах управления питанием:
- Активный (D0)
- Бездействующий подключение (D0)
- Подключенный спящий режим (D2/D3)
Драйвер Wi-Fi минипорта должен сообщить Windows о том, что он поддерживает автоматическое согласование режима энергопотребления, установив для элемента bAutoPowerSaveMode структуры DOT11_EXTSTA_ATTRIBUTES значение TRUE. В ответ на этот параметр Windows отправит OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED запрос драйверу мини-порта Wi-Fi. Этот запрос предписывает драйверу автоматически включить режим энергопотребления. Драйвер Wi-Fi мини-порта должен использовать возможности точки удаленного доступа и самого Wi-Fi устройства, чтобы определить правильный уровень энергосбережения для включения.
Если включен режим автоматического энергопотребления, Windows может отправить запрос OID_DOT11_POWER_MGMT_REQUEST драйверу мини-порта Wi-Fi. В этом сообщении указывается один из четырех определенных уровней энергосбережения. Уровень энергосбережения в этом сообщении должен рассматриваться как подсказка драйверу Wi-Fi минипорта для ожидания энергосбережения операционной системы или пользователя на текущий момент времени. Значение, возвращаемое запросом OID_DOT11_POWER_MGMT_REQUEST, можно использовать, если драйвер не может обнаружить, что точка удаленного доступа поддерживает режим энергопотребления.
Пробуждение по шаблону
Windows требует, чтобы все сетевые устройства на современной резервной платформе поддерживали пробуждение с соответствием шаблону. Эта функция позволяет сетевому устройству отслеживать сетевое подключение на наличие интересных пакетов (сравнивая входящие пакеты с шаблонами, хранящимися на устройстве), когда soC или набор микросхем выключен, и пробуждение процессора main на SoC или наборе микросхем при обнаружении соответствующего шаблона. Эта возможность разгрузки Wi-Fi обработки с процессора main является ключевым фактором для обеспечения низкой мощности в современном режиме ожидания. Прежде чем платформа перейдет в современный режим ожидания и Wi-Fi устройство переходит в режим "подключенный спящий режим" (D2 для SDIO; D3 для режима PCIe Windows отправляет драйверу Wi-Fi минипорта коллекцию интересных шаблонов, для Wi-Fi устройство должно watch.
Пробуждение по шаблону — это ключевая функция включения для современного режима ожидания. Пробуждение по шаблону включено, если Wi-Fi устройство находится в режиме "подключенный спящий режим" (D2/D3). Прежде чем Wi-Fi устройство перейдет в этот режим, Windows предписывает устройству игнорировать все сетевые пакеты, кроме тех, которые соответствуют указанному набору шаблонов. Windows создает соответствующие шаблоны на основе служб и приложений (например, push-уведомлений и электронной почты), которые используются в настоящее время. Шаблон разгрузки, соответствующий Wi-Fi устройству, позволяет отключить остальную часть аппаратной платформы или работать в режиме с низким энергопотреблением. Между тем, Wi-Fi устройство остается включенным, ожидая важный входящий сетевой трафик.
Для поддержки пробуждения с соответствием шаблону драйвер Wi-Fi минипорта должен сначала объявить, что он поддерживает режим подключенного режима сна (D2/D3) и что он способен пробуждение системы из состояния питания D2/D3. Чтобы объявить поддержку пробуждения в соответствии с шаблонами, драйвер минипорта Wi-Fi должен выполнить следующие действия.
Задайте бит NDIS_PM_WOL_BITMAP_PATTERN в элементе SupportedWoLPacketPatterns структуры NDIS_PM_CAPABILITIES , чтобы указать, что устройство Wi-Fi поддерживает пробуждение SoC на основе обнаружения растровых рисунков.
Задайте для элемента MinPatternWakeUp структуры NDIS_PM_CAPABILITIES значение NdisDeviceStateD2 (для SDIO) или NdisDeviceStateD3 (для PCIe), чтобы указать, что Wi-Fi устройство может разбудить SoC, когда устройство находится в состоянии питания D2/D3 и обнаруживается соответствующий шаблон.
Задайте для элемента NumTotalWoLPatterns структуры NDIS_PM_CAPABILITIES значение 22 десятичного (или больше). Это значение указывает, что Windows может запрограммировать Wi-Fi устройство с помощью до 22 (или более) уникальных шаблонов сопоставления для пробуждения SoC.
Задайте бит NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED в элементе Флаги структуры NDIS_PM_CAPABILITIES . Этот флаг указывает, что устройство Wi-Fi поддерживает хранение и извлечение пакета, из-за чего устройство Wi-Fi разбудил SoC.
Когда Windows впервые обнаруживает, что системной службе или размещенное приложение требуется поддержка пробуждения по шаблону, она отправляет запрос OID_PM_ADD_WOL_PATTERN драйверу мини-порта Wi-Fi, чтобы указать шаблон для сопоставления. Этот запрос отправляется задолго до того, как устройство Wi-Fi перейдет в режим подключенного режима сна (D2/D3).
Вход в режим ожидания с подключенным подключением с включенным пробуждением в соответствии с шаблоном
Когда аппаратная платформа переходит в современный режим ожидания, Windows переведет Wi-Fi устройство в режим "подключенный спящий режим" (D2 для SDIO; D3 для режима PCIe) путем отправки запроса OID_PNP_SET_POWER , который указывает состояние питания устройства NdisDeviceStateD2 (для SDIO) или NdisDeviceStateD3 (для PCIe). В ответ на этот запрос драйвер мини-порта Wi-Fi должен выполнить следующие действия:
Прекратите отправку новых запросов ввода-вывода базовому драйверу или оборудованию шины. Если Wi-Fi устройство находится за пределами SoC и подключено через SDIO, базовым драйвером шины будет драйвер шины Windows SD, Sdbus.sys. Если Wi-Fi устройство находится за пределами SoC и подключено через PCIe, базовым драйвером шины будет драйвер шины Windows PCI, Pci.sys. Если устройство Wi-Fi интегрировано в SoC, поставщик SoC предоставит базовый драйвер шины.
Дождитесь выполнения всех запросов ввода-вывода в режиме выполнения и завершите все запросы ввода-вывода в очереди.
Запрограммировать устройство Wi-Fi для всех настроенных шаблонов пробуждения и событий пробуждения.
Переведите устройство Wi-Fi в правильное состояние с низким энергопотреблением (D2/D3) для режима "подключенный— спящий режим".
Если Wi-Fi устройство находится за пределами SoC и подключено через шину SDIO:
Настройте устройство Wi-Fi для пробуждения SoC с помощью внеполосного прерывания пробуждения GPIO. (Дополнительные сведения см. в разделе Поддерживаемые конфигурации питания оборудования.)
Маскирование прерываний Wi-Fi устройства и отмена всех связанных таймеров. Драйвер Wi-Fi miniport должен задать для свойства SDP_FUNCTION_INT_ENABLE значение FALSE, вызвав подпрограмму SdBusSubmitRequest .
Указать драйверу шины SD прекратить переадресацию Wi-Fi прерываний устройства. Драйвер Wi-Fi мини-порта должен задать для свойства SDP_SET_CARD_INTERRUPT_FORWARD значение FALSE, вызвав подпрограмму SdBusSubmitRequest .
Завершите OID_PNP_SET_POWER запрос состояния NdisDeviceStateD2.
Если устройство Wi-Fi находится за пределами SoC и подключено через шину PCIe:
Настройте Wi-Fi устройство для пробуждения системы в соответствии со стандартом PCIe (с помощью PM_PME сообщений; это подробно рассматривается в следующем разделе).
Маскирование прерываний Wi-Fi устройства. Драйвер Wi-Fi минипорта должен отключить прерывания, вызвав подпрограмму IoDisconnectInterruptEx .
Завершите запрос OID_PNP_SET_POWER состояния NdisDeviceStateD3.
Если Wi-Fi устройство находится в спящем режиме с подключением, ожидается, что устройство будет поддерживать подключение к связанной Wi-Fi сети, проверка для сопоставления шаблонов пробуждения и пробуждение SoC при изменении состояния сети. Например, устройство Wi-Fi должно иметь возможность разбудить SoC, если точка доступа внезапно развязана.
На следующем рисунке показана конфигурация программных и аппаратных компонентов для поддержки Wi-Fi устройства, которое является внешним к SoC и взаимодействует с SoC через шину SDIO.
Выход из современной резервной модели для соответствующего шаблона
Когда устройство Wi-Fi обнаруживает пакет с соответствующим шаблоном, оно должно сначала сохранить этот пакет в локальном энергонезависимом хранилище для последующего извлечения драйвером Wi-Fi miniport. Windows получит драйвер для получения сведений о пакете, чтобы соответствующая системная служба или приложение могли получать уведомления о входящем пакете.
Затем устройство Wi-Fi должно создать прерывание для пробуждения SoC.
Если устройство Wi-Fi находится за пределами SoC на порту SDIO, прерывание должно быть доставлено через прерывание GPIO по каналу и вызвать пробуждение SoC. Затем подсистема ACPI определяет, что прерывание GPIO для Wi-Fi устройства привело к пробуждению SoC, и ответит, выполнив IRP ожидания ( запрос IRP_MN_WAIT_WAKE ), который драйвер порта NDIS автоматически оставил в драйвере ACPI от имени драйвера Wi-Fi минипорта.
Если Wi-Fi устройство находится за пределами SoC в шине PCIe, а встроенное ПО ACPI предоставляет управление собственными функциями PCIe операционной системе, события пробуждения обрабатываются в соответствии со спецификацией PCIe, выполнив следующие действия.
Когда устройство Wi-Fi переходит в состояние с низким энергопотреблением, драйвер порта NDIS автоматически отправляет IRP ожидания по стеку драйвера Wi-Fi драйверу шины PCI в папке "Входящие", Pci.sys (не драйвер ACPI, Acpi.sys), который помечает IRP как ожидающий в ожидании события пробуждения в будущем.
Когда Wi-Fi устройству требуется пробуждение, оно должно создать уведомление WAKE для корня иерархии PCIe. Для этого устройство отправляет сообщение PM_PME по шине PCIe.
Уведомление о пробуждении направляется на корневой порт иерархии PCIe над Wi-Fi устройством. Корневой порт будет находиться в состоянии питания D0 и, как ожидается, создаст прерывание PME для драйвера шины PCI для почты, Pci.sys.
Драйвер шины PCI на корневом порту возвращает всю иерархию устройств под этим корневым портом в D0.
Драйвер шины PCI проверяет PME_Status бит каждого устройства в иерархии, чтобы определить, выдало ли оно уведомление WAKE. Если задан бит PMEStatus Wi-Fi устройства, драйвер шины PCI завершает все невыполненные irp для ожидания пробуждения, ожидающие этого устройства, что приводит к возврату IRP, наложенного на шаге 1, в NDIS.
Дополнительные сведения см. в разделе Низкое энергопотребление для пробуждения по локальной сети.
Если устройство Wi-Fi интегрировано в SoC, то работа устройства аналогична описанной для реализации внесокового порта SDIO. Поставщик SoC должен описать устройство в таблице DSDT встроенного ПО ACPI. Затем подсистема ACPI перечислит Wi-Fi устройство и завершит IRP ожидания пробуждения. Мы рекомендуем системным интеграторам, использующим soC, интегрированным Wi-Fi устройствам, работать в тесном контакте с поставщиком SoC по Wi-Fi интеграции устройств и разработке драйверов.
После завершения IRP для ожидания NDIS сначала отправит D0 IRP ( запрос IRP_MN_SET_POWER типа DevicePowerState) в стек водителю автобуса. Перед выполнением D0 IRP NDIS отправит драйверу Wi-Fi мини-порта запрос OID_PNP_SET_POWER с целевым состоянием NdisDeviceStateD0. В ответ драйвер мини-порта Wi-Fi должен выполнить следующие действия.
Проверьте оборудование Wi-Fi устройства, чтобы определить причину прерывания пробуждения. Драйвер Wi-Fi минипорта должен уведомить NDIS о причине прерывания пробуждения, создав событие состояния NDIS_STATUS_PM_WAKE_REASON . Если прерывание пробуждения вызвано входящим сетевым пакетом, драйвер должен передать этот пакет в NDIS через обычный путь к данным NDIS, прежде чем драйвер передает любые другие полученные пакеты в NDIS.
Восстановите состояние регистрации или другой аппаратный контекст, необходимый для завершения перехода устройства Wi-Fi в режим подключенного режима простоя (D0).
Если Wi-Fi устройство находится вне SoC и подключено через SDIO, драйвер Wi-Fi мини-порта должен:
Попросите водителя sd bus пересылать прерывания драйверу Wi-Fi минипорта. Драйвер Wi-Fi мини-порта должен задать для свойства SDP_SET_CARD_INTERRUPT_FORWARD значение TRUE, вызвав подпрограмму SdBusSubmitRequest .
Маскируйте прерывания Wi-Fi устройства. Драйвер Wi-Fi мини-порта должен задать для свойства SDP_FUNCTION_INT_ENABLE значение TRUE, вызвав подпрограмму SdBusSubmitRequest .
Выполните запрос IRP_MN_SET_POWER .
Пробуждение с сопоставлением шаблонов и возможность пробуждения SoC из состояния простоя с низким энергопотреблением имеют важное значение для поддержания сетевого подключения во время современного режима ожидания. Wi-Fi разработчики драйверов должны тесно сотрудничать с корпорацией Майкрософт, чтобы разработать драйвер Wi-Fi miniport, который реализует эти необходимые функции.
Другие требования к управлению питанием Wi-Fi
Помимо режима экономии энергии и пробуждения с соответствием шаблону, Wi-Fi устройство и драйвер мини-порта должны поддерживать несколько других функций управления питанием во время выполнения для Wi-Fi устройств на современных резервных платформах. Эти функции необходимы для снижения энергопотребления Wi-Fi устройства и общей аппаратной платформы. Как обсуждалось ранее, Wi-Fi устройство и драйвер мини-порта должны поддерживать следующие функции:
- Состояние включения и выключения радиосвязи
- Разгрузка списка сети (NLO)
- Разгрузка ARP/NS
- Объединение пакетов D0
- Динамическая конфигурация DTIM
- Триггеры пробуждения подключения Wi-Fi, в том числе пробуждение при отключении от AP
Состояние включения и выключения радиосвязи
Драйвер мини-порта Wi-Fi должен отвечать на запросы Windows, чтобы изменить состояние радиосвязи для Wi-Fi устройства. Пользователь может изменить состояние включения и выключения радио на выключено , включив режим "в самолете" или явно выключив Wi-Fi в приложении "Параметры Windows".
Когда пользователь изменяет состояние включения и выключения Wi-Fi устройства на выключенное, Windows отправляет драйверу Wi-Fi мини-порта запрос OID_DOT11_NIC_POWER_STATE со значением FALSE. В ответ драйвер Wi-Fi минипорта должен использовать сообщение в диапазоне, чтобы удалить питание от радио (радиочастотной подсистемы) в Wi-Fi устройстве и поместить устройство в состояние питания, которое потребляет в среднем не более 1 милливатта.
Когда пользователь изменяет состояние радиосвязи Wi-Fi устройства на включено, Windows отправляет драйверу Wi-Fi мини-порта запрос OID_DOT11_NIC_POWER_STATE со значением TRUE. В ответ драйвер Wi-Fi мини-порта должен использовать сообщение в диапазоне, чтобы применить питание к радио в Wi-Fi устройстве и вернуть устройство в режим питания с подключенным бездействием.
Если для устройства Wi-Fi настроено состояние включения и выключения радиосвязи, устройство Wi-Fi может находиться в состоянии питания D0 или D2. NDIS всегда переводит устройство Wi-Fi в состояние питания D0, прежде чем уведомлять драйвер Wi-Fi минипорта об изменении состояния включения и выключения радио. Если пользователь ранее установил состояние включения и выключения радиосвязи, драйверу мини-порта Wi-Fi не нужно предпринимать никаких конкретных действий при переходе аппаратной платформы в современный режим ожидания. Если радиосвязь включена или отключена, радиосвязь будет оставаться в режиме современного режима ожидания, а после выхода системы из режима ожидания радиосвязь будет по-прежнему отключена до тех пор, пока пользователь не изменит состояние на включено.
Разгрузка списка сети (NLO)
Функция разгрузки списка сети (NLO) позволяет копировать Wi-Fi сведения профиля в локальное хранилище на устройстве Wi-Fi. Вместо сканирования всех доступных каналов для всех точек доступа устройство Wi-Fi использует эти сведения профиля для сканирования ограниченного числа каналов для предпочтительных сетей, тем самым уменьшая потребление энергии устройством Wi-Fi. Устройство Wi-Fi и драйвер Wi-Fi мини-порта на современной резервной платформе должны поддерживать разгрузку списка сети. Эта поддержка включает обработку запросов OID_DOT11_OFFLOAD_NETWORK_LIST .
Чтобы объявить возможность NLO, драйвер Wi-Fi мини-порта должен установить флаг NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED в элементе MediaSpecificWakeUpEvents структуры NDIS_PM_CAPABILITIES .
Разгрузка ARP/NS
Драйвер Wi-Fi мини-порта и Wi-Fi устройство должны поддерживать разгрузку ARP/NS, что позволяет устройству Wi-Fi автономно отвечать на распространенные сетевые запросы. Функция разгрузки ARP/NS позволяет избежать пробуждения SoC для распространенных сетевых запросов, которые имеют простые и предсказуемые ответы. Чтобы указать поддержку разгрузки ARP/NS, драйвер Wi-Fi мини-порта должен задать флаги NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED и NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED в элементе SupportedProtocolOffloads структуры NDIS_PM_CAPABILITIES .
Кроме того, драйвер Wi-Fi miniport и Wi-Fi устройство должны поддерживать по крайней мере один адрес разгрузки IPv4 ARP и по крайней мере два адреса разгрузки NS DIPv6. Драйвер Wi-Fi мини-порта должен задать для элемента NumArpOffloadIPv4Addresses структуры NDIS_PM_CAPABILITIES значение 1 или больше. Драйвер Wi-Fi мини-порта должен задать для элемента NumNSOffloadIPv6Addresses структуры NDIS_PM_CAPABILITIES значение 2 или больше. Windows использует запрос OID_PM_ADD_PROTOCOL_OFFLOAD для предоставления адресов разгрузки ARP и NS драйверу Wi-Fi мини-порта.
Объединение пакетов D0
Устройство Wi-Fi и драйвер Wi-Fi мини-порта должны поддерживать объединение пакетов D0, что позволяет устройству Wi-Fi пакетировать общие и низкоприоритетные сетевые пакеты для пакетного получения SoC. Эта функция уменьшает общее количество и частоту прерываний набора микросхем ядра, чтобы SoC дольше оставаться в состояниях с низким энергопотреблением, тем самым продлевая время работы батареи. Драйвер Wi-Fi мини-порта объявляет поддержку объединения пакетов D0, задавая несколько значений в структуре NDIS_RECEIVE_FILTER_CAPABILITIES .
В следующем списке элементов перечислены возможности объединения пакетов D0, которые требуется поддерживать устройством Wi-Fi и Wi-Fi драйвером мини-порта. Драйвер Wi-Fi мини-порта должен указывать эти возможности в структуре NDIS_RECEIVE_FILTER_CAPABILITIES . Для каждого элемента в списке отображается минимальное значение, необходимое для определенного элемента этой структуры. NDIS отправляет OID_RECEIVE_FILTER_SET_FILTER запросы драйверу Wi-Fi мини-порта для установки фильтров объединения пакетов. Фильтры объединения пакетов указывают, какие пакеты необходимо пакетировать в буфер объединения на устройстве Wi-Fi.
- SupportedQueueProperties
-
NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE
Примечание Этот флаг всегда должен присутствовать в hardwareReceiveFilterCapabilities , чтобы указать возможности оборудования. Этот флаг должен присутствовать в CurrentReceiveFilterCapabilities только в том случае, если расширенный ключевое слово *PacketCoalescing является ненулевым. - EnabledFilterTypes, минимальное значение:
-
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
- SupportedFilterTests, минимальные значения:
-
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED - SupportedHeaders, минимальные значения:
-
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED - SupportedMacHeaderFields, минимальные значения:
-
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED - SupportedARPHeaderFields, минимальные значения:
-
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED - SupportedIPv4HeaderFields, минимальное значение:
-
NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED
- SupportedIPv6HeaderFields, минимальное значение:
-
NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
- SupportedUdpHeaderFields, минимальное значение:
-
NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED
- MaxFieldTestsPerPacketCoalescingFilter, минимальное значение:
-
5
- MaxPacketCoalescingFilters, минимальное значение:
-
10
NDIS отправляет OID_RECEIVE_FILTER_CLEAR_FILTER запросы на очистку ранее заданных фильтров объединения пакетов, если эти фильтры больше не требуются. NDIS может динамически устанавливать и очищать отдельные фильтры объединения пакетов. Драйвер Wi-Fi минипорта требуется для постоянного отслеживания текущего набора фильтров объединения пакетов, но может применять объединение только в том случае, если Wi-Fi устройство находится в состоянии питания D0 (и находится в активном режиме или режиме простоя с подключением).
Динамическая конфигурация DTIM
Драйвер Wi-Fi мини-порта должен поддерживать динамическую конфигурацию интервала сообщения о доставке трафика (DTIM). Динамическая настройка интервала DTIM до большего значения во время режима "спящий режим подключения" (D2 для SDIO; Режим D3 для PCIe позволяет Wi-Fi устройству потреблять очень мало энергии, постоянно поддерживая подключение к точке доступа. Дополнительная задержка, возникающая в результате более длительного интервала DTIM, не является критической в режиме "спящий режим" (D2/D3).
Драйвер Wi-Fi мини-порта должен поддерживать динамические интервалы DTIM, реализовав следующие рекомендации:
Устройство Wi-Fi (в режиме STA) должно объявлять точке доступа значение интервала прослушивания 10. Это значение приведет к принудительному кэшированию данных для клиента Wi-Fi в течение 10 маяков.
Чтобы подготовить Wi-Fi устройство к переходу в спящий режим (D2/D3), драйвер должен изменить длину интервала DTIM примерно на 500 миллисекундах. Указываемое значение DTIM зависит от значения сообщения о нормальном трафике (TIM). Например, если значение TIM в настоящее время составляет 100 миллисекунда, Wi-Fi устройстве должно использовать значение DTIM 5 (с интервалом в 500 миллисекундах). Если значение TIM сейчас составляет 300 миллисекунда, Wi-Fi устройство должно использовать значение DTIM 2 (с интервалом в 600 миллисекундах).
При обратном переходе Wi-Fi устройства в режим простоя (D0) Wi-Fi устройство должно отменить изменения в исходный DTIM, согласованный с точкой доступа.
триггеры пробуждения Wi-Fi подключения
Если устройство Wi-Fi подключено к сети в режиме ожидания, устройство Wi-Fi и драйвер Wi-Fi мини-порта также должны поддерживать пробуждение SoC на основе набора триггеров пробуждения Wi-Fi подключения. Требования:
- Выполните обновление GTK (WPA/WPA2) и IGTK (WPA2) в современном режиме ожидания.
- Поддержка пробуждения при ошибках подтверждения GTK и IGTK.
- Поддержка пробуждения при получении пакета EAP-Request/Identity 802.1x.
- Поддержка пробуждения при получении четырехстороннего запроса на подтверждение.
- Поддержка пробуждения при потере связи с текущей точкой доступа.
Пробуждение SoC на этих Wi-Fi определенных событиях позволяет Windows получать уведомления, когда Wi-Fi подключение находится под угрозой или когда Wi-Fi устройство теряет подключение к соответствующей точке доступа. В ответ Windows может указать драйверу и устройству мини-порта Wi-Fi подключиться к альтернативной сети Wi-Fi. Кроме того, Windows может вместо этого использовать мобильное широкополосное радио (MBB) для установки подключения. Драйвер Wi-Fi мини-порта должен указать каждую из этих возможностей триггера пробуждения (например, установив флаг NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED) в элементе SupportedWakeUpEvents структуры NDIS_PM_CAPABILITIES .
Поддерживаемые конфигурации питания оборудования
Windows поддерживает три конфигурации аппаратного управления питанием для Wi-Fi устройства на современной резервной платформе. Устройство Wi-Fi должно быть расположено за пределами SoC и подключено через SDIO или PCIe либо должно быть физически интегрировано в микросхему SoC и подключено через проприетарную внутреннюю шину.
Конструктор системы не должен использовать подключение usb-шины для интеграции устройства Wi-Fi в современную резервную платформу.
Вне SoC, подключенного через SDIO
В этой конфигурации, которая показана на предыдущей блок-схеме, Wi-Fi устройство находится за пределами SoC и подключено к SoC через шину SDIO. Устройство Wi-Fi может иметь один или несколько контактов, подключенных к контактам GPIO на SoC. Устройство Wi-Fi должно быть либо подключено к направляющей питания, которая всегда включена, либо напрямую подключено к IC управления питанием (PMIC).
Устройство Wi-Fi должно иметь возможность генерировать прерывание пробуждения по внеполосной сигнальной линии, перенаправляемой из выходного контакта прерываний на Wi-Fi устройстве в контакт GPIO на SoC. Линия прерывания от устройства должна быть подключена к постоянно включенной штифте GPIO на SoC, чтобы сигнал пробуждения Wi-Fi устройства смог вывести SoC из самого низкого состояния питания во время современного режима ожидания. Системный интегратор должен использовать макрос ACPI GpioInt для описания подключения прерывания GPIO на Wi-Fi устройстве в пространстве имен ACPI. Поле Shared макроса GpioInt должно иметь значение ExclusiveAndWake, чтобы указать, что прерывание GPIO может вывести систему из спящего режима. Параметр ExclusiveAndWake позволяет драйверу ACPI автоматически завершить IRP ожидания для Wi-Fi устройства и вернуть устройство в режим простоя (D0), если устройство находится в спящем режиме (D2) при прерывании SoC. Встроенное ПО ACPI должно указывать на то, что Wi-Fi устройство может выбудить платформу из спящего режима (D2). Для этого системный интегратор должен включить объекты _S4W и _S0W в пространство имен ACPI в Wi-Fi устройстве, как показано в следующем примере:
Name(_S0W, 2)
Name(_S4W, 2)
Значение 2 в этом примере указывает состояние питания устройства D2.
Кроме того, устройство Wi-Fi может иметь пин-код ввода, который принимает сигнал включения или сброса от выходного контакта GPIO на SoC. Контакт GPIO управляется встроенным ПО системы. Контакт GPIO можно полностью выключить или сбросить Wi-Fi устройство. Если такой контакт GPIO используется для включения или сброса Wi-Fi устройства, системный интегратор должен предоставить этот контакт в области операций GPIO. Системный интегратор должен также включать методы управления _PS0 и _PS3 в Wi-Fi устройстве в пространстве имен ACPI.
Реализация метода _PS3 должна выключить или сбросить Wi-Fi устройство путем изменения состояния выходного контакта GPIO через область операции GPIO. Если устройство Wi-Fi имеет определенные требования к времени сброса, системный интегратор должен реализовать эти требования в встроенном ПО ACPI, используя метод ACPI Sleep, чтобы задержать выполнение или удерживать строку сброса до требуемого уровня сигнала в течение определенного указанного времени.
Реализация метода управления _PS0 должна надежно применять питание к устройству Wi-Fi и обеспечивать работоспособность устройства.
Вне SoC, подключенного через PCIe
В этой конфигурации Wi-Fi устройство находится за пределами SoC и подключено к шине PCIe. Устройство находится в состоянии питания устройства D3, когда оно работает в режиме "подключенный— спящий режим" или в режиме отключенного режима. В D3 устройство остается в подсостояние D3hot и не входит в подсостояние D3cold. Устройство Wi-Fi должно быть подключено к системной направляющей питания, которая всегда включена или напрямую подключена к ic управления питанием системы (PMIC).
В D3 устройство должно иметь возможность сигнализировать о событии пробуждения, отправляя PM_PME сообщение, которое распространяется по шине PCIe. Событие пробуждения вызовет прерывание из корневого порта PCIe, и это прерывание будет обрабатываться драйвером шины PCI в папке "Входящие" Pci.sys.
Чтобы предоставить операционной системе управление собственными функциями PCIe, встроенное ПО ACPI должно включать метод управления _OSC в пространстве имен ACPI. Кроме того, пространство имен ACPI должно включать объект _S0W, чтобы указать, что Wi-Fi устройство может вывести платформу из спящего режима или режима отключенного режима. Этот объект должен находиться под устройством Wi-Fi в пространстве имен ACPI и объявляться, как показано в следующем примере:
Name(_S0W, 3)
На следующем рисунке показана конфигурация программных и аппаратных компонентов для поддержки Wi-Fi устройства, которое является внешним к SoC и взаимодействует с SoC через шину PCIe.
Интегрирована в SoC
Если устройство Wi-Fi интегрировано в SoC, требуется тесная связь между драйвером Wi-Fi минипорта и собственным драйвером шины SoC. Реализация этого драйвера выходит за рамки область этого документа. Однако драйвер Wi-Fi мини-порта должен реализовывать все функции, описанные в разделе Механизмы управления питанием программного обеспечения.
Системный интегратор должен обратиться к поставщику SoC для получения сведений о реализации ACPI для Wi-Fi устройств, которые непосредственно интегрированы в SoC.
Тестирование и проверка
Тестирование и проверка Wi-Fi устройства должны быть сосредоточены на непосредственном измерении энергопотребления и проверке правильности работы пробуждения с соответствием шаблону.
Прямое измерение энергопотребления устройства является важной частью тестирования и проверки для Wi-Fi устройства. Так как Wi-Fi устройство почти всегда включено, когда платформа не находится в состоянии питания системы S5 (shutown), системный интегратор должен протестировать и проверить Wi-Fi энергопотребление в ряде различных системных сценариев и конфигураций. Мы рекомендуем напрямую измерять энергопотребление устройства Wi-Fi для двух типов подключений, приведенных в следующей таблице.
Сценарий | Целевая средняя мощность | Комментарии |
---|---|---|
Режим "в самолете", выключение радио
|
<= 1 милливатт | Радиосвязь может быть отключена как при включенном дисплее, так и во время современного режима ожидания. При выключенном радио энергопотребление должно быть не более 1 милливатта в среднем как для D0, так и для D2. |
Экран включен, бездействует
|
<= 10 милливатт | Тестирование должно выполняться с Wi-Fi устройством, подключенным к различным точкам доступа Wi-Fi потребителей и коммерческих устройств. |
Подключенный спящий режим
|
<= 10 милливатт |
Контрольный список управления питанием
Системные интеграторы и поставщики SoC должны использовать приведенный ниже контрольный список, чтобы убедиться, что их Wi-Fi устройства и Wi-Fi минипорта совместимы с Windows 8 и Windows 8.1.
ПримечаниеКомплект сертификации оборудования Windows включает широкий набор Wi-Fi тестов драйверов, которые помогут убедиться, что Wi-Fi устройство совместимо с Windows 8 и Windows 8.1. Wi-Fi поставщикам устройств и разработчикам драйверов Wi-Fi мини-портов рекомендуется ознакомиться с тестами комплекта сертификации оборудования Windows и использовать их для проверки реализации драйвера как можно раньше в цикле разработки.
Поставщик устройств Wi-Fi должен разработать драйвер, который выполняет следующие действия:
- Поддерживает пробуждение с сопоставлением шаблонов.
- Поддерживает режим экономии энергии.
- Поддерживает включение и отключение радиосвязи.
- Поддерживает разгрузку списка сети (NLO).
- Поддерживает объединение пакетов D0.
- Поддерживает пробуждение по ap-disconnect и дополнительные триггеры пробуждения Wi-Fi.
- Поддерживает разгрузку ARP/NS.
- Поддерживает динамическую конфигурацию DTIM.
- Проходит все применимые сетевые тесты в комплекте сертификации оборудования Windows.
Если устройство Wi-Fi находится за пределами SoC и подключено через SDIO, системный интегратор должен разработать оборудование и встроенное ПО для Wi-Fi устройства, чтобы сделать следующее:
Перенаправка прерывания Wi-Fi пробуждения с устройства Wi-Fi на всегда включенную контактную GPIO на SoC.
Добавьте макрос GPIOInt в Wi-Fi устройство в пространство имен ACPI, а для поля Общие задано значение ExclusiveAndWake.
Включите объект _S4W под устройством Wi-Fi в пространство имен ACPI с самым глубоким состоянием пробуждения 0x2 для D2. Укажите "Name(_S4W, 2)".
Включите объект _S0W под устройством Wi-Fi в пространство имен ACPI с самым глубоким состоянием пробуждения 0x2 для D2. Укажите как "Name(_S0W, 2)".
Перенаправьте любой сигнал включения питания или сброса от выходного контакта GPIO на SoC на устройство Wi-Fi.
Описывать необязательный выходной контакт GPIO с включением питания или сбросом в области операций GPIO.
Укажите _PS3 и _PS0 методы управления и (или) _PRn ссылок на ресурсы power. Эти записи должны находиться в Wi-Fi устройстве в пространстве имен ACPI.
Реализуйте метод _PS3 или методы power resource, чтобы удалить питание с устройства Wi-Fi.
Реализуйте метод _PS0 или методы power resource для восстановления питания на Wi-Fi устройстве.
Включите в реализацию методов _PS3 и _PS0 любое время включения или сброса последовательности для конкретного устройства. Выполнение метода ACPI может быть отложено с помощью метода Sleep.
Если устройство Wi-Fi находится за пределами SoC и подключено через PCIe, системный интегратор должен разработать оборудование и встроенное ПО для устройства Wi-Fi, чтобы сделать следующее:
Включите _OSC метод управления в пространство имен ACPI, чтобы предоставить операционной системе управление собственными функциями PCIe.
Включите объект _S4W под устройством Wi-Fi в пространство имен ACPI с самым глубоким состоянием пробуждения 0x3 для D3. Укажите как "Name(_S4W, 3)".
Системный интегратор должен протестировать и проверить правильность управления питанием Wi-Fi устройства, выполнив следующие действия.
Убедитесь, что среднее энергопотребление устройства Wi-Fi в режиме радиосвязи меньше 1 милливатта.
Убедитесь, что среднее энергопотребление устройства Wi-Fi меньше 10 милливатт, когда устройство находится в режиме "подключенный спящий режим" (D2 для SDIO; D3 для PCIe) или режима подключенного бездействия (D0) и не передает данные активно.
Убедитесь, что Wi-Fi минипорт правильно поддерживает пробуждение по шаблону и способен пробуждать SoC из самого глубокого состояния простоя при обнаружении соответствующего шаблона.
Убедитесь, что устройство Wi-Fi может вывести SoC из самого глубокого состояния простоя, когда устройство теряет подключение к соответствующей точке доступа.
Убедитесь, что устройство Wi-Fi не создает неверные пробуждения для SoC.
Используйте тесты, предоставленные в комплекте сертификации оборудования Windows, чтобы убедиться, что устройство Wi-Fi правильно реализует разгрузку списка сети (NLO), разгрузку ARP/NS и объединение пакетов D0.