Включение переназначение DMA для драйверов устройств

Чтобы обеспечить совместимость с защитой DMA ядра и политикой DMAGuard, драйверы устройств PCIe могут согласиться на переназначение прямого доступа к памяти (DMA).

Переназначение DMA для драйверов устройств защищает от повреждения памяти и вредоносных атак DMA, а также обеспечивает более высокий уровень совместимости устройств. Кроме того, устройства с драйверами, совместимыми с DMA с переназначениями, могут запускаться и выполнять DMA независимо от состояния экрана блокировки.

В системах с поддержкой защиты DMA ядра политика DMAGuard может блокировать устройства с несовместимыми с DMA драйверами, подключенными к внешним/портам PCIe (например, M.2, Thunderbolt™), в зависимости от значения политики, заданного системным администратором.

Требования к драйверу для включения и выбора повторного сопоставления DMA

Драйверы выполняют DMA с помощью следующих интерфейсов:

Чтобы настроить политику переназначивания DMA для драйвера, добавьте директиву INF, например следующую, в раздел установки службы:

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

Допустимые значения для DmaRemappingCompatible :

Значение Значение
0 Отклоться. Это указывает системе, что драйвер несовместим с переназначение DMA.
1 использовать. Это указывает системе, что драйвер полностью совместим с переназначение DMA.
2 Согласие, но только при выполнении одного или нескольких из следующих условий: A. Если устройство является внешним устройством (например, Thunderbolt); B. Если проверка DMA включена в средство проверки драйверов.
Нет раздела реестра Позвольте системе определить политику.

При тестировании драйвера включите средство проверки драйверов. В целях тестирования в разделе Средство проверки драйверов значение директивы INF для выбора внешних устройств повышается до 1.

Используйте последнюю сборку Windows 10 с поддержкой VT-d/AMD-Vi для тестирования функций драйверов в системах Intel x64 и AMD64.

Предупреждение

Переназначение DMA не поддерживается для драйверов графических устройств.

Поддержка версии 3 доступна только в Windows 11. В Windows 10, если указать 3 в INF, система возвращается к значению 2.

Проверка того, что переназначение DMA включено для конкретного экземпляра драйвера устройства

Чтобы проверка, если конкретный драйвер принял решение о переназначение DMA, просмотрите диспетчер устройств на вкладке Сведения устройства значения, соответствующие свойству политики переназначение DMA. Драйвер может запросить свойство DEVPKEY_Device_DmaRemappingPolicy , чтобы определить возможность переназначения DMA устройства. Ознакомьтесь с потенциальными возвращаемыми значениями на этой странице и обратите внимание, что эти возвращаемые значения не совпадают со значениями для DmaRemappingCompatible , перечисленными в предыдущем разделе.

диспетчер устройств вкладку

Примечание

Для Windows 10 версий 1803 и 1809 поле свойства в диспетчер устройств использует ИДЕНТИФИКАТОР GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]