Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы обеспечить совместимость с защитой DMA ядра и политикой DMAGuard, драйверы устройств PCIe могут перенаправляться на прямой доступ к памяти (DMA).
Переназначение DMA для драйверов устройств защищает как от повреждения памяти, так и от вредоносных атак DMA и обеспечивает более высокий уровень совместимости для устройств. Кроме того, устройства с драйверами, совместимыми с DMA, могут запускать и выполнять DMA независимо от состояния экрана блокировки.
В системах с включенной защитой ядра от атак DMA политика DMAGuard может блокировать устройства с драйверами, несовместимыми с перенаправлением DMA, подключенными к внешним портам PCIe (например, M.2, Thunderbolt), в зависимости от значения политики, установленного системным администратором.
Требования к драйверу для включения и согласия на повторную настройку DMA
Драйверы выполняют DMA с помощью следующих интерфейсов:
Чтобы настроить политику повторного сопоставления DMA для драйвера, добавьте директиву INF. Существует два возможных метода: механизм для каждого устройства (рекомендуемый и предпочтительный) и механизм для каждого драйвера (устаревшая версия).
Механизм индивидуального согласия для каждого устройства
Для Windows 24H2 и более поздних версий используйте этот метод для каждого устройства. Согласие на устройство переопределяет устаревший метод для каждого драйвера, если он присутствует (например, ключ DmaRemappingCompatible игнорируется, если задан параметр RemappingSupported ).
Добавьте директиву INF, например следующую, в раздел перечисления устройств:
[MyDriver_Device.NT.HW]
AddReg=DMA_Remapping_OptIn_AddReg
[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
Возможные значения для менеджмента DMA\RemappingSupported:
Ценность | Значение |
---|---|
0 | Отказ. Указывает, что устройство и драйвер несовместимы с переназначкой DMA. |
1 | Добровольное участие. Указывает, что устройство и драйвер полностью совместимы с перемапированием DMA. |
Отсутствует ключ реестра | Позвольте системе определить политику. |
При необходимости можно добавить remappingFlags для дальнейшего управления поведением:
[DMA_Remapping_OptIn_AddReg]
HKR,"DMA Management","RemappingSupported",0x00010001,1
HKR,"DMA Management","RemappingFlags",0x00010001,0x00000001
Допустимые значения для управление DMA\RemappingFlags:
Ценность | Значение |
---|---|
0 | Если параметр RemappingSupported равен 1, воспользуйтесь возможностью присоединиться без условий. |
1 | Если значение RemappingSupported равно 1, включите опцию, но только в том случае, если выполняется одно или несколько следующих условий: A. Устройство является внешним устройством (например, Thunderbolt); и B. проверка DMA включена в средство проверки драйверов |
Нет раздела реестра | Совпадает со значением 0. |
Эти ключи реестра находятся в дереве перечисления: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device instance path>\Device Parameters\DMA Management
Механизм добровольного выбора для каждого водителя
Этот метод для отдельных драйверов используется только для версий Windows до, но не включая Windows 11 23H2. Рекомендуется использовать метод для каждого устройства.
Добавьте директиву INF в раздел установки службы, например, следующую:
[MyServiceInstall_AddReg]
HKR,Parameters,DmaRemappingCompatible,0x00010001,1 ; where 1 = opt-in
Допустимые значения для DmaRemappingCompatible:
Ценность | Значение |
---|---|
0 | Опция отказа. Указывает, что драйвер несовместим с переназначением DMA. |
1 | Согласие. Указывает, что драйвер полностью совместим с перемежением DMA. |
2 | Согласие, но только в том случае, если выполняется одно или несколько следующих условий: A. Устройство является внешним устройством (например, Thunderbolt); Проверка DMA включена в средство проверки драйверов |
3 | Согласиться |
Нет раздела реестра | Позвольте системе определить политику. |
При тестировании драйвера включите средство проверки драйверов. В целях тестирования в разделе "Проверка драйверов" значение директивы INF для выборов на внешних устройствах повышено до 1.
Раздел реестра отображается в дереве установки службы: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<driver name>\Parameters
.
Предупреждение
Переназначка DMA не поддерживается для драйверов графических устройств.
Проверка того, что переназначение DMA включено для определенного экземпляра драйвера устройства
Используйте последнюю сборку Windows с VT-d/AMD-Vi с поддержкой тестирования функциональных возможностей драйверов в системах Intel x64 и AMD64.
Чтобы проверить, выбрал ли конкретный драйвер перенаправление DMA, в Диспетчере устройств, на вкладке Сведения устройства, посмотрите значения, соответствующие свойству политики перенаправки DMA. Драйвер может запросить свойство DEVPKEY_Device_DmaRemappingPolicy, чтобы определить функциональность повторного распределения DMA устройства. Ознакомьтесь с потенциальными возвращаемыми значениями на этой странице и обратите внимание, что эти возвращаемые значения не совпадают со значениями DmaRemappingCompatible , перечисленными в предыдущем разделе.
Примечание.
Для Windows 10 версии 1803 и 1809 поле свойств в Диспетчере устройств использует GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]