Guida alla progettazione del driver miniport WDI

Importante

WiFiCx è il nuovo modello di driver Wi-Fi rilasciato in Windows 11. È consigliabile usare WiFiCx per sfruttare le funzionalità più recenti. Il modello di driver WDI è ora in modalità di manutenzione e riceverà solo correzioni con priorità elevata.

WLAN Device Driver Interface (WDI) è il nuovo modello di driver di Windows universale per i driver Wi-Fi, sia per Windows 10 per le edizioni desktop (Home, Pro, Enterprise e Education) sia per Windows 10 Mobile. Il produttore del dispositivo WLAN scrive un driver miniport WDI per lavorare con l'implementazione del sistema operativo Windows 10. WDI consente ai produttori di dispositivi di scrivere meno codice rispetto al modello di driver WLAN nativo precedente. Tutte le nuove funzionalità WLAN introdotte in Windows 10 richiedono driver basati su WDI.

I driver WLAN nativi forniti dal fornitore continuano a funzionare in Windows 10, ma la funzionalità è limitata alla versione di Windows per cui sono stati sviluppati.

I requisiti e le specifiche dell'interfaccia WDI sono documentati in questa guida alla progettazione. Gli obiettivi principali per il nuovo modello sono:

  • Migliorare la qualità e l'affidabilità dei driver WLAN di Windows.
  • Ridurre la complessità del modello di driver corrente, che a sua volta riduce la complessità del driver IHV e riduce il costo complessivo dello sviluppo del driver IHV.

Lo stato attivo di questa documentazione consiste nel specificare il flusso e il comportamento delle operazioni di Wi-Fi tra Windows e il componente driver IHV. Non copre la firma dell'interfaccia software (ad esempio, il modello di interfaccia del driver di dispositivo) e informazioni dettagliate sul modo in cui il componente IHV viene caricato in Windows.

Principi di progettazione

I principi seguenti guidano il modello complessivo e la progettazione di questo protocollo.

  1. Ridurre al minimo la chattiness del traffico tra il componente host e il componente/dispositivo IHV. Ciò è particolarmente importante per le implementazioni sugli autobus come SDIO, che è intrinsecamente chatty.
  2. Wi-Fi funzionalità (in particolare le funzionalità che devono essere eseguite con bassa latenza) devono essere gestite dal dispositivo.
  3. Tutte le funzionalità correlate alle normative si trovano nel componente IHV ed è controllata dall'IHV.
  4. L'esperienza di Windows è controllata dal componente host e dal sistema operativo Windows.
  5. Windows ha la possibilità di riattivare i dispositivi bloccati. Lo stato è sufficiente per riprogrammare il componente IHV e ripristinare entro 10 secondi.
  6. Le operazioni che richiedono un sacco di memoria di sistema o processori veloci e non sono specifiche del fornitore vengono gestite dall'host.

Definizioni

Termine Descrizione

Dispositivo

L'intero pezzo di hardware che si connette al bus. Un dispositivo può avere più radio in esso (in particolare Wi-Fi e Bluetooth).

adattatore Wi-Fi

Parte specifica del dispositivo che implementa Wi-Fi funzionalità, come descritto in questa specifica.

Porta

Oggetto che rappresenta uno stato MAC e PHY per una connessione specifica.

Componente IHV

Componente software sviluppato da IHV che rappresenta l'adattatore Wi-Fi/dispositivo all'host.

Host

Software microsoft/sistema operativo lato host che interagisce con il componente IHV usando le interfacce descritte in questa specifica.

Driver superiore perimetrale (UE)

UE fa riferimento al driver WdiWiFi, denominato WDI in questa documentazione. L'UE e il driver IHV (LOWER Edge) si combinano in un driver miniport NDIS completo. L'UE implementa la logica di Wi-Fi principale.

Driver Di bordo inferiore (LE)

LE fa riferimento al driver IHV al bordo inferiore. Le e UE combinano in un driver miniport NDIS completo. Le le implementa funzioni specifiche del bus e dell'hardware.

Reimpostazione a livello funzionale (FLR)

Reimpostazione del livello funzionale, come nella specifica PCIe. Questo termine fa riferimento alla reimpostazione di una funzione, rispetto a una reimpostazione del dispositivo completo che può avere una funzione composita. La reimpostazione di tale ambito non influisce sulle altre funzioni nello stesso dispositivo.

Reimpostazione a livello di piattaforma (PLR)

Reimpostazione a livello di piattaforma. Questo metodo di reimpostazione influisce su tutte le funzioni in un dispositivo. È molto popolare creare più funzioni in un dispositivo per ridurre il costo e il footprint. Il Bluetooth, ad esempio, viene in genere costruito con Wi-Fi su un chip. Tuttavia, tale metodo di reimpostazione reimposta tutte le unità di funzione nel dispositivo.

Reimpostare il ripristino (RR)

RR fa riferimento alla sequenza di eventi di Reimpostazione e ripristino.

Per FLR, include:

  • La richiesta a NDIS, che inoltra la richiesta al bus per reimpostare la funzione di Wi-Fi.
  • Ripristino del contesto del firmware dal driver.
  • Riconnessione al punto di accesso se è stato connesso prima della reimpostazione.

Per PLR, include:

  • Richiesta a NDIS, che inoltra la richiesta al bus. Il bus interagisce con PnP per rimuovere a sorpresa il dispositivo.
  • Rinumerazione del dispositivo.
  • Rivalutazione dello stack di dispositivi.
  • Wi-Fi viene riavviato e riconnessione.

Comandi WDI

L'UE invia gli ID WDI e chiama i callback LE. Tutti questi sono chiamati comandi WDI.

Casualità degli indirizzi MAC

Per migliorare la privacy degli utenti Windows 10, gli indirizzi MAC configurati Wi-Fi vengono usati in alcune circostanze, ad esempio prima di connettersi a una determinata rete Wi-Fi o quando si avviano analisi in condizioni specifiche. Questo vale solo per la porta della stazione. Il sistema garantisce che la casualizzazione venga usata in modo appropriato, quindi gli scenari di connettività importanti non vengono interrotti. Il sistema gestisce le modifiche degli indirizzi emettendo comandi OID_WDI_TASK_DOT11_RESET prima di eseguire un'analisi o un comando di connessione. I parametri dei comandi di reimpostazione includono un argomento di indirizzo MAC facoltativo. Se l'argomento è presente, l'indirizzo MAC viene reimpostato sul valore specificato. Se è assente, l'indirizzo MAC viene lasciato al valore corrente. Quando si configurano indirizzi MAC casuali, il sistema operativo usa il formato "amministrato localmente" definito per gli indirizzi IEEE802.

ECSA

Annuncio del commutatore di canale esteso.

Informazioni di riferimento sul driver miniport WDI