现在请打开记事本(或者读者喜欢的任何工具)来创建一个文件,我们把这个文件命名为first.c,以表示这是我们编写的第一个内核编程文件。在进行内核编程时,读者必须打开WDK的帮助。在WDK安装之后,单击“开始”菜单→“所有程序”,会发现增加了“Windows Driver Kits”和“Windows Driver Kits Documentation”两个子菜单。(注:最新版本这两个菜单已经合并为一个。) 选择“Windows Driver Kits Documentation”下面的子菜单来打开帮助。在使用任何一个函数之前,请在帮助里查询这个函数是否存在、使用的环境要求及输入/输出。 因为这不是应用程序编程,所以所有的Win32 API函数都不能使用;部分C Runtime函数也不能使用,但是文档中说明的函数则都可以使用。本书将在文档中有说明的且在内核下调用的System Routine称为内核API函数,以便和Win32 API函数区分。 我们编写first.c内容如下: 上面的DriverEntry是每个内核模块的入口,在加载这个模块时被系统进程System调用一次。在其中我们设置了DriverUnload的函数指针,这样这个模块可以被动态地卸载(这将方便我们调试程序);如果没有设置DriverUnload函数指针,则一个内核模块一旦被加载就不能卸载了。现在请先建立新目录first,然后把first.c文件保存在此目录下,下面我们就介绍编译的方法。