受管理程式保護的程式碼完整性啟用

受管理程式保護的程式碼完整性 (HVCI) 是 Windows 提供的虛擬化安全性 (VBS) 功能。 在 [Windows 裝置安全性設定] 中,HVCI 稱為「記憶體完整性」。

HVCI 和 VBS 改進了 Windows 的威脅模型,並提供更強的保護,避免惡意程式碼嘗試利用 Windows 核心。 VBS 會利用 Windows 的虛擬程式來建立隔離的虛擬環境,以成為假設核心可能會遭到入侵的 OS 的根信任。 HVCI 是一個重要的元件,它會藉由在其中執行核心模式程式碼完整性,以及限制可用來危害系統的核心記憶體配置,來保護及強化此虛擬環境。

如需這些保護的詳細資訊,請參閱 虛擬化安全性系統資源保護

預設啟用

從 Windows 11 開始,相容系統上的新安裝預設會記憶體完整性開啟。 這會變更 Windows 中功能的預設狀態,不過裝置製造商和一般使用者對於功能是否已啟用的最終控制權。

自動啟用的硬體功能

當電腦包含下列最低硬體功能時,預設會開啟的記憶體完整性:

元件 詳細資料
處理器
  • Intel 第11代核心處理器和更新版本
  • AMD Zen 2 架構和更新版本
  • Qualcomm Snapdragon 8180 和更新版本
RAM 最小8GB
儲存體 最小大小為64GB 的 SSD
驅動程式 必須安裝與 HVCI 相容的驅動程式。 如需驅動程式的詳細資訊,請參閱 受管理程式保護的程式碼完整性 (HVCI)
BIOS 必須啟用虛擬化

如果您要建立的映射不會自動啟用記憶體完整性,您仍然可以設定映射,使其預設為開啟。

注意

自動啟用僅適用于全新安裝,而非現有裝置的升級。

注意

中國與韓國市場會被排除,以避免出現防問題的相容性問題。

注意

目前的預設啟用邏輯中不包含 Intel 11 代核心桌面處理器。 不過,它們是建議的 HVCI 平臺,而且可以讓 OEM 啟用 HVCI。

HVCI 和 VBS 控制項

本節列舉裝置製造商與終端使用者如何與 HVCI 和 VBS 互動。 若要瞭解如何以系統管理員身分控制 HVCI 狀態,請參閱使用群組原則啟用 HVCI

開啟記憶體完整性

Windows 預設會針對符合特定硬體需求的系統開啟記憶體完整性。 如果您的硬體未包含 Windows 的硬體組合來自動開啟記憶體完整性,您可以在映射中設定登錄機碼,選擇在映射中啟用它。

使用者也可以使用 Windows 安全性應用程式中的 [核心隔離] 頁面,手動啟用記憶體完整性。

在您的映射中設定下列兩個登錄機碼,此設定會以作業系統預設啟用邏輯的相同方式開啟核心模式中的記憶體完整性。

登錄機碼
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled = 1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy = 1

WasEnabledBy登錄機碼控制可預防無法開機裝置的設定。 設定時,如果系統在開機期間損毀,裝置會自動關閉 HVCI,可能是因為記憶體完整性封鎖了不相容的開機關鍵驅動程式所造成。 這項 autodisable 功能正在淘汰,但目前是建議的設定。

注意

針對高安全性系統,不應設定 WasEnabledBy

疑難排解

識別 HVCI 狀態

下列 volatile 的 regkey 反映 HVCI 的狀態:

登錄機碼
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

檢查 HVCI 狀態的其他方式,就是查看 虛擬化安全性服務 下的 [MsInfo32],或查看 [核心隔離設定] 頁面,以查看記憶體完整性的價值。

偵測驅動程式問題

檢查程式碼完整性記錄,查看是否有任何驅動程式因為 HVCI 而遭到封鎖而無法載入。 這些都位於下列路徑的事件檢視器中:

Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational

一般而言,HVCI 相容性事件的 EventID = 3087

檢查 HVCI 預設啟用的結果

若要查看 HVCI 預設啟用結果的詳細資料,請檢查 setupact.log 並搜尋 HVCI。 您應該會看到下列其中一個結果記錄,以及導致啟用決策的成功/失敗檢查:

HVCI 已啟用: SYSPRP HVCI: Enabling HVCI

未啟用 HVCI: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

如果裝置透過上述的登錄方法退出宣告 HVCI 啟用,則這會是 HVCI sysprep 的唯一記錄。 如果裝置發生相容性問題,則應該在先前的記錄中識別該裝置,並顯示錯誤訊息:

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

以下是潛在 VBS 相容性問題的列舉。 每個問題都是以位陣列中的單一索引來表示,而錯誤訊息則會輸出每個出現的錯誤位所產生的十六進位值。

注意

您會注意到下表中遺漏了部分索引。 某些相容性需求已變更或淘汰,而且只與舊版的 OS 版本相關,沒有預設啟用邏輯。

位索引 相容性問題
0 不支援的架構 (例如x86)
1 需要 SLAT
3 需要IOMMU
4 需要 MBEC/GMET
5 需要 UEFI
6 需要 UEFI WX Memory Attributes 資料表
7 需要ACPI WSMT 資料表
8 需要UEFI MOR 鎖定
10 需要硬體虛擬化
11 需要安全啟動
13 裝置無法符合64GB 的必要磁片區大小下限
14 需要系統磁片磁碟機 SSD
15 裝置失敗 minum Intel SoC 需求
16 QC SoC 未指定啟用 VBS
17 需要 8GB RAM

錯誤碼和錯誤識別的範例: VBS_COMPAT_ISSUES 0x000000C0

0x000000C0- > 00000000011000000 > 位索引6和7為主動- > UEFI WX 記憶體屬性資料表必要,需要 ACPI WSMT 資料表