Win32在现代Windows体系结构中扮演什么角色?

Win32在现代Windows体系结构中扮演什么角色?,windows,winapi,Windows,Winapi,在微软构建大会上,我看到了这个数字 我想知道Win32的位置是否正确。Win32 API在现代Windows体系结构中的作用和地位是什么 我对Win32 API的概念是所有现代Windows体系结构的一种组装。Win32 API(或DDK)将“Windows内核服务”连接到其他技术 我认为InternetExplorer/.NET/Silverlight都是基于Win32 API构建的。即使是一款别致的新Metro应用程序,我猜想Win32仍处于最底层。然而,我不知道这个数字 如您所见,IE/.

在微软构建大会上,我看到了这个数字

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

我对Win32 API的概念是所有现代Windows体系结构的一种组装。Win32 API(或DDK)将“Windows内核服务”连接到其他技术

我认为InternetExplorer/.NET/Silverlight都是基于Win32 API构建的。即使是一款别致的新Metro应用程序,我猜想Win32仍处于最底层。然而,我不知道这个数字

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

问题:

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

    虽然最初还有其他子系统(如POSIX)访问
    ntdll.dll
    (“内核服务”网关),而不经过Win32(
    kernel32.dll
    user32.dll
    ),但这些子系统现在都已失效

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

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

    根据,

    下一步,C++ Metro应用程序仍然会加载Win32 DLL,如Keln32和NTDLL。此外,WinRT API调用Win32 DLL–因此它们不是替代品,而是Win32之上的包装器,一种API风格。(历史注释:Windows以前有一个称为“环境子系统”的功能,可以粗略地描述为API风格。WinRT不是一个环境子系统–它是Win32环境子系统之上的一个库。)

    该图(大概)是正确的,但仅适用于Windows 8。Windows 8的体系结构与以前的版本有很大不同


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

    +1;目前在没有Win32的Windows上,您甚至无法创建窗口(您可以仅使用DirectX绘制,但它不会像其他窗口那样成为窗口)。我不知道WinRT,但IE和.NET Framework肯定使用了很多Win32 API(而不仅仅是ntdll)。图表没有错,它只是不适用于Windows 8之前的Windows版本。@Harry:我相信作者对展示Win32子系统与其他所有事物的关系并不感兴趣,但我不相信IE是直接建立在本机界面上的。我相信是在.NET中重写的,但不是现在的图表。哦,我明白你的意思了。不,图表的这一部分可能不完整——毕竟,这是实现细节,对开发人员来说并不重要。谢谢!我完全同意你的看法。但是,这篇文章()也让我感到困惑。它声称WinRT取代了Win32。我仍然非常怀疑Windows 6.2版是否能做出如此重大的改变。