首页
社区
课程
招聘
[求助]驱动!
发表于: 2009-8-4 15:27 4030

[求助]驱动!

2009-8-4 15:27
4030
两个问题

1. NTDDK.h里面声明的函数的实现,是不是在ntoskrnl.exe里?NTDLL里面是绝对不可能有把?

2. ntoskrnl.exe导出函数的原型和NTDLL里面的对应函数原型是一样的吗??有没有ntoskrnl.exe里面导出函数的介绍?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 179
活跃值: (26)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
ntdll中的函数是用户的接口,是给ring 3的程序调用的,好像有比较严格的参数检查,最后的实现好像也是在ntoskrnl中。因为是ring 3的接口,所以NTDDK.h中应该没有。
ntoskrnl中的函数是内核的服务函数,是给ring 0程序用的,没有严格的参数检查,所以用起来要格外小心。
ntoskrnl中导出函数的原型DDK帮助文档中就有啊,至于NTDLL中的函数微软好像不推荐使用,MSDN和DDK文档中都没有找到相关资料。
2009-8-5 12:54
0
雪    币: 179
活跃值: (26)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
这是从书里面抄的:

I/O管理器和WIN2000其它的内核模式部分提供大量的供驱动程序调用的函数。DDK文文件描述了这些函数。现在,指出WIN2000支持的例程种类已经足够。如表5.1所示:

Executive
存储器分配,互锁队列区域,监控列表,系统工作者线程
ExXxx()

HAL
设备寄存器,总线访问
HalXxx()

I/O Manager
普通驱动程序支持
IoXxx()

Kernel
DPC,同步
KeXxx()

Memory Manager
虚拟存储器到物理存储器的映 射,存储器分配
MmXxx()

Object Manager
句柄管理
ObXxx()

Process Manager
系统线程管理
PsXxx()

Runtime library
字符串操作,大整数运算,寄存器访问,安全性函数,时间和日期函数,队列和列表支持
RtlXxx() (大部分的例程)

Security Monitor
特权检查,安全描述符函数
SeXxx()

(Miscellaneous)
内部系统服务
ZwXxx()

  ZwXxx函数需要更多的说明。它们实际上是为所有的NtXxx用户模式系统服务的内部调用接口。用户模式和内核模式接口时不同的,ZwXxx函数不执行任何参数校验。虽然这样的函数有很多,DDK文件仅仅描述很少一部分。使用无正式文件的函数是一个冒险,因为微软在未来可能改变或者删除这些函数。
2009-8-5 13:00
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
恩,这个问题我已经知道答案了,不过 还是谢谢你的回复
2009-8-6 11:25
0
游客
登录 | 注册 方可回帖
返回
//