啟用設備驅動器的 DMA 重新對應
為了確保與 核心 DMA 保護和DMAGuard 原則相容,PCIe 設備驅動器可以加入加入直接記憶體存取 (DMA) 重新對應。
裝置驅動程式的 DMA 重新對應可防範記憶體損毀和惡意 DMA 攻擊,並提供更高層級的裝置相容性。 此外,無論鎖定畫面狀態為何,具有 DMA 重新對應相容驅動程式的裝置都可以啟動和執行 DMA。
在已啟用核心 DMA 保護的系統上,DMAGuard 原則可能會封鎖裝置,使用 DMA 重新對應不相容的驅動程式,連線到 外部/公開 的 PCIe 埠 (,例如 M.2、Expressbolt™) ,視系統管理員所設定的原則值而定。
啟用和加入加入 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 重新對應
若要檢查特定驅動程式是否已選擇加入 DMA 重新對應,請在裝置的 [詳細數據] 索引卷標中查看 裝置管理員,以取得對應至 DMA 重新對應原則屬性的值。 驅動程式可以查詢 DEVPKEY_Device_DmaRemappingPolicy 屬性,以判斷裝置的 DMA 重新對應功能。 請參閱該頁面上的潛在傳回值,並請注意,這些傳回值與上一節所列 的 DmaRemappingCompatible 值不同。
注意
對於 Windows 10 版本 1803 和 1809,裝置管理員 中的屬性欄位會使用 GUID {83da6326-97a6-4088-9453-a1923f573b29}[18]
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應