STEP 1——编写一个最简单的系统调用
最简单的系统调用当然是调了它之后什么都不干了,但是我还是决定让它干一件很是经典的事情,想调试器输出一条语句“Hello World!”。几乎每种编程技术的开始都有由一个名为“HelloWorld”的程序开始,我不想破坏这一传统。
下面我们就来一步步完成这个系统调用。完成这个系统掉用共需要修改2个内核文件,并要编写一个用户程序来调用这个系统调用。
首先要修改的就是系统服务表。系统服务表位于base/ntos/ke/i386/中,名为systable.asm。
打开这个文件,可以很容易的找到一大长串以TABLE_ENTRY开头的项目,这里每一个TABLE_ENTRY就代表一个系统调用,最后还有一个项是 TABLE_END 295,这表示一共有296个系统调用(从0开始计算)。我们呢,就在列表的最后加上一项,

本文介绍了如何在Windows Research Kernel中添加一个简单的系统调用,该调用用于输出“Hello World!”信息。首先修改系统服务表systable.asm,在末尾增加新的系统调用项。然后在base/ntos/ps/psctx.c中添加相应的系统调用函数。系统调用函数使用DbgPrint打印消息,并返回STATUS_SUCCESS。最后,编写一个VC6.0的控制台程序,使用汇编代码调用新添加的系统调用,并在虚拟机中运行验证其功能。
最低0.47元/天 解锁文章
8878

被折叠的 条评论
为什么被折叠?



