Guida alla progettazione del driver Miniport WDI

Importante

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

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) che 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 di driver IHV.

L'obiettivo di questa documentazione è specificare il flusso e il comportamento delle operazioni Wi-Fi tra Windows e il componente driver IHV. Non tratta 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 hanno guidato 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 su autobus come SDIO, che è intrinsecamente chiacchiere.
  2. La funzionalità Wi-Fi (in particolare la funzionalità che deve essere eseguita con bassa latenza) deve essere gestita 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 appesi. Lo stato è sufficiente per riprogrammare il componente IHV e ripristinarlo entro 10 secondi.
  6. Le operazioni che richiedono molta 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 la funzionalità Wi-Fi, come descritto in questa specifica.

Porta

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

Componente IHV

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

Host

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

Driver Edge superiore (UE)

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

Driver Lower Edge (LE)

LE fa riferimento al driver IHV al bordo inferiore. Le LE e UE si combinano in un driver miniport NDIS completo. L'interfaccia a livello di archiviazione implementa funzioni specifiche dell'hardware e del bus.

Reimpostazione del livello funzionale (FLR)

Reimpostazione del livello funzionale, come nella specifica PCIe. Questo termine si riferisce alla reimpostazione di una funzione, rispetto a una reimpostazione del dispositivo completo che può avere una funzione composita. La reimpostazione di tale ambito non compromette le 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 diffuso creare più funzioni in un dispositivo per ridurre i costi e il footprint. Ad esempio, Il Bluetooth viene in genere compilato con Wi-Fi su un chip. Tuttavia, tale metodo di reimpostazione reimposta tutte le unità di funzione nel dispositivo.

Ripristino ripristino (RR)

RR fa riferimento alla sequenza di eventi di Reset and Recovery.

Per FLR, include:

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

Per PLR, sono inclusi i seguenti:

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

Comandi WDI

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

Randomizzazione degli indirizzi MAC

Per migliorare la privacy degli utenti di Windows 10, gli indirizzi MAC Wi-Fi configurati vengono usati in alcune circostanze, ad esempio prima di connettersi a una rete Wi-Fi specifica o quando si avviano analisi in condizioni specifiche. Questo vale solo per il porto 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 eseguendo OID_WDI_TASK_DOT11_RESET comandi prima di eseguire un'analisi o un comando di connessione. I parametri del comando reset 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 cambio di canale esteso.

Informazioni di riferimento sul driver miniport WDI