Windows内核编程之注意事项

      我们知道,在C语言中,入口函数是main。其实在main函数之前,系统还调用了其他的函数。而内核中的入口函数是DriverEntry。其原型如下:

DRIVER_INITIALIZE DriverEntry;

NTSTATUS DriverEntry(
  _In_ struct _DRIVER_OBJECT *DriverObject,
  _In_ PUNICODE_STRING       RegistryPath
)
{ ... }
    在内核程序被加载的时候,这个函数被调用。比如,我的机器环境是Windows8.1,那么 加载该函数的进程是名为:System,而对应的PID 为:4。查看这个很简单的,方法如下:

 打开 “任务管理器” ,即可查看到:

     好吧,又说了一堆废话偷笑偷笑 下面说说内核常见的编程规则吧。

     ◆ 不能调用Windows 应用层API函数

     ◆ 绝大部分C标准函数不能使用。在内核中有相应的操作,比如文件操作,不能使用C标准文件操作函数。

     ◆ 比较单纯的C标准函数,如string.h 中字符串处理函数等,可以使用。之前的博文也说过,建议使用内核Rtl系列函数。

     ◆ 可以使用标准c 语言,丹娜丝不能直接用浮点数(特殊情况下,要特殊处理浮点数)。

     ◆ 不要用任何应用层中的方法来分配和释放内存。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值