初窥Windows内核——学习Windows Research Kernel手记(二)

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

STEP 1——编写一个最简单的系统调用

最简单的系统调用当然是调了它之后什么都不干了,但是我还是决定让它干一件很是经典的事情,想调试器输出一条语句“Hello World!”。几乎每种编程技术的开始都有由一个名为“HelloWorld”的程序开始,我不想破坏这一传统。

下面我们就来一步步完成这个系统调用。完成这个系统掉用共需要修改2个内核文件,并要编写一个用户程序来调用这个系统调用。

首先要修改的就是系统服务表。系统服务表位于base/ntos/ke/i386/中,名为systable.asm

打开这个文件,可以很容易的找到一大长串以TABLE_ENTRY开头的项目,这里每一个TABLE_ENTRY就代表一个系统调用,最后还有一个项是  TABLE_END 295,这表示一共有296个系统调用(从0开始计算)。我们呢,就在列表的最后加上一项,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值