内核DMA保护已启用需通过四种方式验证:一、msinfo32中查看“内核DMA保护”值为“启用”;二、PowerShell中KernelDMAProtectionEnabled为True;三、Windows安全中心“设备安全性”页显示“已启用”;四、注册表中KernelDMAProtection路径下Enabled=1且IOMMU相关键值已启用。

如果您尝试确认 Windows 11 系统是否已启用内核 DMA 保护以防范 Thunderbolt 等 PCIe 热插拔接口的 DMA 攻击,则需通过系统内置工具验证其当前状态。以下是验证此安全功能是否启用的具体步骤:
一、使用系统信息工具(msinfo32)验证
该方法利用 Windows 自带的系统信息实用程序直接读取内核 DMA 保护的启用状态,无需第三方软件,结果准确可靠。
1、按下 Win 键 + R 打开“运行”对话框。
2、在输入框中键入 msinfo32,然后按回车键。
3、在打开的“系统信息”窗口中,向下滚动至“项目”列表末尾附近,查找名为 内核 DMA 保护 的条目。
4、若其对应“值”显示为 启用,则表示该防护已激活;若显示为 关闭 或未列出该项,则说明尚未启用。
二、通过 PowerShell 查询 Device Guard 状态
该方式通过检查底层 Device Guard 组件的运行时配置,间接反映内核 DMA 保护是否就绪,尤其适用于组策略或 MDM 管理环境下的批量核查。
1、以管理员身份启动 Windows PowerShell 或 终端(Terminal)。
2、执行以下命令:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
3、在返回结果中,检查 VirtualizationBasedSecurityStatus 字段值:若为 3(Running),且 KernelDMAProtectionAvailable 为 True,KernelDMAProtectionEnabled 为 True,即确认启用。
三、检查 Windows 安全中心设备安全性页
该路径提供图形化界面反馈,可同步确认与内核 DMA 保护强相关的其他安全组件(如内存完整性、基于虚拟化的安全性)是否协同启用,避免因依赖项缺失导致防护失效。
1、打开 设置 > 隐私与安全 > Windows 安全中心。
2、点击 设备安全性 选项卡。
3、在“核心隔离”区域下方,查找 内核 DMA 保护 开关及其状态提示文字。
4、若开关呈灰色不可调且标注“已启用”,或显示绿色对勾图标及“已启用”字样,则表明该功能处于活动状态。
四、通过注册表键值确认 IOMMU 启用状态
内核 DMA 保护依赖硬件级 IOMMU(Intel VT-d 或 AMD-Vi)支持,注册表中对应键值可反映 BIOS 层面的启用情况,是判断底层能力是否就绪的关键依据。
1、按下 Win 键 + R,输入 regedit 并回车,打开注册表编辑器。
2、导航至路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity。
3、查看右侧窗格中 Enabled 和 Locked 两个 DWORD 值:若 Enabled = 1 且 Locked = 1,说明 IOMMU 已被系统识别并锁定启用。
4、同时检查路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KernelDMAProtection 下的 Enabled 值是否为 1。










