微软修复了误触发的 PopCnt 阻止程序

微信扫一扫,分享到朋友圈

微软修复了误触发的 PopCnt 阻止程序

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

微软修复了误触发的 PopCnt 阻止程序插图

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

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

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

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

Visual Studio 2022 的最新版本(17.9.1 版)修复了这个问题和其他一些错误。完整的更新日志如下:

此次发布的 Visual Studio 2022 17.9.1 版新增内容概要

  • 为在 VS 17.9 中使用 16.11 C++ 工具集的客户将 16.11 MSVC 工具集更新到 16.11.34 (14.29.30154.0)。
  • 修正了一个 Bug,即静态链接时使用的 libconcrt.lib 可能包含 SSE 4.2 指令,而该指令在旧版 X64 系统上是非法的。
  • 通过 /clr,为 C++20 添加了 char8_t 作为内置类型的支持。

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

上一篇

新专利显示 Apple Pencil 或将采用模块化

下一篇

Windows Insider Program Beta 频道用户本周无法获得更新

你也可能喜欢

评论已经被关闭。

插入图片

排行榜

返回顶部