Abilitazione del mapping di DMA per i driver di dispositivo

Per garantire la compatibilità con la protezione DMA del kernel e i criteri DMAGuard, i driver di dispositivo PCIe possono acconsentire esplicitamente alla modifica del mapping di DMA (Direct Memory Access).

Il mapping DMA per i driver di dispositivo protegge da attacchi DMA dannosi e danneggiamento della memoria e offre un livello di compatibilità superiore per i dispositivi. Inoltre, i dispositivi con driver compatibili con DMA possono avviare ed eseguire DMA indipendentemente dallo stato della schermata di blocco.

Nei sistemi abilitati per la protezione DMA kernel, I criteri DMAGuard possono bloccare i dispositivi, con driver incompatibili con il mapping DMA, connessi a porte PCIe esposte esterne/(ad esempio M.2,Intune™), a seconda del valore dei criteri impostato dall'amministratore di sistema.

Requisiti del driver per l'abilitazione e il consenso esplicito per il mapping di DMA

I driver eseguono DMA usando le interfacce seguenti:

Per modificare il criterio di modifica del mapping DMA per il driver, aggiungere una direttiva INF, ad esempio la seguente alla sezione di installazione del servizio:

  [MyServiceInstall_AddReg]
  HKR,Parameters,DmaRemappingCompatible,0x00010001,1    ; where 1 = opt-in

I valori validi per DmaRemappingCompatible sono:

Valore Significato
0 Rifiutare esplicitamente. Ciò indica al sistema che il driver non è compatibile con il mapping DMA.
1 Acconsentire esplicitamente. Ciò indica al sistema che il driver è completamente compatibile con il mapping DMA.
2 Acconsentire esplicitamente, ma solo quando vengono soddisfatte una o più delle condizioni seguenti: A. Se il dispositivo è un dispositivo esterno (ad esempio, Fulmine); B. Se la verifica DMA è abilitata in Driver Verifier.
Nessuna chiave del Registro di sistema Consentire al sistema di determinare i criteri.

Quando si testa il driver, abilitare Driver Verifier. Ai fini dei test in Driver Verifier, il valore della direttiva INF per acconsentire esplicitamente ai dispositivi esterni viene alzato di livello a 1.

Usa la build più recente di Windows 10 con VT-d/AMD-Vi abilitato per testare la funzionalità del driver nei sistemi Intel x64 e AMD64.

Avviso

Il mapping di DMA non è supportato per i driver di dispositivo grafici.

Il supporto per la versione 3 è disponibile solo in Windows 11. In Windows 10, se si specifica 3 in INF, il sistema esegue il fallback a un valore pari a 2.

Convalida dell'abilitazione del mapping DMA per un'istanza specifica del driver di dispositivo

Per verificare se un driver specifico ha scelto di eseguire il mapping di DMA, cercare Gestione dispositivi, nella scheda Dettagli del dispositivo, per i valori corrispondenti alla proprietà dei criteri di modifica del mapping DMA. Un driver può eseguire una query sulla proprietà DEVPKEY_Device_DmaRemappingPolicy per determinare la funzionalità di mapping DMA del dispositivo. Vedere i valori restituiti potenziali in tale pagina e notare che questi valori restituiti non corrispondono ai valori di DmaRemappingCompatible elencati nella sezione precedente.

Gestione dispositivi scheda Dettagli.

Nota

Per Windows 10, versioni 1803 e 1809, il campo della proprietà in Gestione dispositivi usa un GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]