Руководство по проектированию драйвера минипорта WDI

Внимание

WiFiCx — это новая модель драйвера Wi-Fi, выпущенная в Windows 11. Мы рекомендуем использовать WiFiCx для использования новейших функций. Модель драйвера WDI теперь находится в режиме обслуживания и получит только исправления с высоким приоритетом.

Интерфейс драйвера устройств WLAN (WDI) — это новая модель универсального драйвера Windows для драйверов Wi-Fi для windows 10 для классических выпусков (Home, Pro, Enterprise и Education) и Windows 10 Mobile. Производитель устройств WLAN записывает мини-порт WDI для работы с реализацией ОС Windows 10. WDI позволяет производителям устройств писать меньше кода, чем предыдущая модель драйвера WLAN. Для всех новых функций WLAN, представленных в Windows 10, требуются драйверы на основе WDI.

Предоставляемые поставщиком собственные драйверы WLAN продолжают работать в Windows 10, но функциональные возможности ограничены версией Windows, для которой они были разработаны.

Требования WDI и спецификация интерфейса описаны в этом руководстве по проектированию. Основными целями новой модели являются:

  • Повышение качества и надежности драйверов WLAN Для Windows.
  • Уменьшите сложность текущей модели драйверов, что, в свою очередь, снижает сложность драйвера IHV и снижает общую стоимость разработки драйверов IHV.

Основной целью этой документации является указание потока и поведения операций Wi-Fi между Windows и компонентом драйвера IHV. Он не охватывает сигнатуру программного интерфейса (например, модель интерфейса драйвера устройства) и сведения о загрузке компонента IHV в Windows.

Принципы дизайна

Следующие принципы руководствовались общей моделью и проектированием этого протокола.

  1. Свести к минимуму взаимодействие трафика между компонентом узла и компонентом или устройством IHV. Это особенно важно для реализации на автобусах, таких как SDIO, который по сути чатый.
  2. Ожидается, что функции Wi-Fi (особенно функциональные возможности, которые должны выполняться с низкой задержкой) будут обрабатываться устройством.
  3. Все связанные с нормативными функциями находятся в компоненте IHV и контролируются IHV.
  4. Интерфейс Windows управляется компонентом узла и операционной системой Windows.
  5. В Windows есть возможность восстановить зависнутые устройства. Оно имеет достаточное состояние, чтобы перепрограммировать компонент IHV и восстановить его в течение 10 секунд.
  6. Операции, требующие большого количества системной памяти или быстрых процессоров, и не являются конкретными поставщиками, обрабатываются узлом.

Определения

Срок Description

Устройство

Все оборудование, которое подключается к шине. Устройство может содержать несколько радиосвязей (в частности, Wi-Fi и Bluetooth).

Адаптер Wi-Fi

Определенная часть устройства, реализующего функциональные возможности Wi-Fi, как описано в этой спецификации.

Порт

Объект, представляющий состояние MAC и PHY для конкретного подключения.

Компонент IHV

Компонент программного обеспечения, разработанный IHV, представляющий адаптер Wi-Fi или устройство на узле.

Хост

Программное обеспечение майкрософт или операционной системы на стороне узла, взаимодействующее с компонентом IHV с помощью интерфейсов, описанных в этой спецификации.

Драйвер верхнего края (UE)

UE ссылается на драйвер WdiWiFi с именем WDI в этой документации. Драйвер IHV UE и нижнего края (LE) объединяются в полный минипорт NDIS. UE реализует основную логику Wi-Fi.

Нижний пограничный драйвер (LE)

LE относится к драйверу IHV на нижнем крае. LE и UE объединяются в полный минипорт NDIS. Le реализует функции шины и оборудования.

Сброс функционального уровня (FLR)

Сброс функционального уровня, как и в спецификации PCIe. Этот термин относится к сбросу функции, а также к сбросу полного устройства, который может иметь составную функцию. Сброс такой области не влияет на другие функции на том же устройстве.

Сброс уровня платформы (PLR)

Сброс уровня платформы. Этот метод сброса влияет на все функции на устройстве. Очень популярно создавать на устройстве несколько функций, чтобы снизить затраты и объемы. Например, Bluetooth обычно строится с помощью Wi-Fi на микросхеме. Однако такой метод сброса сбрасывает все единицы функций на устройстве.

Сброс восстановления (RR)

RR ссылается на последовательность событий сброса и восстановления.

Для FLR это включает:

  • Запрос на NDIS, который перенаправляет запрос на шину для сброса функции Wi-Fi.
  • Восстановление контекста встроенного ПО драйвером.
  • Повторное подключение к точке доступа, если она была подключена до сброса.

Для PLR это включает в себя:

  • Запрос на NDIS, который пересылает запрос на шину. Шина взаимодействует с PnP, чтобы неожиданно удалить устройство.
  • Повторное перечисление устройства.
  • Повторное создание стека устройств.
  • Wi-Fi перезапускается и повторно подключается.

Команды WDI

UE отправляет идентификаторы WDI и вызывает обратные вызовы LE. Все эти команды называются командами WDI.

Случайное определение MAC-адреса

Чтобы улучшить конфиденциальность пользователей Windows 10, настроенные MAC-адреса Wi-Fi используются в некоторых случаях, например перед подключением к определенной сети Wi-Fi или при запуске сканирования в определенных условиях. Это относится только к порту станции. Система гарантирует, что случайность используется соответствующим образом, поэтому важные сценарии подключения не нарушаются. Система управляет изменениями адресов путем выдачи OID_WDI_TASK_DOT11_RESET команд до выдачи команды сканирования или подключения. Параметры команды сброса включают необязательный аргумент MAC-адреса. Если аргумент присутствует, MAC-адрес сбрасывается на указанное значение. Если он отсутствует, MAC-адрес остается текущему значению. При настройке случайных MAC-адресов операционная система использует формат "локально администрирования", определенный для IEEE802 адресов.

ECSA

Объявление о переключении расширенных каналов.

Справочник по драйверу минипорта WDI