gpt4 book ai didi

windows - Windows 上的系统调用

转载 作者:可可西里 更新时间:2023-11-01 12:32:18 24 4
gpt4 key购买 nike

我只是想问一下,我知道Linux中的标准系统调用是通过指向中断向量表的int指令完成的。我认为这在 Windows 上是类似的。但是,如何调用一些更高层次的特定系统例程呢?比如你怎么告诉Windows创建一个窗口?我知道这是由 dll 中的代码处理的,但在汇编指令级别实际发生了什么? dll 中的例程是否通过 int 指令调用软件中断,或者是否有任何不同的方法来处理这个问题?谢谢。

最佳答案

进行 Win32 调用以创建窗口与中断无关。客户端应用程序已与提供调用的 .dll 链接,该调用公开了供链接器使用的地址。由于您询问的是调用机制的差异,因此我将此处的讨论限制在可用于任何应用程序的那些 Win32 调用,而不是内核级调用或设备驱动程序。在汇编语言级别,它与任何其他函数调用相同,因为大多数 Win32 调用都是用户级调用,它们在内部进行所需的内核调用。链接器提供 Win32 函数的地址作为某种分支指令的目标,具体取决于编译器。

[编辑]看起来你对中断和 int 的看法是正确的。矢量表。 CodeGuru 有一篇关于 NT 内核调用如何工作的操作系统详细信息的好文章。链接:
http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035

关于windows - Windows 上的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com