Microsoft揭开神秘的 G 应用程序的面纱 该应用程序可阻止您关闭

微软为一个名为``G''的奇怪应用提供了解释,该应用由于某种原因一直在阻止Windows 10用户关闭其PC。

神秘的G关闭阻止程序已引起Windows 10用户关注,已有一年多的时间了。看到G错误消息后,有些人感到困惑,但是随后的防病毒扫描并未发现任何恶意软件。此外,它没有显示该应用程序的.exe名称。

微软在10月的20H1分支的Windows 10预览版错误修复列表中部分解释了神秘的G应用程序,该版本将于明年发布。

请参阅:使Windows 10按您想要的方式工作的20条专业技巧(免费PDF)

微软表示,它调查了用户报告,发现了问题并在20H1修复了该问题。它不是由恶意软件引起的,而是由Windows处理GDI +的一个古怪现象引起的,GDI +是最初为Windows 98编写的图形组件。GDI表示Windows图形设备接口。

“我们调查并发现了一个问题,其中与GDI +相关的窗口仅被引用为'G'。我们已修复此问题,因此,今后,它们将被命名为'GDI + Window()',其中将使用GDI +显示应用程序的.exe名称。” Windows Insider团队说。

但是鉴于对G应用程序的投诉数量众多,微软决定向已经在Windows上工作了20多年的微软资深人士Raymond Chen提供更详细的解释。

根据Chen的说法,G仅在Windows中出现是因为一个错误将Unicode文本误解为ANSI,通常仅将其显示为应用程序的第一个字符。

“如果将Unicode消息传递给DefWindowProcA,那么您会发现很多字符串的第一个字符都会被截断,Chen解释说。

编写GDI +库以支持Windows 98,而Windows 98对Unicode的支持有限。在随后的清理过程中,GDI +团队将GDI +重新编译为Unicode组件而不是ANSI组件。

“除了通知窗口过程包含对DefWindowProcA的显式调用。大多数字符集不匹配将由于类型不匹配而被编译器捕获。但是DefWindowProc中的字符集相关性未编码在参数类型中。它隐式包含在您的方式中收到消息。编译器无法检测到这种不匹配。” Chen解释说。

“由于测试通知窗口没有进行任何文本处理,因此这种不匹配也无法通过测试发现。该窗口的标题从'GDI + Hook Window'截断为简单的'G',但是该标题没有任何用处,因此该错误无关紧要。窗口标题永远不会显示给用户。

查看:Windows 10的新Cortana应用程序:不再有笑话,只有电子邮件和日历技能

那么,为什么要阻止某些Windows计算机关闭呢?Chen表示,这与“ 阻止的关机解析器”屏幕有关。

“当程序阻止您退出或关闭时,Windows会查找属于该程序的可见窗口,并使用该窗口在阻止关闭解析器(BSDR)屏幕中表示该窗口。但是,如果该程序没有可见窗口,则BSDR将使用属于该程序的任何窗口,无论该窗口是否可见,有时选择的不可见窗口是名为“ G”的窗口。

“这就是为什么您最终得到一条消息的原因,该消息牵涉到一个名为'G'的神秘程序,该程序阻止了您关机。”

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。