Guide de conception des pilotes Miniport WDI
Important
WiFiCx est le nouveau modèle de pilote Wi-Fi publié dans Windows 11. Nous vous recommandons d’utiliser WiFiCx pour exploiter les toutes dernières fonctionnalités. Le modèle de pilote WDI est désormais en mode maintenance et ne recevra que des correctifs de haute priorité.
L’interface de pilote de périphérique WLAN (WDI) est le nouveau modèle de pilote universel Windows pour les pilotes Wi-Fi, pour Windows 10 à la fois pour les éditions de bureau (Home, Pro, Enterprise et Education) et Windows 10 Mobile. Le fabricant de périphérique WLAN écrit un pilote de miniport WDI pour fonctionner avec la mise en œuvre du système d’exploitation Windows 10. WDI permet aux fabricants de périphériques 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 basés sur WDI.
Les pilotes WLAN natifs fournis par les fournisseurs continuent de fonctionner sous Windows 10, mais leur fonctionnalité est limitée à la version de Windows pour laquelle ils ont été développés.
Les exigences et la spécification de l’interface WDI sont documentées dans ce guide de conception. Les objectifs clés du nouveau modèle sont :
- Améliorer la qualité et la fiabilité des pilotes WLAN Windows.
- Réduire la complexité du modèle de pilote actuel, ce qui réduit à son tour la complexité du pilote IHV et réduit 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 de pilote IHV. Elle ne couvre pas la signature de l’interface logicielle (par exemple, le modèle d’interface de pilote de périphérique) et les détails concernant la manière 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.
- Minimiser la bavardage du trafic entre le composant hôte et le composant/dispositif IHV. Cela est particulièrement important pour les implémentations sur des bus comme le SDIO, qui est intrinsèquement bavard.
- La fonctionnalité Wi-Fi (en particulier la fonctionnalité qui doit être effectuée avec une faible latence) doit être gérée par le dispositif.
- Toutes les fonctionnalités liées à la réglementation résident dans le composant IHV et sont contrôlées par l’IHV.
- L’expérience Windows est contrôlée par le composant hôte et le système d’exploitation Windows.
- Windows a la capacité de ressusciter les périphériques bloqués. Il possède suffisamment d’état pour reprogrammer le composant IHV et récupérer en moins de 10 secondes.
- Les opérations qui nécessitent beaucoup de mémoire système ou des processeurs rapides et ne sont pas spécifiques aux vendeurs sont gérées par l’hôte.
Définitions
Terme | Description |
---|---|
Appareil |
L’ensemble du matériel qui se connecte au bus. Un dispositif peut avoir plusieurs radios (notamment Wi-Fi et Bluetooth). |
Adaptateur Wi-Fi |
La partie spécifique du dispositif qui met en œuvre la fonctionnalité Wi-Fi telle que décrite dans cette spécification. |
Port |
Un objet qui représente un état MAC et PHY pour une connexion particulière. |
Composant IHV |
Le composant logiciel développé par l’IHV qui représente l’adaptateur/dispositif Wi-Fi pour l’hôte. |
Hôte |
Le logiciel côté hôte Microsoft/système d’exploitation qui interagit avec le composant IHV en utilisant les interfaces décrites dans cette spécification. |
Pilote Upper Edge (UE) |
UE fait référence au pilote WdiWiFi, appelé WDI dans cette documentation. L’UE et le pilote Lower Edge (LE) IHV se combinent en un pilote de miniport NDIS complet. L’UE met en œuvre la logique Wi-Fi centrale. |
Pilote Lower Edge (LE) |
LE fait référence au pilote IHV au niveau inférieur. Le LE et l’UE se combinent en un pilote de miniport NDIS complet. Le LE met en œuvre les fonctions spécifiques au bus et au matériel. |
Réinitialisation de niveau fonctionnel (FLR) |
Réinitialisation de niveau fonctionnel, tel que dans la spécification PCIe. Ce terme fait référence à la réinitialisation d’une fonction, par opposition à une réinitialisation de l’ensemble du périphérique qui peut avoir une fonction composite. La réinitialisation d’une telle étendue n’affecte pas les autres fonctions sur le même périphérique. |
Réinitialisation de niveau plateforme (PLR) |
Réinitialisation de niveau plateforme. Cette méthode de réinitialisation impacte toutes les fonctions sur un périphérique. Il est très courant de regrouper plusieurs fonctions sur un périphérique afin de réduire les coûts et l’empreinte. Par exemple, le Bluetooth est généralement intégré au Wi-Fi sur une puce. Cependant, une telle méthode de réinitialisation réinitialise toutes les unités fonctionnelles du périphérique. |
Récupération après réinitialisation (RR) |
RR fait référence à la séquence d’événements de réinitialisation et de récupération. Pour la FLR, cela comprend :
Pour la PLR, cela comprend :
|
Commandes WDI |
L’UE envoie les OIDs WDI et appelle les rappels du LE. Tous ces éléments sont appelés commandes WDI. |
Randomisation des adresses MAC |
Afin d’améliorer la confidentialité des utilisateurs de Windows 10, des adresses MAC Wi-Fi configurées sont utilisées dans certaines circonstances, telles qu’avant de se connecter à un réseau Wi-Fi particulier ou lors du démarrage de balayages dans des conditions spécifiques. Cela s’applique uniquement au port de station. Le système s’assure que la randomisation est utilisée de manière appropriée, de sorte que les scénarios de connectivité importants ne soient pas perturbés. Le système gère les changements d’adresses en émettant des commandes OID_WDI_TASK_DOT11_RESET avant d’émettre une commande de balayage ou de connexion. Les paramètres de la commande de réinitialisation incluent un argument d’adresse MAC optionnel. Si l’argument est présent, l’adresse MAC est réinitialisée à la valeur spécifiée. S’il est absent, l’adresse MAC reste à la valeur actuelle. Lors de la configuration d’adresses MAC randomisées, le système d’exploitation utilise le format « administré localement » défini pour les adresses IEEE802. |
ECSA |
Annonce de changement de canal étendu. |