Sources文件
为指明创建设备驱动程序的详细信息,开发人员必须在驱动程序源文件所在的每一个子目录中都建立一个sources文件,且应遵循如下规则:
1、 文件名必须是sources,没有扩展名。
2、 文件内容由能够被BUILD工具所知别的宏定义组成,其定义格式如下:
MACRONAME=MacroValue
其中,“MacroValue”是一个字符型字符串,BUILD工具将使用该字符串带起宏名“MACRONAME”。
3、 当“MacroValue”字符串的值多于一行时,必须使用反斜线“/”作为续行符。
4、 必须保证“MACRONAME”和“=”之间没有空格,但“=”和“MacroValue”之间可以含有空格。
5、 注释语句必须以“#”字符开始。
sources文件中包含的只是简单的文本,其不能处理任何条件语句。下面列出了在开发USB设备驱动程序时常用的一些BUILD宏。
1、 TATGETNAME
指明BUILD工具所创建文件的文件名(不包含扩展名)。对于USB设备驱动程序,就是其可执行的文件名,且不包含扩展名。
2、TARGETPATH
指明BUILD工具所创建文件的存放目录。对于USB设备驱动程序,就是其可执行文件的存放目录。BUILD工具还会在该目录下创建一些其所需的子目录。
对于Windows 98,BUILD工具总是在包含sources文件的目录中建立一个“/obj”子目录,以存放其创建过程中的目标文件按。对于USB设备驱动程序,该宏定义的值通常为OBJ,这时起可执行文件的自由版本将被存放在“obj/i386/free”目录中,其检查版本将被存放在“obj/i386/checked”目录中。
对于Windows 2000,BUILD工具将分开保存自由版本的文件。当该宏定义的值为OBJ时,USB设备驱动程序自由版本的目标文件和可执行文件将被存放在objfree/i386目录中,其检查版本的各个文件将被存放在objchk/i386目录中。
2、 TARGETTYPE
指明BUILD工具所创建文件的类型及其对应的扩展名,取值情况见下表。
值 | 说明 | 扩展名 |
PROGRAM | 用户模式程序 | .exe |
PROGLIB | 可为其他程序提供输出函数的可执行程序 | .exe |
DYNLINK | 动态链接库文件(DLL) | .dll |
LIBRARY | 包含连接代码的输入库文件 | .lib |
DRIVER_LIBRARY | 专用于驱动程序的输入库文件 | .lib |
DRIVER | 内核模式驱动程序 | .sys |
EXPORT_DRIVER | 可为其它驱动程序提供输出函数的内核模式驱动程序 | .sys |
HAL | 硬件驱动层 | .dll |
BOOTPGM | 内核模式驱动程序 | .exe |
MINIPORT | 不与ntoskml.lib或hal.lib连接的内核模式驱动程序 | .sys |
GDI_DRIVER | 与win2k.sys连接的内核模式图形驱动程序 | .dll |
USB设备驱动程序是内核模式的WDM驱动程序,其TARGETTYPE的取值应该为DRIVERUnload,其可执行文件的扩展名为.sys。