Guía de diseño del controlador de minipuerto WDI

Importante

WiFiCx es el nuevo modelo de controlador de Wi-Fi publicado en Windows 11. Se recomienda usar WiFiCx para aprovechar las características más recientes. El modelo de controlador WDI ahora está en modo de mantenimiento y solo recibirá correcciones de prioridad alta.

La interfaz de control de dispositivo WLAN (WDI) es el nuevo modelo de controlador de Windows universal para controladores Wi-Fi, tanto para Windows 10 para ediciones de escritorio (Home, Pro, Enterprise y Education) como Windows 10 Mobile. El fabricante del dispositivo WLAN escribe un controlador de minipuerto WDI para que funcione con la implementación del sistema operativo Windows 10. WDI permite a los fabricantes de dispositivos escribir menos código que el modelo de controlador WLAN nativo anterior. Todas las nuevas características de WLAN introducidas en Windows 10 requieren controladores basados en WDI.

Los controladores WLAN nativos proporcionados por el proveedor siguen funcionando en Windows 10, pero la funcionalidad está limitada a la versión de Windows para la que se desarrollaron.

Los requisitos de WDI y la especificación de interfaz se documentan en esta guía de diseño. Los objetivos clave del nuevo modelo son:

  • Mejorar la calidad y confiabilidad de los controladores WLAN de Windows.
  • Reducir la complejidad del modelo de controlador actual, lo que a su vez reduce la complejidad del controlador de IHV y reduce el coste total del desarrollo de controladores de IHV.

El enfoque de esta documentación es especificar el flujo y el comportamiento de las operaciones de Wi-Fi entre Windows y el componente del controlador IHV. No cubre la firma de interfaz de software (por ejemplo, el modelo de interfaz de controlador de dispositivo) ni los detalles sobre cómo se carga el componente IHV en Windows.

Principios de diseño

Los siguientes principios guiaron el modelo general y el diseño de este protocolo.

  1. Reducir al mínimo el tráfico entre el componente del host y el componente/dispositivo IHV. Esto es especialmente importante para las implementaciones en buses como SDIO, que es inherentemente fragmentado.
  2. Se espera que el dispositivo controle la funcionalidad Wi-Fi (especialmente la funcionalidad que se debe realizar con baja latencia).
  3. Toda la funcionalidad relacionada con la normativa reside en el componente IHV y se controla mediante el IHV.
  4. La experiencia de Windows se controla mediante el componente host y el sistema operativo Windows.
  5. Windows tiene la capacidad de reactivar dispositivos bloqueados. Tiene suficiente estado para volver a programar el componente IHV y recuperarse en un plazo de 10 segundos.
  6. El host controla las operaciones que requieren mucha memoria del sistema o procesadores rápidos y que no son específicas del proveedor.

Definiciones

Término Descripción

Dispositivo

Toda la pieza de hardware que se conecta al bus. Un dispositivo puede tener varias radios (especialmente Wi-Fi y Bluetooth).

Adaptador Wi-Fi

La parte específica del dispositivo que implementa la funcionalidad Wi-Fi tal y como se describe en esta especificación.

Port

Objeto que representa un estado MAC y PHY para una conexión determinada.

Componente IHV

Componente de software desarrollado por IHV que representa el adaptador Wi-Fi o el dispositivo al host.

Host

Software del sistema operativo o Microsoft del lado host que interactúa con el componente IHV mediante las interfaces descritas en esta especificación.

Controlador perimetral superior (UE)

UE hace referencia al controlador WdiWiFi, denominado WDI en esta documentación. El controlador IHV UE y perimetral inferior (LE) se combinan en un controlador de minipuerto NDIS completo. El UE implementa la lógica de Wi-Fi principal.

Controlador perimetral inferior (LE)

LE hace referencia al controlador IHV en el borde inferior. LE y UE se combinan en un controlador de minipuerto NDIS completo. El LE implementa funciones específicas de bus y hardware.

Restablecimiento de nivel funcional (FLR)

Restablecimiento de nivel funcional, como en la especificación PCIe. Este término hace referencia al restablecimiento de una función, frente a un restablecimiento del dispositivo completo que puede tener una función compuesta. El restablecimiento de dicho ámbito no afecta a las demás funciones del mismo dispositivo.

Restablecimiento de nivel de plataforma (PLR)

Restablecimiento de nivel de plataforma. Este método de restablecimiento afecta a todas las funciones de un dispositivo. Es muy popular crear varias funciones en un dispositivo para reducir el coste y la superficie. Por ejemplo, Bluetooth se suele crear con Wi-Fi en un chip. Sin embargo, este método de restablecimiento restablece todas las unidades de función del dispositivo.

Restablecimiento y recuperación (RR)

RR hace referencia a la secuencia de eventos de restablecimiento y recuperación.

Para FLR, esto incluye:

  • La solicitud a NDIS, que reenvía la solicitud al bus para restablecer la función Wi-Fi.
  • Recuperación del contexto de firmware por el controlador.
  • Reconexión al punto de acceso si se conectó antes del restablecimiento.

Para PLR, esto incluye:

  • Solicitud a NDIS, que reenvía la solicitud al bus. El bus interactúa con PnP para eliminar el dispositivo por sorpresa.
  • Reenumeración del dispositivo.
  • Nuevo establecimiento de la pila de dispositivos.
  • Wi-Fi se reinicia y se vuelve a conectar.

Comandos WDI

El UE envía OID WDI y llama a devoluciones de llamada LE. Todos estos se denominan comandos WDI.

Aleatorización de direcciones MAC

Para mejorar la privacidad de los usuarios de Windows 10, las direcciones MAC configuradas de Wi-Fi se usan en algunas circunstancias, como antes de conectarse a una red Wi-Fi determinada o al iniciar análisis en condiciones específicas. Esto solo se aplica al puerto de la estación. El sistema garantiza que la aleatorización se use correctamente, por lo que los escenarios de conectividad importantes no se interrumpen. El sistema administra los cambios de direcciones mediante la emisión de comandos OID_WDI_TASK_DOT11_RESET antes de emitir un comando de análisis o conexión. Los parámetros del comando de restablecimiento incluyen un argumento de dirección MAC opcional. Si el argumento está presente, la dirección MAC se restablece al valor especificado. Si falta, la dirección MAC se deja con el valor actual. Al configurar direcciones MAC aleatorias, el sistema operativo usa el formato "administrado localmente" definido para las direcciones IEEE802.

ECSA

Anuncio del conmutador de canal extendido.

Referencia del controlador de minipuerto WDI