Partager via


Activer le remappage DMA pour les pilotes de périphériques

Pour assurer la compatibilité avec Kernel DMA Protection et DMAGuard Policy, les pilotes de périphériques PCIe peuvent opter pour le remappage DMA (Accès Direct à la Mémoire, DMA).

Le remapping DMA pour les pilotes de périphérique protège contre la corruption de la mémoire et les attaques DMA malveillantes, et offre un niveau de compatibilité plus élevé pour les appareils. En outre, les appareils avec des pilotes compatibles avec le remapping DMA peuvent démarrer et exécuter DMA, quel que soit l’état de l’écran de verrouillage.

Sur les systèmes avec la Protection DMA du noyau activée, la politique DMAGuard pourrait bloquer les périphériques, avec des pilotes incompatibles avec le remappage DMA, connectés aux ports PCIe externes/exposés (par exemple, M.2, Thunderbolt), en fonction de la valeur de la politique définie par l'administrateur système.

Exigences des pilotes pour activer et opter pour le remappage DMA

Les pilotes effectuent DMA à l’aide des interfaces suivantes :

Pour ajuster la politique de remappage DMA pour votre pilote, ajoutez une directive INF. Il existe deux méthodes possibles : un mécanisme par périphérique (recommandé et préféré) et un mécanisme par pilote (hérité).

Mécanisme d'adhésion par périphérique

Pour Windows 24H2 et versions ultérieures, utilisez cette méthode par appareil. L'adhésion par périphérique remplace la méthode par pilote héritée, si elle est présente (par exemple, la clé DmaRemappingCompatible est ignorée si RemappingSupported est définie).

Ajoutez une directive INF telle que la suivante à la section énumération de l’appareil :

[MyDriver_Device.NT.HW]
AddReg=DMA_Remapping_OptIn_AddReg

[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1

Valeurs valides pour DMA Management\RemappingSupported :

Valeur Signification
0 La désactivation indique que le périphérique et le pilote ne sont pas compatibles avec le remapping DMA.
1 Opt-in, indique que le périphérique et le pilote sont entièrement compatibles avec le remapping DMA.
Aucune clé de Registre Laissez le système déterminer la stratégie.

Si vous le souhaitez, vous pouvez ajouter RemappingFlags pour contrôler davantage le comportement :

[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
HKR,"DMA Management","RemappingFlags",0x00010001,0x00000001

Valeurs valides pour DMA Management\RemappingFlags :

Valeur Signification
0 Si RemappingSupported a la valeur 1, optez inconditionnellement.
1 Si RemappingSupported a la valeur 1, optez, mais uniquement quand une ou plusieurs des conditions suivantes sont remplies : A. L’appareil est un appareil externe (par exemple, Ethernet) ; B. La vérification DMA est activée dans le vérificateur de pilotes
Aucune clé de Registre Identique à 0 valeur.

Ces clés de Registre apparaissent sous l’arborescence d’énumération : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device instance path>\Device Parameters\DMA Management

Mécanisme d'adhésion par pilote

Utilisez uniquement cette méthode par pilote pour les versions de Windows jusqu’à Windows 11 23H2. Utilisez la méthode par appareil.

Ajoutez une directive INF telle que la suivante à la section d’installation du service :

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

Valeurs valides pour DmaRemappingCompatible :

Valeur Signification
0 La désactivation indique que votre pilote n’est pas compatible avec le remapping DMA.
1 Opt-in, indique que votre pilote est entièrement compatible avec le remapping DMA.
2 Opt-in, mais seulement lorsque l’une ou plusieurs des conditions suivantes sont remplies : A. L’appareil est un appareil externe (par exemple, Thunderbolt) ; B. La vérification DMA est activée dans Driver Verifier
3 Consentement préalable
Aucune clé de Registre Laissez le système déterminer la stratégie.

Lorsque vous testez votre pilote, activez le vérificateur de pilotes. À des fins de test sous Driver Verifier, la valeur de la directive INF pour opter pour des appareils externes est définie à 1.

La clé de Registre apparaît sous l’arborescence d’installation du service : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<driver name>\Parameters.

Avertissement

Le remappage DMA n'est pas pris en charge pour les pilotes de périphériques graphiques.

Remarque

La prise en charge de la valeur 3 a été ajoutée dans Windows 11. La fonctionnalité est conçue pour dégrader correctement sur Windows 10 où cette prise en charge n’est pas présente, affichant la valeur 2 au lieu de 3 sur l’appareil Windows 10.

Validation de l’activation du remapping DMA pour une instance de pilote de périphérique spécifique

Utilisez la dernière build Windows avec VT-d/AMD-Vi activé pour tester les fonctionnalités du pilote sur les systèmes Intel x64 et AMD64.

Pour vérifier si un pilote spécifique a choisi de remapper DMA, recherchez dans le Gestionnaire de périphériques, sous l’onglet Détails de l’appareil, les valeurs correspondant à la propriété de stratégie de remapping DMA. Un pilote peut interroger la propriété DEVPKEY_Device_DmaRemappingPolicy pour déterminer la fonctionnalité de remapping DMA de l’appareil. Consultez les valeurs de retour potentielles sur cette page et notez que ces valeurs de retour ne sont pas identiques aux valeurs de DmaRemappingCompatible répertoriées dans la section précédente.

Capture d’écran de l’onglet Détails du Gestionnaire de périphériques montrant la propriété de stratégie de remapping DMA pour un appareil PCI.

Remarque

Pour Windows 10, versions 1803 et 1809, le champ de propriété dans Device Manager utilise un GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]