Guide de conception du pilote WDI Miniport

Important

WiFiCx est le nouveau modèle de pilote Wi-Fi publié dans Windows 11. Nous vous recommandons d’utiliser WiFiCx pour tirer parti des dernières fonctionnalités. Le modèle de pilote WDI est désormais en mode maintenance et ne recevra que des correctifs de priorité élevée.

L’interface WDI (Wlan Device Driver Interface) est le nouveau modèle de pilote Windows universel pour les pilotes Wi-Fi, pour les Windows 10 pour les éditions de bureau (Famille, Professionnel, Entreprise et Éducation) et Windows 10 Mobile. Le fabricant du périphérique WLAN écrit un pilote miniport WDI pour fonctionner avec l’implémentation du système d’exploitation Windows 10. WDI permet aux fabricants d’appareils d’écrire moins de code que le modèle de pilote WLAN natif précédent. Toutes les nouvelles fonctionnalités WLAN introduites dans Windows 10 nécessitent des pilotes WDI.

Les pilotes WLAN natifs fournis par le fournisseur continuent de fonctionner dans Windows 10, mais les fonctionnalités sont limitées à la version de Windows pour laquelle ils ont été développés.

Les exigences WDI et la spécification de l’interface sont documentées dans ce guide de conception. Les principaux objectifs du nouveau modèle sont les suivants :

  • Améliorez la qualité et la fiabilité des pilotes WLAN Windows.
  • Réduisez la complexité du modèle de pilote actuel, ce qui à son tour réduit la complexité du pilote IHV et le coût global du développement du pilote IHV.

L’objectif de cette documentation est de spécifier le flux et le comportement des opérations Wi-Fi entre Windows et le composant pilote IHV. Il ne couvre pas la signature d’interface logicielle (par exemple, le modèle d’interface de pilote de périphérique) et les détails sur la façon dont le composant IHV est chargé dans Windows.

Principes de conception

Les principes suivants ont guidé le modèle global et la conception de ce protocole.

  1. Réduisez la conversation du trafic entre le composant hôte et le composant/appareil IHV. Cela est particulièrement important pour les implémentations sur des bus tels que SDIO, qui est intrinsèquement bavard.
  2. Wi-Fi fonctionnalité (en particulier les fonctionnalités qui doivent être effectuées avec une faible latence) est censée être gérée par l’appareil.
  3. Toutes les fonctionnalités réglementaires se trouvent dans le composant IHV et sont contrôlées par l’IHV.
  4. L’expérience Windows est contrôlée par le composant hôte et le système d’exploitation Windows.
  5. Windows a la possibilité de ressusciter des appareils suspendus. Il a suffisamment d’état pour reprogrammer le composant IHV et récupérer dans les 10 secondes.
  6. Les opérations qui nécessitent beaucoup de mémoire système ou de processeurs rapides et qui ne sont pas spécifiques au fournisseur sont gérées par l’hôte.

Définitions

Terme Description

Appareil

Partie entière du matériel qui se connecte au bus. Un appareil peut contenir plusieurs radios (notamment Wi-Fi et Bluetooth).

adaptateur Wi-Fi

Partie spécifique de l’appareil qui implémente Wi-Fi fonctionnalité comme décrit dans cette spécification.

Port

Objet qui représente un état MAC et PHY pour une connexion particulière.

Composant IHV

Composant logiciel développé par IHV qui représente l’adaptateur/l’appareil Wi-Fi de l’hôte.

Host

Logiciel microsoft/système d’exploitation côté hôte qui interagit avec le composant IHV à l’aide des interfaces décrites dans cette spécification.

Pilote edge supérieur (UE)

UE fait référence au pilote WdiWiFi, appelé WDI dans cette documentation. L’UE et le pilote IHV de bord inférieur (LE) se combinent en un pilote miniport NDIS complet. L’UE implémente la logique de Wi-Fi de base.

Pilote de bord inférieur (LE)

LE fait référence au pilote IHV au bord inférieur. Le LE et l’UE se combinent en un pilote miniport NDIS complet. Le LE implémente des fonctions spécifiques au bus et au matériel.

Réinitialisation de niveau fonctionnel (FLR)

Réinitialisation de niveau fonctionnel, comme dans la spécification PCIe. Ce terme fait référence à la réinitialisation d’une fonction, par opposition à une réinitialisation de l’appareil complet qui peut avoir une fonction composite. La réinitialisation d’une telle étendue n’altère pas les autres fonctions sur le même appareil.

Réinitialisation au niveau de la plateforme (PLR)

Réinitialisation au niveau de la plateforme. Cette méthode de réinitialisation a un impact sur toutes les fonctions d’un appareil. Il est très populaire de créer plusieurs fonctions sur un appareil afin de réduire le coût et l’encombrement. Par exemple, Bluetooth est généralement conçu avec Wi-Fi sur une puce. Toutefois, une telle méthode de réinitialisation réinitialise toutes les unités de fonction sur l’appareil.

Réinitialiser la récupération (RR)

RR fait référence à la séquence d’événements de Réinitialisation et récupération.

Pour FLR, cela inclut :

  • Demande à NDIS, qui transfère la demande au bus pour réinitialiser la fonction Wi-Fi.
  • Récupération du contexte du microprogramme par le pilote.
  • Reconnexion au point d’accès s’il était connecté avant la réinitialisation.

Pour PLR, cela inclut :

  • Demande à NDIS, qui transfère la demande au bus. Le bus interagit avec PnP pour surprendre-supprimer l’appareil.
  • Nouvelle énumération de l’appareil.
  • Rétablir la pile d’appareils.
  • Wi-Fi redémarre et se reconnecte.

Commandes WDI

L’UE envoie des OID WDI et appelle les rappels LE. Toutes ces commandes sont appelées commandes WDI.

Randomisation des adresses MAC

Afin d’améliorer la confidentialité des utilisateurs Windows 10, les adresses MAC configurées Wi-Fi sont utilisées dans certaines circonstances, par exemple avant de se connecter à un réseau Wi-Fi particulier ou lors du lancement d’analyses dans des conditions spécifiques. Cela s’applique uniquement au port de la station. Le système garantit que la randomisation est utilisée de manière appropriée, de sorte que les scénarios de connectivité importants ne sont pas rompus. Le système gère les modifications d’adresses en émettant des commandes OID_WDI_TASK_DOT11_RESET avant d’émettre une commande d’analyse ou de connexion. Les paramètres de commande de réinitialisation incluent un argument d’adresse MAC facultatif. Si l’argument est présent, l’adresse MAC est réinitialisée à la valeur spécifiée. Si elle est absente, l’adresse MAC est laissée à la valeur actuelle. Lors de la configuration d’adresses MAC aléatoires, le système d’exploitation utilise le format « administré localement » défini pour les adresses IEEE802.

ECSA

Annonce du commutateur de canal étendu.

Référence du pilote WDI Miniport