디바이스 드라이버에 대한 DMA 다시 매핑 사용

커널 DMA 보호DMAGuard 정책과의 호환성을 보장하기 위해 PCIe 디바이스 드라이버는 DMA(직접 메모리 액세스) 다시 매핑을 옵트인할 수 있습니다.

디바이스 드라이버에 대한 DMA 다시 매핑은 메모리 손상 및 악의적인 DMA 공격으로부터 보호하고 디바이스에 대해 더 높은 수준의 호환성을 제공합니다. 또한 DMA 다시 매핑 호환 드라이버가 있는 디바이스는 잠금 화면 상태 관계없이 DMA를 시작하고 수행할 수 있습니다.

커널 DMA 보호 사용 시스템에서 DMAGuard 정책은 시스템 관리자가 설정한 정책 값에 따라 외부/에 노출된 PCIe 포트(예: M.2, Thunderbolt™)에 연결된 DMA 다시 매핑 호환되지 않는 드라이버로 디바이스를 차단할 수 있습니다.

DMA 다시 매핑을 사용하도록 설정하고 옵트인하기 위한 드라이버 요구 사항

드라이버는 다음 인터페이스를 사용하여 DMA를 수행합니다.

드라이버에 대한 DMA 다시 매핑 정책을 조정하려면 서비스 설치 섹션에 다음과 같은 INF 지시문을 추가합니다.

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

DmaRemappingCompatible의 유효한 값은 다음과 같습니다.

의미
0 옵트아웃합니다. 이는 드라이버가 DMA 다시 매핑과 호환되지 않음을 시스템에 나타냅니다.
1 사용합니다. 이는 드라이버가 DMA 다시 매핑과 완전히 호환된다는 것을 시스템에 나타냅니다.
2 옵트인하지만 다음 조건 중 하나 이상이 충족되는 경우에만 A입니다. 디바이스가 외부 디바이스인 경우(예: 썬더볼트); B. 드라이버 검증 도구에서 DMA 확인을 사용하도록 설정한 경우
레지스트리 키 없음 시스템에서 정책을 결정하도록 합니다.

드라이버를 테스트할 때 드라이버 검증 도구를 사용하도록 설정합니다. 드라이버 검증 도구에서 테스트 목적으로 외부 디바이스를 옵트인하기 위한 INF 지시문 값이 1로 승격됩니다.

VT-d/AMD-Vi를 사용하도록 설정된 최신 Windows 10 빌드를 사용하여 Intel x64 및 AMD64 시스템에서 드라이버 기능을 테스트합니다.

경고

그래픽 디바이스 드라이버에는 DMA 다시 매핑이 지원되지 않습니다.

버전 3에 대한 지원은 Windows 11 사용할 수 있습니다. Windows 10 INF에서 3을 지정하면 시스템은 2 값으로 돌아갑니다.

특정 디바이스 드라이버에 대해 DMA 다시 매핑이 사용하도록 설정되어 있는지 유효성 검사 instance

특정 드라이버가 DMA 다시 매핑을 옵트인한 경우 검사 디바이스의 세부 정보 탭에서 DMA 다시 매핑 정책 속성에 해당하는 값을 장치 관리자 확인합니다. 드라이버는 DEVPKEY_Device_DmaRemappingPolicy 속성을 쿼리하여 디바이스의 DMA 다시 매핑 기능을 확인할 수 있습니다. 해당 페이지에서 잠재적 반환 값을 확인하고 이러한 반환 값은 이전 섹션에 나열된 DmaRemappingCompatible 의 값과 동일하지 않습니다.

세부 정보 탭을 장치 관리자.

참고

Windows 10 버전 1803 및 1809의 경우 장치 관리자 속성 필드는 GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]을 사용합니다.