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 | Option de refus. Indique que le périphérique et le pilote sont incompatibles avec le remappage DMA. |
1 | Inscription volontaire. 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 est égal à 1, optez pour l'adhésion sans condition. |
1 | Si RemappingSupported est égal à 1, optez pour l'adhésion mais seulement lorsque une ou plusieurs des conditions suivantes sont remplies : A. Le périphérique est un périphérique externe (par exemple, Thunderbolt) ; B. La vérification DMA est activée dans Driver Verifier |
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. Il est recommandé d’utiliser 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 | Exclusion volontaire. Indique que votre pilote n’est pas compatible avec le remappage DMA. |
1 | Adhérer. 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.
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.
onglet Détails du Gestionnaire de périphériques
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]