为什么Windows中64位进程下会启动32位进程?

为什么Windows中64位进程下会启动32位进程?

当我在 Windows 7 64 位系统中运行 32 位程序时,通常会启动一个 64 位进程,而其下有一个 32 位进程。例如,如果我从 C:\Program Files (x86)\Internet Explorer 启动 iexplorer.exe (Internet Explorer),它会启动一个 64 位进程,而其下有一个 32 位进程。

A

这可以在进程资源管理器和任务管理器中看到。

b

这是为什么?这是怎么回事?另外,如果我转到 C:\Program Files\Internet Explorer 并从那里启动 iexplorer.exe,同样,会同时启动 64 位和 32 位进程。此文件夹中的可执行文件应该启动该程序的 64 位版本。

答案1

如果 64 位应用程序需要(或认为可能需要)与 32 位应用程序、模块或进程交互,它将生成一个 32 位进程来管理该交互。

就 IE 而言,正如@and31415 的评论中所提到的,它需要与附加组件(例如 Flash、ActiveX 等)以及可能需要的其他应用程序进行交互,具体取决于您浏览的内容。

答案2

Internet Explorer(从 Windows Vista 上的版本 7 开始)、Chrome 和 Firefox 为每个选项卡使用单独的进程。Internet Explorer 将此称为“保护模式”

您有主浏览器进程,它处理主框架 UI 以及所有网络和磁盘访问。然后每个选项卡在单独的低完整性级别进程(您可以在进程资源管理器中看到)。

  • 浏览器(中等强制完整性等级)
    • 浏览器(低强制完整性等级)
    • 浏览器(低强制完整性等级)
    • 浏览器(低强制完整性等级)

标有低的完整性级别他们能做的事情非常有限。

这就是为什么您会看到 iexplore、chrome 和 Firefox 的多个进程。

相关内容