内核 DMA 保护是一项 Windows 安全功能,可防止外部硬件设备未经授权访问内存,避免受到DMA攻击;开启这项安全功能的前提是计算机系统已开启CPU的IOMMU(输入/输出内存管理单元) 技术。
可参考:内核 DMA 保护 | Microsoft Learn
1、 按下 Windows 键 + R
2、 输入 msinfo32 并按下回车键(Enter)
3、 启用状态:“内核 DMA 保护:启用”
4、 如果内核 DMA 保护处于 "关闭",请按照下列步骤开启
启用 IOMMU (Intel VT-d、AMD-Vi) 和内核 DMA 保护 一般需要进入 BIOS 中操作。
1、 按下 Windows 键 + R
2、 输入msinfo32 并按下回车键(Enter),查看您的 主板制造商 和 处理器。
查找有关“如何在(主板名称)主板(CPU名称)平台开启 IOMMU (Intel VT-d、AMD-Vi)和DMA Protection”的步骤视频,或访问主板制造商的网站并按照他们的说明进行操作。
例如:如何在华硕主板Intel平台开启 IOMMU (Intel VT-d、AMD-Vi)
可参考:华硕主板BIOS设置中VT虚拟化技术选项怎么开启-百度经验
以下提供部分常见主板开启指南:
INTEL平台
1. 进入BIOS/UEFI
2. 进入Advanced,找到VTd和DMA Protection选项勾选
INTEL平台
1. 进入BIOS/UEFI
2. 进入Security->Virtualization,找到 Intel VT-d Feature 和 Kernel DMA Protection选项勾选
AMD平台:
1. 进入BIOS/UEFI
2. 进入Advanced->AMD_CBS,找到IOMMU,将之后Disabled/Auto更改为Enabled
3. 如果还具备下列选项Advanced\AMD_CBS → NBIO Common options,则
a. 将DMA Protection从Disabled/AUTO更改设定为Enabled
b. 将DMAr Support从Disabled/AUTO更改设定为Enabled
INTEL平台:
1. 进入BIOS/UEFI
2. 进入Advanced → System Agent (SA)Configuration
3. 将VT-d设定为Enabled
4. 将Control IOMMU Pre-boot Behavior设定为Enable IOMMU during boot;若没有Enable IOMMU during boot选项,请选择Enable IOMMU
AMD平台:
1. 进入BIOS/UEFI
2. 进入Overclocking→Advanced CPU Configuration→AMD CBS
3. 在AMD CBS - NBIO Common Options项下,将IOMMU从Disabled/AUTO更改设定为Enabled。
4. 若存在下列选项,也请设定:
将DMA Protection从Disabled/AUTO更改设定为Enabled。
将DMAr Support从Disabled/AUTO更改设定为Enabled。
INTEL平台:
1. 进入BIOS/UEFI
2. 进入Overclocking→CPU Features。
3. 将Intel VT-D Tech设定为Enbaled
4. 将Control IOMMU Pre-boot Behavior设定为Enable IOMMU during boot;若是没有Enable IOMMU during boot选项,请选择Enable IOMMU。
启动成功后显示如下:(仅看红框内容)