微软修复了误触发的PopCnt阻止程序 但Windows 11 24H2可能会继续要求

2024年02月23日 15:46 次阅读 稿源:cnBeta.COM 条评论

在过去的几周里,互联网上一直在热议 Windows 11 24H2 系统要求可能即将发生的变化,其中微软似乎希望在下一版 Windows 11(24H2 版)中强制使用基于 SSE 4.2 的指令 PopCnt。这意味着较旧的CPU无法启动Canary build 25905,并且此前对验证机制绕行的做法也不起作用。

B4a76fd5e5fb742758ad94917bdb6ef66638360642946221753_20231120-170456-image.png

虽然当时还不知道,PopCnt 似乎也是导致 Windows 10 上的微软应用商店应用程序被破坏的罪魁祸首,比如旧处理器无法在这些系统上启动,往往会导致"文件系统错误(-2147219196)"。

微软工程师 Mahmoud G Saleh(他是 MSVC(Microsoft Visual C++)的首席软件工程经理)后来证实,该问题与一个存在漏洞的 Visual C++ 库(VCLibs)软件包有关。他们写道:

Visual C++ 团队已确认该问题是照片应用程序和其他应用程序所依赖的 vclibs 框架包中的一个回归。该问题会影响使用较旧硬件(不支持 SSE 4.2 指令)的计算机。微软目前正在验证解决方案,预计将很快向受影响的客户推出。

早在去年 11 月,Masahiro Takegami 就发现了英特尔酷睿 2 Quad Q6600 上与 PopCnt 相关的错误。这个问题似乎是在 Visual Studio 17.8.0 更新版本中出现的。

cdaff931-4ed0-4f00-aef3-b0612d8fff72.png

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可能包含一条 SSE 4.2 指令,而该指令在旧版 X64 系统上是非法的。

  • 已添加对 char8_t 的支持,将其作为使用 /clr 的 C++20 的内置类型。

虽然这应该能解决 VS 代码问题以及应用程序无法在旧处理器上运行的问题,但旧芯片似乎依然不太可能在 Windows 11 24H2 上运行。当用户试图在此类系统上安装 24H2 版本时,Windows 11 版本的设置文件显然已经开始显示"此 PC 的处理器不支持关键功能 (PopCnt)"的信息。该信息表明,微软可能有意识地引入了这一变化。

对文章打分

微软修复了误触发的PopCnt阻止程序 但Windows 11 24H2可能会继续要求

1 (50%)
已有 条意见

    最新资讯

    加载中...

    编辑精选

    加载中...

    热门评论

      Top 10

      招聘

      created by ceallan