Freigeben über


WDI Miniport-Treiber Design Guide

Wichtig

WiFiCx ist das neue WLAN-Treibermodell, das in Windows 11 eingeführt wurde. Es wird empfohlen, WiFiCx zu verwenden, um die neuesten Features nutzen zu können. Das WDI-Treibermodell befindet sich jetzt im Wartungsmodus und erhält nur noch Fehlerbehebungen mit hoher Priorität.

WLAN Device Driver Interface (WDI) ist das neue universelle Windows-Treibermodell für WLAN-Treiber, sowohl für Windows 10 für die Desktop-Editionen (Home, Pro, Enterprise und Education) als auch für Windows 10 Mobile. Der Hersteller des WLAN-Geräts schreibt einen WDI-Miniport-Treiber, der mit der Implementierung des Betriebssystems von Windows 10 zusammenarbeitet. WDI ermöglicht es Geräteherstellern, weniger Code zu schreiben als das frühere Modell des nativen WLAN-Treibers. Alle neuen WLAN Funktionen, die in Windows 10 eingeführt werden, erfordern WDI-basierte Treiber.

Die nativen WLAN-Treiber der Hersteller funktionieren auch in Windows 10, aber die Funktionalität ist auf die Version von Windows beschränkt, für die sie entwickelt wurden.

Die WDI-Anforderungen und die Schnittstellenspezifikation sind in dieser Anleitung dokumentiert. Die wichtigsten Ziele für das neue Modell sind:

  • Verbesserung der Qualität und Zuverlässigkeit von Windows WLAN-Treibern.
  • Reduzierung der Komplexität des aktuellen Treibermodells, was wiederum die Komplexität des IHV-Treibers reduziert und die Gesamtkosten der IHV-Treiberentwicklung senkt.

Der Schwerpunkt dieser Dokumentation liegt auf der Spezifikation des Flows und des Verhaltens von WLAN-Vorgängen zwischen Windows und der IHV-Treiberkomponente. Sie befasst sich nicht mit der Signatur der Softwareschnittstelle (z. B. dem Schnittstellenmodell des Gerätetreibers) und den Details, wie die IHV-Komponente in Windows geladen wird.

Entwurfsprinzipien

Die folgenden Prinzipien waren die Richtschnur für das Gesamtmodell und das Design dieses Protokolls.

  1. Minimierung des Datenverkehrs zwischen der Host-Komponente und der IHV-Komponente/dem IHV-Gerät. Dies ist besonders wichtig für Implementierungen auf Bussen wie z. B. SDIO, die von Natur aus "chatty" sind.
  2. Es wird erwartet, dass WLAN-Funktionen (insbesondere solche, die mit geringer Latenzzeit ausgeführt werden müssen) vom Gerät übernommen werden.
  3. Alle rechtlich relevanten Funktionen befinden sich in der IHV-Komponente und werden von der IHV gesteuert.
  4. Das Windows-Erlebnis wird von der Host-Komponente und dem Windows-Betriebssystem gesteuert.
  5. Windows ist in der Lage, ausgefallene Geräte wieder in Gang zu setzen. Es verfügt über genügend Information, um die IHV-Komponente neu zu programmieren und innerhalb von 10 Sekunden wiederherzustellen.
  6. Vorgänge, die viel Systemspeicher oder schnelle Prozessoren erfordern und nicht herstellerspezifisch sind, werden vom Host ausgeführt.

Definitionen

Begriff Beschreibung

Sicherungsmedium

Die gesamte Hardware, die mit dem Bus verbunden ist. Ein Gerät kann mehrere Funkkomponenten enthalten (vor allem WLAN und Bluetooth).

WLAN-Adapter

Das spezifische Element des Geräts, das die WLAN-Funktionalität implementiert, wie sie in dieser Spezifikation beschrieben wird.

Port

Ein Objekt, das einen MAC- und PHY-Status für eine bestimmte Verbindung darstellt.

IHV-Komponente

Die von IHV entwickelte Softwarekomponente, die den WLAN-Adapter/das Gerät für den Host darstellt.

