NetAdapterCx in modalità utente
A partire da Windows 11, versione 24H2, NetAdapterCx consente di scrivere un driver di scheda di rete UMDF (User-Mode Driver Framework). Le API UMDF in NetAdapterCx sono allineate alle versioni kmDF, consentendo di convertire il driver client basato su KMDF in UMDF senza apportare modifiche al codice.
Vantaggi dei driver NetAdapterCx in modalità utente
La creazione di un driver NetAdapterCx di UMDF offre questi vantaggi:
Stabilità del sistema migliorata: un driver in modalità utente può accedere solo al relativo spazio indirizzi del processo. Se si verifica un arresto anomalo, non influisce sul sistema. Il driver può essere riavviato automaticamente, ripristinando rapidamente la connessione.
Sicurezza migliorata: le applicazioni in modalità utente non possono accedere direttamente alle risorse di sistema critiche o eseguire istruzioni con privilegi. Pertanto, qualsiasi violazione della sicurezza dei driver non compromette l'integrità del kernel.
Sviluppo semplificato: i driver in modalità utente possono migliorare il flusso di lavoro dello sviluppatore. Non è necessario attendere il riavvio dei computer di test dopo gli arresti anomali e la distribuzione può essere più rapida usando lo stesso computer per lo sviluppo e il test.
Maggiore innovazione e flessibilità: i vincoli di sviluppo dei driver in modalità kernel spesso limitano l'innovazione. I driver in modalità utente offrono un ambiente più flessibile, consentendo agli sviluppatori di usare funzionalità e strumenti avanzati che potrebbero non essere compatibili o difficili da implementare in modalità kernel.
Limitazioni di NetAdapterCx in modalità utente
Le funzionalità seguenti sono attualmente disponibili solo per i driver NetAdapterCx basati su KMDF.
Accesso diretto alla memoria (DMA)
DMA non è ancora disponibile in modalità utente.
I driver UMDF devono impostare il membro DmaCapabilities in NET_ADAPTER_RX_CAPABILITIES e NET_ADAPTER_TX_CAPABILITIES su NULL.
Allocazione del buffer sul lato client
La gestione del buffer dei dati di rete lato client non è disponibile in modalità utente. I driver NetAdapterCx di UMDF devono basarsi sul sistema per allocare buffer di dati per i percorsi di trasmissione e ricezione dei dati.
Quando il driver UMDF annuncia le funzionalità del buffer dei dati hardware usando la struttura di NET_ADAPTER_RX_CAPABILITIES , deve:
- Impostare NET_RX_FRAGMENT_BUFFER_ALLOCATION_MODE su NetRxFragmentBufferAllocationModeSystem.
- Impostare NET_RX_FRAGMENT_BUFFER_ATTACHMENT_MODE su NetRxFragmentBufferAttachmentModeSystem.
- Impostare NET_MEMORY_MAPPING_REQUIREMENT su NetMemoryMappingRequirementNone.
Convertire un driver NetAdapterCx kmDF in UMDF
Per operare in modalità utente, il driver client deve usare solo le API WDF principali che fanno parte di UMDF. Ad esempio, il driver client non deve usare API esclusive per i driver KMDF.
Per convertire il driver NetAdapterCx kmDF in UMDF, seguire la procedura descritta in Come convertire un driver KMDF in un driver UMDF 2.
Le versioni UMDF e KMDF di NetAdapterCx condividono lo stesso numero di versione principale.