大部分的Win32API都是通过NativeAPI实现的,NativeAPI函数一般都是Win32API函数前面加上Nt两个字符

3.4 补充说明
大部分的Win32API都是通过NativeAPI实现的,NativeAPI函数一般都是Win32API函数前面加上Nt两个字符,例如CreateFile函数对应着NtCreateFile函数,这些Nt函数都是在“ntdll.dll”实现的,而多数Win32API都是在“kernel.dll”导出的,也有少部分GDI或窗口相关的函数是在“gdi32.dll”和“user32.dll”导出的。
NativeAPI从用户模式穿越进入到内核模式调用系统服务,这个穿越过程是通过软中断的方式进入的。这个软中断的实现方法在不同版本的Windows实现方式略有不同,在Win2K下是通过“int2eh”实现的,在WinXP是通过“sysenter”指令完成的。
软中断会将NativeAPI的参数和系统服务号的参数一起传进内核模式,不同的Native API会对应不同的系统服务号,这个过程是由SSDT辅助完成的。
系统服务函数一般和NativeAPI具有相同的名字,例如都是NtCreateFile,但它们的实现不同,系统服务调用是在“ntoskrnl.exe”导出的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值