Host

Die Host-seitige Microsoft/Betriebssystem-Software, die mit der IHV-Komponente über die in dieser Spezifikation beschriebenen Schnittstellen interagiert.

Upper Edge Driver (UE)

UE bezieht sich auf den WdiWiFi-Treiber, in dieser Dokumentation WDI genannt. Der UE und der Lower Edge (LE) IHV-Treiber bilden zusammen einen vollständigen NDIS-Miniport-Treiber. Die UE implementiert die Core WLAN-Logik.

Lower Edge Driver (LE)

LE bezieht sich auf den IHV-Treiber am unteren Rand. LE und UE bilden zusammen einen vollständigen NDIS-Miniport-Treiber. Der LE implementiert bus- und hardwarespezifische Funktionen.

Functional Level Reset (FLR)

Functional Level Reset, wie in der PCIe-Spezifikation. Dieser Begriff bezieht sich auf das Zurücksetzen einer Funktion, im Gegensatz zum Zurücksetzen des gesamten Geräts, das eine Composite-Funktion haben kann. Der Reset eines solchen Bereichs beeinträchtigt die anderen Funktionen auf demselben Gerät nicht.

Platform Level Reset (PLR)

Platform Level Reset. Diese Reset-Methode wirkt sich auf alle Funktionen eines Geräts aus. Es ist sehr beliebt, mehrere Funktionen in ein Gerät einzubauen, um die Kosten und den Platzbedarf zu reduzieren. So wird beispielsweise Bluetooth in der Regel zusammen mit WLAN auf einem Chip integriert. Eine solche Reset-Methode setzt jedoch alle Funktionseinheiten auf dem Gerät zurück.

Reset Recovery (RR)

RR bezieht sich auf die Ereignis-Sequenz von Reset und Recovery.

Für FLR umfasst dies:

  • Die Anfrage an NDIS, der die Anfrage an den Bus weiterleitet, um die WLAN-Funktion zurückzusetzen.
  • Wiederherstellung des Firmware-Kontextes durch den Treiber.
  • Wiederherstellung der Verbindung zum Zugriffspunkt, wenn dieser vor dem Reset verbunden war.

Für PLR umfasst dies:

  • Die Anfrage an NDIS, das die Anfrage an den Bus weiterleitet. Der Bus interagiert mit PnP, um das Gerät überraschend zu entfernen.
  • Die erneute Auflistung des Geräts.
  • Die Wiederherstellung des Gerätestacks.
  • WLAN wird neu gestartet und die Verbindung wiederhergestellt.

WDI-Befehle

Das UE sendet WDI OIDs und ruft LE Callbacks auf. Alle diese Vorgänge werden als WDI-Befehle bezeichnet.

Zufallsgenerierung von MAC-Adressen

Um die Privatsphäre von Windows 10 Benutzern zu verbessern, werden unter bestimmten Umständen konfigurierte WLAN MAC-Adressen verwendet, wie z. B. vor dem Herstellen einer Verbindung zu einem bestimmten WLAN Networking oder beim Starten von Scans unter bestimmten Bedingungen. Dies gilt nur für den Port der Station. Das System stellt sicher, dass die Randomisierung angemessen verwendet wird, sodass wichtige Verbindungsszenarien nicht unterbrochen werden. Das System verwaltet Adressänderungen, indem es OID_WDI_TASK_DOT11_RESET-Befehle ausgibt, bevor es einen Scan- oder Connect-Befehl ausgibt. Die Parameter des Reset-Befehls enthalten ein optionales Argument für die MAC-Adresse. Wenn das Argument vorhanden ist, wird die MAC-Adresse auf den angegebenen Wert zurückgesetzt. Fehlt es, wird die MAC-Adresse auf dem aktuellen Wert belassen. Bei der Konfiguration von randomisierten MAC-Adressen verwendet das Betriebssystem das für IEEE802-Adressen definierte Format "local administered".

ECSA

Erweiterte Kanalwechsel-Ankündigung.

WDI-Miniport-Treiber-Referenz