一般编译驱动需要3个文件,源文件,makefile文件,和SOURCE文件。
(1)makefile文件
!INCLUDE $(NTMAKEENV)/makefile.def,就一句话,不做特殊设置不用修改
最近编译codeproject上的《driver development part》上的例子,报了error C2220的错误,是说警告级别太高,不过也好弄,再加上一行/MSC_WARNING_LEVEL=/W1就可以顺利通过了。
(2)SOURCE文件
TARGETNAME=example //编译成驱动程序文件的名字
TARGETTYPE=DRIVER //目标类型驱动程序编译
DRIVERTYPE=WDM //驱动程序的类型是WDM驱动程序
TARGETPATH=OBJ //生成的文件存放在OBJ目录中
INCLUDES=$(INCLUDES);../inc //这是需要引入的头文件
SOURCES=entry.c / //源代码
functions.c
一个SOURCE文件基本上上面的这些选项可以全部囊括了,还有比如TARGETLIBS等,根据驱动程序实际需要添加。
(3)INF文件
其实这个文件倒不是必须的,但是比如像一些文件过滤驱动无法通过动态加载,只有使用inf文件静态安装加载。
在INF文件中有很多“节”,节之间的是条目, 节有许多条目,若条目中内容过多,则可以在行末尾写上 /表示另起一行,另外,在INF文件中,“;”后面代表注释。具体的节的编写参考 http://yexin218.javaeye.com/blog/453929。
最近比较郁闷,看些东西总是感觉一些技巧性的文章中知识点很陌生,为此而感到苦恼,暂时先不要被一些花哨的技巧所吸引,这样就本末倒置了,不要太浮躁,把基础打好慢慢来。