`
chinamming
  • 浏览: 141318 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

理解 Windows API 调用过程

 
阅读更多
我们在应用层调用一个Win32 API, 系统内部究竟是如何执行的, 它是如何从用户态进入到内核态的呢 ?



对于每层一些概念的解释,这里不详述了,具体可以参考理解Windows内核模式与用户模式.

以Kernel32里的CreateProcess 为例, 内部会调用ntdll.dll里导出的NtCreateProcess,ntdll.dll通过一个中断请求int 2Eh(Sysenter)进入内核态, 在内核的Executive Service Routines 层, 内部保存着一张表“SSDT”(System Service Descriptor Table,系统服务描述符表), 通过该表找到该API在执行体 (Executive)(ntoskrnl.exe)中导出函数的位置,最终调用系统功能。

下面是另外一张《Windows图形编程》中提到的系统架构图, 我们也可以参考一下:


下面这张《Inside Microsoft Windows 2000》的架构图, 基本上都大同小异:



最后, 总结一下, 微软在Intel处理器上开发Windows操作系统, 我们在Windows操作系统上开发应用程序,无非是一层层的封装, 其实具体到细节, 每层都没有太多神秘的东西。我们当然不可能掌握每层的细节, 只能理解每层的概念, 以帮助我们在应用层更好的开发。
分享到:
评论

相关推荐

    新编Windows API参考大全.doc

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,...

    WindowsAPI参考手册

    学习Win32 API 能更深刻的理解MFC 的运作机制,同时使用Win32 API 函数编程要比使用MFC 更灵活, 能编写出更加高效的程序。Microsoft Win32 API 也可以在VB 和Delphi 等语言中使用。 Microsoft Win32 API 函数按照...

    Malware Detection using Windows Api Sequence and Machine Learning

    基于windows API 调用序列和机器学习的恶意软件检测方法的论文,包括全英论文,标记,和自己学习中理解的小记录。

    Malware Detection using Windows Api Sequence and Machine Learning 2

    基于windows API 调用序列和机器学习的恶意软件检测方法的论文,包括全英论文,标记,和自己学习中理解的小记录

    新编Windows API参考大全

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很...

    新编 Windows API参考大全

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 <br/> 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,...

    新编Windows_API_参考大全

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很少...

    windowsnt 技术内幕

    使用紧急恢复盘(ERD) 介绍LastKnownGood配置 理解Windows NT如何创建LastKnownGood配置 理解在Windows NT中的远程过程调用 使用NET Accounts命令 使用Net Computer命令 使用Net Config Server或...

    新编Win32API大全

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内...

    win32api大全最全

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内...

    JSP API接口和返回的版本

    JS JSP ASP .NET J2AM API接口和返回的版本 目前所有版本的JS JSP ASP .NET J2AM 都是提供源代码的,对于一些脚本语言来说,直接解压缩之后就可以使用了,不需要什么安装步骤。另外一些需要编译的语言,则提供了编译...

    Win32 API大全 收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visua

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内...

    VC基于Windows API实现屏幕软键盘

    内容索引:VC/C++源码,系统相关,软键盘 基于Windows API实现的屏幕软键盘,一个比较有用的小程序,也是很好的编程参考资料,帮你更进一步了理解Windows API的使用方法。程序里面有Button的Subclassing两个东西,同时...

    win32api新编大全CHM

    只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。 近年来,随着Microsoft 32位平台的版本升级, Win32 API函数的构成、功能与调用方式都有很大的发展变化,然而,国内很...

    Win32 API 大全

    从事Windows应用程序开发,离不开对Win32 API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。

    C#自动化测试工具编写(借助API)UI自动化demo,已验证可用【非常好的例子,便于理解】

    在日常编码过程中,我们常常会进行自动化测试。这里的自动化测试不是指单元测试,而是模拟人工输入来进行快速的、高并发的测试。...所以,比较高效的一个做法是,调用WINDOWS API,自己动手写编码来实现。

    window32 API大全 win32编程

    Win32 API作为 Microsoft 32位平台(包括:Windows 9x,Windows NT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。...

    深入解析Windows操作系统中文.part2.rar

    全书内容丰富、信息全面,主要包括的Windows操作系统深度知识有:理解Windows的关键机制,包括系统服务分发和调度机制、启动和停机,以及注册表;挖掘Windows的安全模型,包括访问控制、特权和审计;利用内核调试器...

    Excel专业开发(第2版).随书案例的源代码含vsto vb.net 的章节

    第12章 理解和使用Windows API调用 第13章 用户窗体设计与范例 第14章 接口 第15章 VBA错误处理 第16章 VBA调试 第17章 优化VBA的性能 第18章 数据库开发简介 第19章 Access和SQL Sever数据库编程 第20章 数据处理...

    Windows 内核情景分析--采用开源代码ReactOS (上册) part01

    全书从“内存管理”、“进程”、“进程间通信”、“设备驱动”等多个方面进行分析介绍,所有的分析都有ReactOS的源代码(以及部分由微软公开的源代码)作为依据,使读者能深入理解Windows内核的方方面面,也可以使...

Global site tag (gtag.js) - Google Analytics