Guia de design do driver de miniporto WDI

Importante

WiFiCx é o novo modelo de driver Wi-Fi lançado em Windows 11. Recomendamos que você use o WiFiCx para aproveitar os recursos mais recentes. O modelo de driver WDI agora está no modo de manutenção e receberá apenas correções de alta prioridade.

WDI (Interface de Driver de Dispositivo) WLAN é o novo modelo de driver Universal do Windows para drivers de Wi-Fi, tanto para Windows 10 para edições desktop (Home, Pro, Enterprise e Education) quanto para Windows 10 Mobile. O fabricante do dispositivo WLAN grava um driver de miniporto WDI para trabalhar com a implementação do sistema operacional Windows 10. O WDI permite que os fabricantes de dispositivos escrevam menos código do que o modelo de driver WLAN nativo anterior. Todos os novos recursos da WLAN introduzidos no Windows 10 exigem drivers baseados em WDI.

Os drivers WLAN nativos fornecidos pelo fornecedor continuam funcionando em Windows 10, mas a funcionalidade é limitada à versão do Windows para a qual eles foram desenvolvidos.

Os requisitos de WDI e a especificação da interface estão documentados neste guia de design. As principais metas para o novo modelo são:

  • Melhorar a qualidade e a confiabilidade dos drivers WLAN do Windows.
  • Reduza a complexidade do modelo de driver atual, o que, por sua vez, reduz a complexidade do driver IHV e reduz o custo geral do desenvolvimento de driver IHV.

O foco desta documentação é especificar o fluxo e o comportamento das operações de Wi-Fi entre o Windows e o componente de driver IHV. Ele não abrange a assinatura da interface de software (por exemplo, o modelo de interface do driver de dispositivo) e detalhes sobre como o componente IHV é carregado no Windows.

Princípios de design

Os princípios a seguir orientaram o modelo geral e o design desse protocolo.

  1. Minimize a tagarela do tráfego entre o componente host e o componente/dispositivo IHV. Isso é particularmente importante para implementações em ônibus como o SDIO, que é inerentemente tagarela.
  2. Wi-Fi funcionalidade (especialmente a funcionalidade que deve ser executada com baixa latência) deve ser tratada pelo dispositivo.
  3. Todas as funcionalidades relacionadas à regulamentação residem no componente IHV e são controladas pelo IHV.
  4. A experiência do Windows é controlada pelo componente host e pelo sistema operacional Windows.
  5. O Windows tem a capacidade de ressuscitar dispositivos suspensos. Ele tem estado suficiente para reprogramar o componente IHV e recuperar dentro de 10 segundos.
  6. As operações que exigem muita memória do sistema ou processadores rápidos e não são específicas do fornecedor são tratadas pelo host.

Definições

Termo Descrição

Dispositivo

Toda a parte do hardware que se conecta ao barramento. Um dispositivo pode ter vários rádios nele (notadamente Wi-Fi e Bluetooth).

adaptador Wi-Fi

A parte específica do dispositivo que implementa Wi-Fi funcionalidade, conforme descrito nesta especificação.

Porta

Um objeto que representa um estado MAC e PHY para uma conexão específica.

Componente IHV

O componente de software desenvolvido por IHV que representa o adaptador/dispositivo Wi-Fi para o host.

Host

O software microsoft/sistema operacional do lado do host que interage com o componente IHV usando as interfaces descritas nesta especificação.

UE (Driver de Borda Superior)

UE refere-se ao driver WdiWiFi, chamado WDI nesta documentação. A UE e o driver IHV de BORDA Inferior (LE) são combinados em um driver de miniporto NDIS completo. A UE implementa a lógica de Wi-Fi principal.

LE (Driver de Borda Inferior)

LE refere-se ao driver IHV na borda inferior. O LE e a UE combinam-se em um driver de miniporto NDIS completo. O LE implementa funções específicas de barramento e hardware.

FLR (Redefinição de Nível Funcional)

Redefinição de Nível Funcional, como na especificação PCIe. Este termo refere-se à redefinição de uma função, em vez de uma redefinição do dispositivo completo que pode ter uma função composta. A redefinição desse escopo não prejudica as outras funções no mesmo dispositivo.

PLR (redefinição de nível de plataforma)

Redefinição de nível de plataforma. Esse método de redefinição afeta todas as funções em um dispositivo. É muito popular criar várias funções em um dispositivo para reduzir o custo e o volume. Por exemplo, o Bluetooth normalmente é criado com Wi-Fi em um chip. No entanto, esse método de redefinição redefine todas as unidades de função no dispositivo.

Recuperação de Redefinição (RR)

RR refere-se à sequência de eventos de Redefinição e Recuperação.

Para FLR, isso inclui:

  • A solicitação para o NDIS, que encaminha a solicitação para o barramento para redefinir a função Wi-Fi.
  • Recuperação do contexto de firmware pelo driver.
  • Reconexão ao ponto de acesso se ele estiver conectado antes da redefinição.

Para PLR, isso inclui:

  • A solicitação para o NDIS, que encaminha a solicitação para o ônibus. O barramento interage com o PnP para remover o dispositivo de surpresa.
  • Renumeração do dispositivo.
  • Restabelecendo a pilha de dispositivos.
  • Wi-Fi é reiniciado e reconectado.

Comandos WDI

A UE envia OIDs WDI e chama retornos de chamada LE. Todos eles são chamados de comandos WDI.

Randomização de endereço MAC

Para melhorar a privacidade dos usuários Windows 10, os endereços MAC Wi-Fi configurados são usados em algumas circunstâncias, como antes de se conectar a uma rede Wi-Fi específica ou ao iniciar verificações em condições específicas. Isso só se aplica ao porto da estação. O sistema garante que a randomização seja usada adequadamente, portanto, cenários de conectividade importantes não são interrompidos. O sistema gerencia alterações de endereços emitindo comandos OID_WDI_TASK_DOT11_RESET antes de emitir um comando de verificação ou conexão. Os parâmetros de comando de redefinição incluem um argumento de endereço MAC opcional. Se o argumento estiver presente, o endereço MAC será redefinido para o valor especificado. Se ele estiver ausente, o endereço MAC será deixado para o valor atual. Ao configurar endereços MAC aleatórios, o sistema operacional usa o formato "administrado localmente" definido para endereços IEEE802.

ECSA

Comunicado de Alternância de Canal Estendido.

Referência do driver de miniporto WDI