Native API函数介绍
2021-07-01
431
3
无论NTDLL是否只属于Win32子系统,还是通常说是内核支持所有子系统的用户模式界面,Native API无疑地处于与内核模式边界的用户模式一侧。内核模式中的最高级别功能也是用户模式下的最低级别功能。此功能有时称为Native API。在微软的设备驱动程序编程文档中,它的功能被描述为本机系统服务,有时也被称为系统调用。
从3.51版(以前没有明确指出)开始,内核已经允许多个不同的系统服务集:在windows2003sp1的构建中,从5.2版开始,内核允许使用多个不同的系统服务集。第一组是本地的。第二个支持与WIN32K.SYS的用户模式通信,这当然很重要,但也肯定不是Native API中的。
WIN32K.SYS主要实现的是windows图形相关的导出函数。
Native API函数通过以Nt或Zw开头的名称来区分。它们在用户模式下从NTDLL导出,在内核模式下从ntskrnl.exe模块(即内核,无论其文件名是什么)导出,但并非所有函数都以两种模式导出或同时使用两个前缀导出。事实上,很多都是在用户模式下导出的,甚至在windows10之前,也就是在第一个32位Windows没有作为MS-DOS程序运行的20年之后,还有更多的只是在用户模式下导出的,直到它们对内核模式编程的有用性(至少对于微软来说),以至于它们也成为了内核模式的输出
NativeAPI的导出函数可以使用Depends.exe查看ntdll.dll导出的函数: