Win32在现代Windows架构中的作用是什么?

时间:2011-09-15 19:02:44

标签: windows winapi

在Microsoft BUILD会议上,我看到了这个数字。

我想知道Win32的位置是否正确。 Win32 API在现代Windows架构中的作用和地位是什么?

我的Win32 API概念是所有现代Windows体系结构的一种组合。 Win32 API(或DDK)将“Windows内核服务”与其他技术联系起来。

我认为Internet Explorer / .NET / Silverlight都是在 Win32 API上构建。即使是一个花哨的新Metro应用程序,我猜想Win32处于最底层。然而,这个数字违背了我的知识。

如您所见,IE / .NET / SL / Metro与Win32水平放置。

问题:

  1. 这个数字是否一定意味着Win32 不是所有其他现代技术的框架?
  2. 什么是“Windows内核服务”?程序员如何访问它们?是不是通过Win32 API和DDK?
  3. Windows 8 Platform

2 个答案:

答案 0 :(得分:6)

图表错了。

虽然最初有其他子系统(例如POSIX)访问ntdll.dll(“内核服务”网关)而没有经过Win32(kernel32.dlluser32.dll),但这些子系统现已全部解散

Windows的所有现代应用程序框架都是基于Win32构建的。不再支持其他子系统。在某些情况下(驱动程序和启动时系统实用程序,如chkdsk)代码是直接针对本机API编写的,但这些情况非常罕见。

我对WinRT不太熟悉,但我认为Win32也适合它(或者它可能使用Win32和直接ntdll.dll服务的组合)。

根据Sasha Goldshtein

  

接下来,C ++ Metro应用程序仍将加载Win32 DLL,例如kernel32和ntdll。此外,WinRT API调用Win32 DLL - 因此它们不是替代品,而是Win32之上的包装器,API风格。 (历史记录:Windows曾经有一个名为“环境子系统”的功能,可以粗略地描述为API风格.WinRT不是环境子系统 - 它是Win32环境子系统之上的库。)

答案 1 :(得分:0)

该图(大概)是正确的,但仅适用于Windows 8.Windows 8的架构与以前的版本有明显不同。

我相信应用程序可以直接向内核发出请求,但接口大部分都没有记录。设备驱动程序直接使用内核。