微軟修復了失敗的 PopCnt 區塊,但 Windows 11 24H2 要求可能會繼續存在

微軟修復了失敗的 PopCnt 區塊,但 Windows 11 24H2 要求可能會繼續存在

在過去的幾周里,互聯網上一直在討論 Windows 11 24H2 系統要求可能即將發生的變化,其中微軟似乎希望在下一版本的 Windows 11 中強制使用基於 SSE 4.2 的 PopCnt 指令,版本 24H2。這意味著較舊的 CPU無法啟動 Canary build 25905,並且繞過(例如使用單一命令技巧的繞過)也不起作用。

儘管當時還不知道,PopCnt 似乎也是Windows 10 上Microsoft Store 應用程式損壞的罪魁禍首,導致舊處理器無法在這些系統上啟動,通常會導致「檔案系統錯誤 (-2147219196)」。

Microsoft 工程師 Mahmoud G Saleh 是 MSVC (Microsoft Visual C++) 的首席軟體工程經理,後來證實該問題與有缺陷的 Visual C++ Libraries (VCLibs) 套件有關。他們

您好,Visual C++ 團隊已將該問題確定為照片應用程式和其他應用程式所依賴的 vclibs 框架包中的迴歸。此問題影響硬體較舊(不支援 SSE 4.2 指令)的電腦。 Microsoft 目前正在努力驗證解決方案,預計很快就會向受影響的客戶推出。

提出這個問題的功勞是Masahiro Takegami,他在去年 11 月就注意到了他們的 Intel Core 2 Quad Q6600 上存在與 PopCnt 相關的錯誤。這個問題似乎是由 Visual Studio 更新版本 17.8.0 引入的。

Visual Studio 2022 的最新版本(版本 17.9.1)修復了此問題以及其他一些錯誤。完整的變更日誌如下:

Visual Studio 2022 版本 17.9.1 此版本的新增功能摘要

  • 對於將 16.11 C++ 工具集與 VS 17.9 結合使用的客戶,將 16.11 MSVC 工具集更新至 16.11.34 (14.29.30154.0)。
  • 修正了靜態連結時使用的 libconcrt.lib 可能包含在較舊的 X64 系統上非法的 SSE 4.2 指令的錯誤。
  • 透過 /clr 新增了對 char8_t 作為 C++20 內建類型的支援。

雖然這應該可以解決 VS Code 問題以及應用程式在舊處理器上無法運行的問題,但舊晶片似乎不太可能在 Windows 11 24H2 上運行。當使用者嘗試在此類系統上安裝版本 24H2 時,Windows 11 版本的安裝檔案顯然已開始顯示「此電腦的處理器不支援關鍵功能 (PopCnt) 」訊息。該消息表明微軟可能有意識地引入了這項變化。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *