为什么显示控制面板的指针截断 bug 长期未修复?Why has the display control panel pointer truncation bug gone unfixed for so long?
Windows 显示控制面板中存在一个指针截断 bug,长期未得到修复。实际上微软已经开发了修复程序,但由于某些分发或更新机制的限制,该修复未能顺利推送到用户端。这反映了旧版组件在维护和更新分发上面临的系统性挑战。作者指出,虽然问题在代码层面已解决,但用户何时能真正体验到修复仍是未知数。
Raymond Chen
上次,我们推测了那个有缺陷的控制面板扩展是如何截断一个就在它眼前的值的。当我们把分析结果发给供应商时,他们回复说:“你们能检查一下这些崩溃系统上的驱动程序版本号吗?”
当我们检查了所有崩溃系统上的驱动程序版本号时,发现它们类似于“build 314”,而当前的驱动程序版本号类似于“build 2718”。这些用户运行的驱动程序太旧了!供应商早就修复了那个 bug,但用户却没有得到修复。这是怎么回事?
我的推测是,这些用户关闭了 Windows Update,或者以其他方式拒绝升级他们的显卡驱动程序。但我后来了解到我的推测可能是错的。
问题在于这些是显卡驱动程序,这是一类由计算机制造商拥有很大控制权的驱动程序。制造商在对其特定的硬件配置进行自己的验收测试后,才会认证这些驱动程序可以在他们的 PC 上使用。(这些硬件配置可能连显卡供应商自己都不了解。)
这种责任在售后依然存在。计算机制造商仍然负责认证驱动程序更新,大概是通过在他们在实验室维护的参考 PC 上进行测试来完成的。有时,制造商会获得定制版的显卡(亲爱的,这可是区分你产品的好方法),这就是为什么显卡供应商的“驱动程序下载”网站经常警告你在安装驱动程序前先咨询你的计算机制造商。
在实践中,计算机制造商在一年、一年半、最多两年内会勤勉地认证驱动程序。¹ 之后,他们放弃该型号并不再为其认证驱动程序是很常见的事。所有拥有该型号 PC 的客户只能被迫使用制造商停止认证驱动程序时的最新显卡驱动程序。
Microsoft 为许多类硬件维护通用驱动程序,但有意将它们设置为低优先级,以便 PC 制造商提供的驱动程序优先。直接从显卡制造商处接收的显卡驱动程序同样被显卡供应商降低了优先级。计算机制造商认证的驱动程序优先,即使该认证已经严重过时。
¹ 如果他们认证驱动程序的时间长度与计算机保修期的长度存在某种关联,我也不会感到惊讶。
作者
Raymond 参与了 Windows 的发展超过 30 年。2003 年,他创办了一个名为 The Old New Thing 的网站,其受欢迎程度远远超出了他最疯狂的想象,这一发展至今仍让他感到有些发毛。这个网站衍生出了一本书,巧合的是书名也叫《The Old New Thing》(Addison Wesley 2007)。他偶尔会出现在 Windows Dev Docs 的 Twitter 账号上,讲一些毫无用处的故事。
需要完整排版与评论请前往来源站点阅读。