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内核编程之注意事项_第1张图片

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

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

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

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

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

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

     

你可能感兴趣的:(Windows内核编程常见约束)