Windows架构

运行Windows操作系统的计算机中的处理器可以在两种不同模式下工作:用户模式和内核模式。
应用程序运行在用户模式下,而操作系统组件运行在内核模式下。

架构

用户进程:由用户执行的程序/应用程序,如记事本、Chrome或Microsoft Word。
子系统DLL:包含用户进程调用的API函数的DLL。例如,kernel32.dll导出CreateFile Windows API(WinAPI)函数,其他常见的子系统DLL包括ntdll.dll、advapi32.dll和user32.dll。
Ntdll.dll:系统范围的DLL,是用户模式中最低的层级。它是一个特殊的DLL,用于实现从用户模式到内核模式的过渡,通常被称为原生API或NTAPI。
执行内核:即Windows内核,它调用内核模式中的其他驱动程序和模块来完成任务。Windows内核部分存储在文件ntoskrnl.exe中,路径为“C:\Windows\System32”。

在这里插入图片描述

流程

下面的图示展示了一个应用程序如何创建文件:
流程从用户应用程序调用CreateFile WinAPI函数开始,该函数存在于kernel32.dll中。kernel32.dll是一个关键的DLL,它向应用程序暴露WinAPI,因此大多数应用程序都会加载它。
接下来,CreateFile调用其等效的NTAPI函数NtCreateFile,该函数通过ntdll.dll提供。
ntdll.dll随后执行一个汇编指令(在x86架构中为sysenter,在x64架构中为syscall),将执行转移到内核模式。
内核的NtCreateFile函数然后会调用内核驱动程序和模块来执行请求的任务。

在这里插入图片描述
但是,应用程序可以直接调用系统调用(即NTDLL函数),而不必通过Windows API。Windows API仅作为原生API的封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值