INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件。可以把它看成是Windows系统底下的超强批初理。

INF文件的组成有节(Sections),键(Key)和值(value)三部分。 
关键节有 
[Version]版本描述信息,主要用于版本控制。 
[Strings]字符串信息,用于常量定义。 
[DestinationDirs]定义系统路径信息。 
[SourceDisksNames]指明源盘信息。 
[SourceDisksNames]指明源盘文件名。 
[DefaultInstall]开始执行安装。 

示例:

[Version]<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">版本描述信息,主要用于版本控制。</span>
Signature="$CHICAGO$"
;Signature指定使用此INF文件的操作系统,可以是$Chicage$、$Windows NT$(含有一个空格)、$Windows 95$(含有一个空格)之一,定界符$必不可少,且这些串是不分大小写的。
Class=USB
;Class指定设备的类名,此范例中指定的是USB类。
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
;ClassGuid指定设备注册表的GUID,GUID是一个128位的标识符,DDK头文件DEVGUID.h定义了标准设备类的GUID。
provider=%MSFT%
;Provide标志该INF文件的提供者。msft在string字段提供。这个可以自己修改。
DriverVer=08/05/1999
;DriverVer条目提供整个INF文件的版本信息,在每个Install段中加上DriverVer条目,为驱动程序提供版本信息
[SourceDisksNames]<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">指明源盘信息</span>
1="BulkUsb Installation Disk",,,
;规定源盘为磁盘1,在安装期间,安装程序可以给终端用户显示字符串“BulkUsbInstallation Disk”。
[SourceDisksFiles]
BULKUSB.sys = 1
BULKUSB.inf = 1
;为两个文件建立的条目,这两个文件都在磁盘1中,并且在根目录下。可以在后面加上逗号也可以不加。
[Manufacturer]
%MfgName%=Microsoft
;MfgName制造商。后面是一个用户自定义的段名。
[Microsoft]
%USB/VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev, USB/VID_045E&PID_930A
;制造商的Models段至少标识一个设备,并规定设备的厂商ID(VID)和产品ID(PID)同时引用这个设备INF文件的Install段。
;该段说明了需要的Install段是BULKUSB.Dev,并且设备的id和产品的id是USB/VID_045E&PID_930A。
;当设备管理器发现从检测设备所得到的ID,符号此段定义的ID时,设备管理器就知道找到了正确的INF文件。
</pre><pre name="code" class="plain">[DestinationDirs]定义系统路径信息。
BULKUSB.Files.Ext = 10,System32/Drivers
BULKUSB.Files.Inf = 10,INF
;DestinationDirs段中条目等式的左边规定INF文件编写者定义的段名,这些段中的文件将会被存入等式右边指定的目录中,并且这些文件可以被INF文件中其他地方的CopyFiles、RenFiles和DelFiles命令引用。
01 源目录(后跟路径) 
10 Windows目录 
11 Windows系统目录 
12 驱动目录 
17 INF文件目录 
18 帮助文件目录 
20 字体目录 
21 根目录 
24 应用程序目录 
25 共享目录 
30 当前根目录 
50 System目录 
51 Spool 目录 
52 Spool 驱动目录 
53 用户配置目录
[BULKUSB.Dev]
CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf
;表示执行着两个段,用逗号隔开,如果段内有一行,包含两个文件,则将文件后一个文件拷贝成前一个文件。如果只有一个文件,直接用这个名字。
AddReg=BULKUSB.AddReg
;添加注册表
[BULKUSB.Dev.NT]
CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf
AddReg=BULKUSB.AddReg
[BULKUSB.Dev.NT.Services].services字段表明添加服务。
Addservice = BULKUSB, 0x00000002, BULKUSB.AddService
;BULKUSB是服务名,BULKUSB.AddService是执行服务的字段
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="plain">[BULKUSB.AddService]



DisplayName = %BULKUSB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%/System32/Drivers/BULKUSB.sys
LoadOrderGroup = Base
[BULKUSB.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,BULKUSB.sys
HKLM,"System/Currentcontrolset/Services/BulkUsb/Parameters","MaximumTransferSize",0x10001,4096
HKLM,"System/Currentcontrolset/Services/BulkUsb/Parameters","DebugLevel",0x10001,2
;HKCR表示根HKEY_CLASSES_ROOT,第二个参数是子键的路径名,第三个参数是表明值的类型,最后是值
注册表操作的常量定义: 
---------------------------------------------------------- 
常量 根值 
HKCR HKEY_CLASSES_ROOT. 
HKCU HKEY_CURRENT_USER. 
HKLM HKEY_LOCAL_MACHINE. 
HKU HKEY_USERS. 
----------------------------------------------------------- 
FLG_ADDREG_APPEND 在多字符串后添加字符 
FLG_ADDREG_TYPE_SZ 字符类型 
FLG_ADDREG_TYPE_MULTI_SZ 字符串类型 
FLG_ADDREG_TYPE_EXPAND_SZ 扩展字符串类型 
FLG_ADDREG_TYPE_BINARY 二进制值 
FLG_ADDREG_TYPE_DWORD DWord值 
FLG_ADDREG_TYPE_NONE NULL值
[BULKUSB.Files.Ext]
BULKUSB.sys
[BULKUSB.Files.Inf]
BulkUsb.Inf
;---------------------------------------------------------------;
[Strings]
MSFT="Microsoft"
MfgName="Intel"
USB/VID_045E&PID_930A.DeviceDesc="BulkUsb.Sys Intel 82930 USB Bulk IO Test Board"
BULKUSB.SvcDesc="BulkUsb.Sys i82930 Bulk IO test driver"