INF文件详解

合集下载

inf文件用法

inf文件用法

如果问你什么是Inf文件?或许大家说不上什么,但是很多朋友在安装设备驱动程序时经常出现Inf文件。

其实Inf文件是微软为了方便硬件制作厂商发布设备驱动程序而创建的一种文件格式。

对于一般用户来说至多是了解一下,而很少加以研究应用。

那么Inf文件到底能不能为我们提供更多的应用是很多朋友非常关心的事情,带着这样的疑问我们深入研究了Inf文件,发现了很多实用的操作。

一、轻松鉴别硬件信息由于Inf文件是微软为了方便设备制作商发布驱动程序而创建的文件格式,因此我们可以从中查看其设备的类型。

图1就是一个典型的Inf文件内容,其中在“Version”段中的“Class”后面的字符表示的是设备类型,其中Media是指多媒体备,一般来说就是声卡。

如果后面的字符为Display(显卡)、Net(网卡)、Modem(调制解调器)、Printer(打印机)、Image(摄像头)等。

除此之外在“Manufacturer”字段中则说明了生产厂商,例如图1中所代表的声卡厂商就是C-Media。

另外从Inf文件名上也可以看出设备厂商或类型,例如笔者打开的图1文件名就是CM686,与声卡的型号相对类,而光驱的信息则是保存在cdrom.inf中,硬件信息是保存在disk.inf文件中的。

二、轻松安装Inf不同设备的驱动程序安装方法是不一样的,例如有一些驱动程序制作成了Setup.exe文件,我们只需要执行该文件即可安装。

而有一些驱动程序则是单独以Inf文件存在的,那么该如何呢?其实很简单,我们只需要在该文件上右击,在弹出的菜单中选择“安装”命令即可(如图2)。

三、完全卸载错误的驱动安装了错误的驱动程序设备无法发挥应用的功效,在这个时候正常的做法是卸载充备并重新正确的驱动。

但是在搜索新的驱动程序过程中,Windwos往往会自作主张的将未完全卸载的Inf 文件安装进来,从而导致正确的驱动程序无法安装。

IT八哥网()告诉大家真正卸载并彻底删除错误的驱动程序文件的方法。

USB INF文件详解(USB)

USB INF文件详解(USB)

INF文件详解INF文件格式要求一个INF文件是以段组织的简单的文本文件。

一些段油系统定义(System-Defined)的名称,而另一些段由INF文件的编写者命名。

每个段包含特定的条目和命名,这些命名用于引用INF文件其它地方定义的附加段。

INF文件的语法规则:1、要求的内容:在特定的INF文件中所要求的必选段和可选段、条目及命令依赖于所要安装的设备组件。

端点顺序可以是任意的,大多数的INF文件安装惯用的次序来安排各个段。

2、段名:INF文件的每个段从一个括在方括号[]中的段名开始。

段名可以由系统定义或INF编写者定义在Windows 2000中,段名的最大长度为255个字符。

在Windows 98中,段名不应该超过28个字符。

如果INF设计要在两个平台上运行,必须遵守最小的限制。

段名、条目和命令不分大小写。

在一个INF文件中如果有两个以上的段有相同的名字,系统将把其条目和命令合并成一个段。

每个段以另一个新段的开始或文件的结束为结束。

3、使用串标记:在INF文件中的许多值,包括INF编写者定义的段名都可以标示成%strkey%形式的标记。

每个这样的strkey必须在INF文件的Strings 段中定义为一系列显示可见字符组成的值。

4、行格式、续行及注释:段中的每个条目或命令以回车或换行符结束。

在条目或命令中,“\”可以没用做一个显示的续行符;分好“;”标示后面的内容是注释;可以用都好“,”分隔条目和命令中提供的多个值。

INF文件举例下面是一个完整的.inf文件,它是Windows 2000 DDK提供的USB批量阐述驱动程序范例中所附的.inf文件。

; Installation inf for the Intel 82930 USB Bulk IO Test Board;; (c) Copyright 1999 Microsoft;[Version]Signature="$CHICAGO$"Class=USBClassGUID={36FC9E60-C465-11CF-8056-444553540000}provider=%MSFT%DriverVer=08/05/1999[SourceDisksNames]1="BulkUsb Installation Disk",,,[SourceDisksFiles]BULKUSB.sys = 1BULKUSB.inf = 1[Manufacturer]%MfgName%=Microsoft[Microsoft]%USB\VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev,USB\VID_045E&PID_930A;[PreCopySection];HKR,,NoSetupUI,,1[DestinationDirs]BULKUSB.Files.Ext = 10,System32\DriversBULKUSB.Files.Inf = 10,INF[BULKUSB.Dev]CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.InfAddReg=BULKUSB.AddReg[BULKUSB.Dev.NT]CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.InfAddReg=BULKUSB.AddReg[BULKUSB.Dev.NT.Services]Addservice = BULKUSB, 0x00000002, BULKUSB.AddService[BULKUSB.AddService]DisplayName = %BULKUSB.SvcDesc%ServiceType = 1 ; SERVICE_KERNEL_DRIVERStartType = 3 ; SERVICE_DEMAND_STARTErrorControl = 1 ; SERVICE_ERROR_NORMALServiceBinary = %10%\System32\Drivers\BULKUSB.sysLoadOrderGroup = Base[BULKUSB.AddReg]HKR,,DevLoader,,*ntkernHKR,,NTMPDriver,,BULKUSB.sysHKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","Maxi mumTransferSize",0x10001,4096HKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","Debu gLevel",0x10001,2[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"INF文件详解从上面完整的例子来看,可以对INF文件有的一个总体的印象,包括INF文件中包括的段,以及各段的书写格式。

DDK中INF文件详解

DDK中INF文件详解

安装一个驱动程序一个后缀是INF的文本文件控制设备驱动程序自动的安装。

INF格式类似于WIN 3.x下的老式的.INI文件,但是复杂些。

一个INF文件允许自动的或者在对话框的帮助下安装驱动程序文件。

驱动程序安装结束后对系统产生两个持久的影响:1. 描述驱动程序的系统注册表入口,它的加载顺序和任何适当的配置数据。

2. 驱动程序文件被拷贝到适当的系统路径。

INF文件是影响这些改变的标准的机制,它可以提供定制安装。

使用INF文件自动安装INF文件随着硬件和驱动程序一起提供,INF文件的结构和内容是驱动程序作者的责任。

INF文件结构INF文件是被分(section)成几个部分的文本文件,每个部分被指定一个标识符号﹐它被中括号([])括起来﹒一些部分的命名是必须的﹐而其它部分是驱动程序特定的﹒每个部分是一些安装动作﹐或者连接或者列举其它部分﹒文件中各个部分的顺序是不重要的﹐因为每个部分都是被命名和连接的﹒一个部分继续直到另一个部分或者遇到文件结束﹒每个部分的标识符号是独一无二的名字﹐为了保持与WIN98的兼容﹐它的长度被限制在28个字符之内﹐可以包含下划线和圆点字符﹐在引用整个名字的前提下﹐可以包含空格字符﹒文件内容的一般格式如下:entry = value [, value...]entry是指令﹐关键词或者文件名﹐value是entry被应用的属性﹒entry或者value名字可以指定为一个使用百分号(%)的代替一些具体数据的字符串﹐分割INF文件的[Strings]提供一个特殊语言ID的值。

Version 部分一个有效的INF文件从一个命名为[Version]的部分开始,它像一个INF文件的头和标识。

表15.1. [Version]部分的条目Manufacturers部分另一个必须的部分是[Manufacturers]﹐这个部分的条目列出了可以使用这个INF文件安装的设备和驱动程序﹐条目的形式是:manufacturer=modelmanufacturer列出被安装的硬件的制造商的INF文件的唯一名字﹒model提供指向INF 文件中另一个进一步安装这个模型的部分的指针﹐Models 部分罗列在[Manufacturers]部分的每一个模型﹐在文件中必须有相应的部分﹐model部分的每个条目的形式是:device-description=install-section-name,hw-id[,compatible-id...]device-description描述了设备模型的列表和一个短描述﹒这个字符串在安装的时候在对话框中提供给用户﹐因此它需要提供多种语言的文本﹒install-section-name的值参考[DDInstall]部分﹐也描述了INF文件的另一个进一步安装的部分﹒hw-id是硬件设备在PnP兼容的总线上声明的时候返回的PnP标识符号﹒例如﹐USB\VID_045E&PID_00B标识微软HID(Human Input Device)的USB键盘设备﹒compatible-id 可以是任何表示用于任何的包含在列表中的相同安装脚本的数值﹒DDInstall 部分它的名字独一无二的指定从[Models]部分列出的每个制造商的每个模型﹐AddReg条目在语法上是必须的﹐CopyFiles条目对于[DDInstall]部分是重要的﹐它的形式是:CopyFiles=file-list-section[,file-list-section...] 或者CopyFiles=filename前者是更普通的版本﹐它允许一个指向另一个包含一个安装文件列表的部分的指针﹒然而对于简单的驱动程序的安装﹐可以直接的使用文件名﹒表15.2. [DDInstall]部分条目CopyFiles部分INF文件的[CopyFiles]部分是唯一的名字并且CopyFiles的指示器在[DDInstall]部分﹐它的条目的形式是: destination-filename[,source-filename,temp-filename,flag]表15.3. CopyFiles flag的定义destination-filename是需要复制的文件名﹐如果与源文件名不同﹐source-filename必须被指定﹐temp-filename在WIN98中是为新文件指定一个中间的文件名直到系统重新激活﹐对于WIN2000来说﹐它是无用的﹒flag值指定新的目标文件的部署﹒这些值可以OR起来使它有多个性质﹒应该确认没有互斥的项目﹒因为[CopyFiles]条目的语法不包含指定源文件的磁盘或者路径选项﹐所以﹐必须使用其它的INF文件的部分[SourceDisksNames]和[SourceDisksFiles]﹒[CopyFiles]是复制的源文件名﹐复制的目标则在[DestinationDirs]部分﹒AddReg部分INF文件的[AddReg]部分是唯一的名字﹐并且引用AddReg的指示器在[DDInstall]部分﹒这个部分的目的是提供在系统注册表中添加或者修改条目﹐形式是﹕reg-root[,subkey,value-name,flags,value]reg-root是注册表根的缩写﹐子键描述根键下的键名﹐使用反斜线字符(\)分开子键﹒例如﹐Software\W2KDriverBook\ Driver\Setting是有效的HKCU或者HKLM根键的子键﹒表15.4. AddReg reg-root缩写的意义value-name指定被添加或者修改注册表值﹒每个系统注册表键包含零个或者多个不同数据类型的值﹒注册表编辑器在右边的窗格列出了子键的值﹒值的名字和值的数据也一起显示出来﹒左边的窗格仅仅显示子键﹒flags指定数据的类型﹒表15.5. AddReg flags定义系统注册表对于驱动程序安装的重要性将在后面讨论﹒SourceDisksNames 部分如果INF文件包含的驱动程序文件分布在多个磁盘上﹐INF文件就必须包含[Source-DisksNames]部分﹐这个部分包含文件分布的每个磁盘的人口﹒diskid=disk-description[,tagfile,unused,path]diskid是唯一的分配设置中的名字﹒通常﹐磁盘号从1开始﹐disk-description是一个提示用户合适的磁盘的字符串﹒tagfile值有双重的作用﹒确定在安装过程中用户提供正确的磁盘﹐tagfile值在安装过程继续进行之前被检验﹐如果tagfile文件不存在﹐用户被重新提示插入正确的磁盘﹒如果agfile值包含.CAB的扩展名﹐表示磁盘上的驱动程序文件是压缩文件﹒path值是一个以root-relative为磁盘根目录的驱动程序文件的路径﹒像tagfile值一样是可选择的﹒SourceDisksFiles 部分INF文件必须包含一个[SourceDisksFiles]部分﹒这个部分列出了在安装驱动程序过程中使用的文件名﹒每个文件都有相应的条目﹒filename=diskid[,subdir,size]diskid值是一个[SourceDisksNames]部分指定的可以找到文件名的磁盘﹐可选的subdir 值指定文件的路径﹒可选的size值指定解压缩文件的字节大小﹐安装过程使用这个数据在尝试复制文件之前决定目标系统是否适合安装﹒DestinationDirs部分这是个必须的提供目标路径的部分﹒file-list-section=dirid[,subdir] 或者DefaultDestDir=dirid[,subdir]file-list-section是一个被[CopyFiles]的指示器唤起的部分﹒它指定所有的被指示器复制的文件安装到指定的路径﹒对于DefaultDestDir﹐用于[CopyFiles]中所有的指示器﹐通常与file-list-section联合使用﹒表15.6. DestinationDirsdirid定义DDInstall.Services 部分为了让复制的文件在目标系统中起驱动程序的作用﹐必须通知服务控制管理器(SCM)﹐在WIN2000中安装的每个驱动程序在注册表的HKLM\System\CurrentControlSet\Services下面﹐ServiceType值是1表示内核模式的驱动程序﹒StartType指出在系统引导过程中在何时加载驱动程序﹒ErrorControl值决定在驱动程序加载的过程中如果遇到错误后如何是好﹒ServiceBinary值指出驱动程序的位置(.SYS文件)﹒但是可能会被遗漏﹐如果二进制文件在%windir%\system32\drivers路径并且与HKLM\...\Services下面的子键名的名字相同的时候就发生这种情况﹒DDInstall.Services部分条目的形式是﹕AddService=ServiceName,[flags],service-install-section[,eventlog-install-section]ServiceName描述服务的名字﹐典型的是驱动程序的名字(没有.SYS扩展名)表15.7. AddService flags定义service-install部分和可选的eventlog-install部分唤起附加的控制服务值条目的INF部分(例如﹐ServiceType和StartType)﹒ServiceInstall 部分[ServiceInstall]部分﹐它的名字在DDInstall.Services部分的AddService条目中唯一指定﹐控制和安装驱动程序到服务控制管理器﹒表15.8. ServiceInstall 部分条目INF 例子前面介绍的INF文件好象非常复杂﹐这里使用一个例子说明它﹒在下面的例子中﹐INF 控制一个由两个文件组成的驱动程序﹒Launcher.SYS被复制到系统的驱动程序路径﹐Launcher.HLP被复制到系统的帮助路径(例如﹐WINNT\System32\Drivers和WINNT\Help)﹒[Version]Signature="$Windows NT$"Class=MissilesClassGUID={C9B3D080-6889-11d4-93FC-0} Provider=W2KDriverBook DriverVer=07/04/2000,1.00.2468.1; 注释在分号(;)后面[DestinationDirs] ; 指定文件复制的目的地DefaultDestDir=12 ; %windir%\system32\driversCopyLaunchHelp=18 ; standard help directory[Manufacturer]W2KDriverBook=MyMfgName ; 唤起model部分[MyMfgName] ; 开始一个Models部分"ISA Missile Launcher"=InstallLauncher,ISA\Launcher ; 我们的设备列表[InstallLauncher] ; 开始DDInstall 部分CopyFiles=CopyLaunchFiles ; 唤起CopyFiles 部分.CopyFiles=CopyLaunchHelp ; 另一个是help的AddReg=LaunchRegSection ; 唤起AddReg 部分[CopyLaunchFiles] ; 开始CopyFiles部分Launcher.sys[CopyLaunchHelp] ; Help文件的CopyFiles部分Launcher.hlp[LaunchRegSection] ; 开始AddReg 部分HKR,"Parameters","Coordinates",FLG_ADDREG_TYPE_DWORD,0; 给设备提供一个是0的DWORD值[SourceDisksNames] ; 这个部分不是真的需要﹐1="Missile Launcher Driver Files" ; 因为只有两个文件并且在同一个磁盘上[SourceDisksFiles]Launcher.sys=1 ; 类似的﹐因为它们在同一个磁盘上﹐Launcher.hlp=1 ;所以不是真正的需要这个部分[InstallLauncher.Services] ; DDInstall.Services部分AddService=Launcher,2,LaunchService[LaunchService] ; 设置SCM﹐这样驱动程序就可以运行了ServiceType=1 ; 驱动程序StartType=3 ; 需要时手动加载ErrorControl=1 ; 汇报错误ServiceBinary=%12%\Launcher.sys ; 驱动程序路径使用INF文件一旦驱动程序的INF创建完成﹐必须处理它﹐使它有用﹒手动安装手动的处理INF文件﹐必须使用Windows的文件管理器选择INF文件﹐右击这个文件﹐选择安装﹒在真正的即插即用环境中﹐插入或者移除设备触发相应的驱动程序的安装﹐加载和卸载﹒因此﹐保留手动的安装是为了最初的测试和调试驱动程序﹒自动安装当一个即插即用的设备被插入到一个系统﹐数个子系统相互作用来加载新的驱动程序﹒1. 当设备被插入﹐硬件使用自动侦测和自动配置﹐告诉总线驱动程序设备出现﹒依赖于总线硬件﹐这可能涉及通知总线驱动程序一个新的总线设备列举发生﹒在这一步的最后﹐驱动程序发现新的设备出现并且有一个指定的设备ID﹒2. 内核模式PnP管理器通知用户模式PnP管理器一个新的有一个指定ID的设备出现在系统中﹒3. 用户模式PnP管理器使用WIN2000的Setup API库为新的设备提供一个类似的驱动程序列表﹒为了合适的驱动程序﹐系统使用新设备的class和model查找系统的INF 目录(例如﹐WINNT\INF)﹒4. 如果不能找到合适的INF文件﹐系统不进行进一步的动作直到一个有特权的用户进入系统﹒用户被提供一个新的硬件向导﹒用户提供驱动程序的位置和合适的INF文件位置﹒5. 一旦找到INF文件﹐它被使用CfgMgr API库处理﹒驱动程序文件和注册表条目被安装和修改﹒内核模式的PnP管理器主要执行这个步骤﹒6. 基于INF文件的指导﹐内核模式PnP管理器加载任何低层的滤波驱动程序﹐然后是functional驱动程序﹐最后是高层的驱动程序﹒在堆栈中的高层的驱动程序然后发送适当的PnP信息﹐包括IRP_MN_START_DEVICE.添加/移除硬件向导在安装过程中﹐主要的与用户的交互是添加新硬件向导﹒注意有一个制造商的列表(来自于INF文件的[Manufacturers]部分)﹐和Models列表(来自于INF文件的[Models]部分)﹒通常﹐用户手动选择适当的驱动程序去安装和加载﹒如果驱动程序被安装﹐它的DriverEntry和AddDevice例程必须仍然有效﹐这样使请求驱动的硬件满意新代码的设置﹒换句话说﹐手动的选择可能成功的安装﹐但是初始化是失败的﹒Class名字和设备IDs即插即用设备自动安装的过程很大程度上依赖安装程序的定位合适驱动程序的INF文件和文件中各个部分的能力﹒这个部分文章的目的是解释Class名字和设备Ids﹐还有定位INF 文件的过程﹒每个即插即用设备应该有一个唯一的指定硬件模型的标识符号﹒因此提供设备ID给即插即用总线硬件和总线驱动程序﹒当然﹐总线驱动程序在新的设备被插入后的很短时间内请求设备ID﹒设备ID的形式与总线类型有关﹒但是﹐一般看起来是:<enumerator>\<enumerator-specific-device-ID>(例如﹐PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02)对于驱动程序代码﹐一个硬件设备可能汇报多个设备ID﹐它是设备功能上的与很多models兼容的陈述﹒因为INF文件的[Models]部分包含一个hw-id值﹐所以﹐寻找与新安装的设备返回的设备ID相匹配的INF文件中的条目非常简单﹒同样的INF条目允许相兼容硬件的列表的规范有附加的设备Ids形式﹒如果设备ID不能在INF文件中定位精确的匹配﹐就使用兼容的ID﹒另一个为设备定位合适的驱动程序的关键元素是安装类(Setup Class)的观念﹒一系列相关的设备可以共享分层的驱动程序(例如﹐upper或者lower滤波器)﹐甚至在堆栈中个别的驱动程序﹒安装类被GUID 和name唯一的标识﹒微软定义了一系列驱动程序类﹐新的类可能被定义新的硬件组﹒创建新的组之前﹐必须选择一个新的GUID和class名字﹒表15.9. 安装类: 名字和GUIDs自定义安装驱动程序一般提供两个定制驱动程序安装的信息﹒第一﹐提供一个自定义的安装程序代替新硬件安装程序﹐为了提供这个功能﹐自定义的安装程序需要使用SETUPAPI.DLL提供的例程﹒这个库中的每个函数的形式是SetupDiXxx﹒DDK提供使用这个库的详细资料﹒第二﹐驱动程序可以提供一个自定义的设置设备的向导页﹒在它的工作要完成之前﹐安装程序发送一个DIF_NEWDEVICEWIZARD_FINISHINSTALL请求来提供给驱动程序一个显示自定义页的机会﹒控制驱动程序的加载顺序有时﹐驱动程序的加载顺序是非常重要的﹒可能一个驱动程序依赖另一个驱动程序初始化完成﹒当有这样的依赖产生﹐服务控制管理器(the Service Control Manager)可以取得系统注册表中条目LoadOrderGroup和Dependencies﹐这些值可以在INF文件中的[ServiceInstall]部分指定﹒LoadOrderGroup是命名一个指定的驱动程序加载顺序组的一个号码﹐Dependencies指定在这个驱动程序加载成功之前必须加载的组﹒这样的相互依赖不是公共的﹐也不应该是公共的﹒在一个真正的以设备为中心的环境(支持即插即用)中﹐驱动程序应该使用尽量少的联系的顺序﹒另一方面﹐分层很多的驱动程序的执行需要这些规范是合理的﹒驱动程序的数字签名WIN2000的CD上附带有很多第三方的驱动程序﹒为了分享这些程序﹐需要几个条件﹒加之﹐无论何时尝试在WIN2000上安装一个驱动程序﹐都会收到一个陈述设备驱动程序没有数字签名并且它的确实性没有被微软检验的警告信息﹒下面介绍微软的检验驱动程序的确实性的作用和驱动程序作者和硬件制造商的保证它们的软件包被包含在未来的WIN2000 CD上的负担﹒微软检验驱动程序的原因. . . .微软检验驱动程序有两个目标:1. 通过方便的设备驱动程序的发售提供或者促进WIN2000和更多的硬件设备的协同工作能力﹒2. 确定设备驱动程序是稳定的和没有折中系统的完整性﹒因为设备驱动程序操作在内核模式﹐它们可以慢慢的或者很快的使系统崩溃﹒因为系统的不稳定性常常由内核自己引起﹒这样﹐微软为它的操作系统维持一个被鉴定的制造商和驱动程序的目的是明显的﹒当然﹐WIN2000和大多数的硬件的协同工作能力是一个强有力的买点﹒因此﹐微软常常与硬件制造商一起来确保及时地发布兼容的驱动程序﹒为了完成这两个目标﹐微软有专门的提供硬件和驱动程序证明的团队﹐Windows硬件质量实验室(WHQL)﹒数字签名作为WHQL程序的一部分﹐一个被检验过的驱动程序获得一个允许在WIN2000中安装驱动程序并且不会产生警告的数字签名﹒数字签名由几个部分组成:1. 一个被包含在分布式的驱动程序包的目录文件(.CAT)﹐它包含微软分配的数字签名﹒2. 一个在INF文件中[Versions]部分的涉及.CAT文件的条目﹒3. WIN2000的是或者否允许一个没有数字签名的驱动程序安装的策略﹒数字签名有更改检验﹐这样确保驱动程序被使用供货商提供的原始的代码安装﹒它使用密码技术来完成这个目标﹐这个数字签名没有更改驱动程序代码﹒小结Windows 2000和Windows 98的自动的设备驱动程序的安装对于用户来说是一个巨大的进步﹒然而这个步骤需要驱动程序的作者附加的工作﹐至少﹐必须提供一个INF文件﹒w. . .v。

inf逻辑磁盘标识

inf逻辑磁盘标识

inf逻辑磁盘标识【实用版】目录1.介绍 INF 文件2.INF 逻辑磁盘标识的作用3.INF 文件的结构4.磁盘标识的获取与使用5.INF 文件的编写示例正文1.介绍 INF 文件INF(Installation)文件是一种 Windows 操作系统下的安装文件格式,主要用于安装驱动程序和软件。

INF 文件包含了安装过程中所需的所有信息,如文件名、版本、目标安装路径等。

它相当于一个安装向导,可以引导安装程序完成安装任务。

2.INF 逻辑磁盘标识的作用INF 逻辑磁盘标识是 INF 文件中一个重要的部分,用于指示安装程序将文件安装到哪个磁盘分区。

磁盘标识可以帮助用户在安装过程中选择合适的目标分区,确保安装的文件不会覆盖现有分区的数据。

3.INF 文件的结构一个典型的 INF 文件结构如下:```[Installation]admin=1bisect=1boot=1蝴蝶=1buildver=0.1 buildtype=1 component=1 debuglevel=1 designation=1 description=1 device=1 devicedesc=1 deviceid=1 devicetype=1 driver=1 driverversion=1 dynamic=1 forceinstall=1 hash=1inf=1install=1 installer=1 installmode=1installtype=1item=1key=1language=1lifecycle=1 localization=1 machine=1 manufacturer=1model=1ame=1os=1osbuild=1package=1parent=1paths=1productid=1 productname=1 productversion=1 programminglanguage=1 publisher=1renderer=1resolution=1resourceonly=1safedllversion=1section=1security=1signing=1skuid=1source=1subcomponent=1subinstallation=1sysprep=1targetos=1transform=1uifile=1unicode=1version=1virtualdevice=1vision=1whql=1```其中,【Installation】段是 INF 文件的核心部分,包含了安装过程中所需的所有信息。

INF文件的妙用

INF文件的妙用

设备驱动的自动安装
在安装Win 98系统时,如果设备是即插即用的、并且在Win 98的安装光盘中包含该设备的驱动程序,系统会自动地寻找到该设备的驱动程序并进行安装。但是在通常情况下,一般需要通过随设备附带的驱动盘来安装驱动程序。随着计算机外设不断丰富,安装一次Win 98就需要手动安装很多设备的驱动程序,万一附带的驱动盘损坏还要到处寻找并下载驱动程序,这是我们最不愿遇到的情况。利用设备制造商为其设备建立的INF文件和Win 98光盘中提供的Infinst工具,就可以轻易扫去这种烦恼。
Infinst的使用
Infinst工具是图形界面,其操作非常简单,只需要指定添加到Win 98安装程序中的INF文件和Windows 98 setup.exe所在的位置即可。例如将声卡的驱动程序添加到Win 98的安装点,其操作步骤如下:
1.在“添加到Windows 98安装程序的INF”中输入或选择设备所对应的INF文件;
INF文件指的是设备信息文件。在给指定的硬件设备安装驱动程序时,首先要找到该设备所对应的INF文件,然后系统会根据INF文件中包含的检测和安装设备的信息来决定设备使用的资源并为该设备安装相应的驱动程序。当一个硬件制造商开发新产品时,必须要建立一个INF文件来明确地定义各个级别的设备所需要的资源和文件。
7.如果找到带有匹配PnP Ids的inf, 所匹配的PnP Ids会加以注释;
8.复制新的inf和所有必要的驱动器文件到有Win 98安装文件的目录中;
9.编辑Custom.inf文件;
10.附加到Infinst.log。
Infinst的运行
Infinst不需要安装,可以在光盘的/tools/reskit/infinst目录中双击infinst图标直接运行;也可以将infinst目录拷贝到硬盘中再运行。

一些异常启动

一些异常启动

一些异常启动INF文件是什么:INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件。

INF文件是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容。

wmp.inf:Windows Media Player是Windows系统自带的播放器,可以播放MP3,WMA,WAV等音频文件,RM文件由于竞争关系微软默认并不支持;msmsgs.inf解决无法打开添加或删除windows组件,放到C:\WINDOWS\inf目录下;文件名称: msmsgs.inf安全级别: 未知路径: C:\WINDOWS\INF\msmsgs.inf文件大小: 97.4K文件版本:文件描述:出品公司:360描述:MD5: 3e49c32dfb0a4197fcf1b172593c526a组别: Explorer 对象注册表路径: HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{5945c046-1e7d-11d1-bc44-00c04fd912be}msnetmtg.inf系统文件msnetmtg.inf是存放在Windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。

在正常情况下不建议用户对该类文件(msnetmtg.inf)进行随意的修改。

它的存在对维护计算机系统的稳定具有重要作用。

如果用户电脑被木马病毒、或是流氓软件篡改导致出现msnetmtg.inf丢失、msnetmtg.inf确实损坏等弹窗现象,请使用金山毒霸进行全面的修复!文件名称: msnetmtg.inf安全级别: 未知路径: C:\WINDOWS\INF\msnetmtg.inf文件大小: 89.4K文件版本:文件描述:出品公司:360描述:MD5: 8d2e693a2c2e2f3e32c1b9dab8379ea0组别: Explorer 对象注册表路径: HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{44BBA842-CC51-11CF-AAFA-00AA00B6015B}timer.drv进程文件:timer.drv文件版本:3.10文件大小:4,064 字节所在系统:WinXp所在位置:C:\WINDOWS\system32MD5校验码:9BE7ADE645CCFDC3544A5030D6AAEB62进程名称:Timer driver for PC compatibles描述:timer.drv是兼容电脑的定时器驱动程序。

inf文件怎么写

inf文件怎么写
(3)ScanregVersion=0.0001 程序版本说明。
(4)MaxBackupCopies 这个参数用来设置建立的备份文件的个数,值为5至99中的任一个数,默认值为5,即最大可建立五个备份文件,为更好的保护系统,一般来说设置10个左右为宜。
(5)BackupDirectory 这个参数用来设置备份文件存放的目录,默认存放目录为Windows\Sysbckup,注意这里填写的必须是完整路径。
接着,运行Batch工具,按照向导提示生成“msbatch.inf”文件,并将该文件保存到软盘中。具体的生成方法请参考有关资料,这里不再赘述。
当需要重新安装Windows 98时,用启动盘进入到DOS提示符下,将保存有“msbatch.inf”文件的软盘插入软驱,将Windows 98安装光盘插入光驱,在DOS提示符后键入如下命令:“x:/win98/setup a:msbatch.inf”,回车后即可。其中“X”为光驱和盘符。
7.String节
这一节中定义了字符串变量
,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。
读懂INF文件
下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构,如图1所示。
3.硬盘(U盘)也需个性化
第一:给硬盘(U盘)DIY一个可爱的图标
我们首先将硬盘的生硬图标替换为我们喜欢的图标,给硬盘披上美丽的彩衣。首先准备一图标文件,你可以用图标制作程序制作自己的图标文件,也可以使用现成的图标文件,最好是保存到硬盘某一个分区的根目录下。接着打开记事本程序,录入以下内容:

inf文件说明

inf文件说明

替换目标文件
[delete Registry] 描述如何增加注册表项目。 del -registry-section 节名必须处现在 install 节中的 DelReg 条目中。
Extension Platform
.Win Windows 95
.NT Windows NT (all platforms)
[MyInstall]
CopyFiles= @MyFile.exe
此文件将拷贝到缺省目标目录。
为适应不同平台,可以在 install 节后加上不同的后缀。可以出现 defaultInstall.nt 这样的节名。 install-section-name 可选的后缀:
Copyfiles=file-list-section[,file-list-section]...
Renfiles=file-list-section[,file-list-section]...
Delfiles=file-list-section[,file-list-section]...
.NTPPC Windows NT (PowerPC only)
以下例子展示了如何出现两个 copyfiles 节:
[Ser_Inst]
CopyFiles=Ser_CopyFiles, mouclass_CopyFiles
以下为典型的例子:
[Version]
Signature="$Windows NT$"
Class=Mouse
ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%

inf格式说明

inf格式说明

INF是Device Information File(设备信息文件)的简称,设备管理器通过读取相应的INF文件来安装驱动程序,其中记录了驱动程序安装的所有操作,包括复制文件到指定路径、添加或修改注册表、加载系统服务等,而实际的驱动程序则存放在sys、dll、vxd等文件中。

\subsubsection{INF文件的规则}\begin{description}\item [规则一:] INF 文件是分节的,每一个 INF 文件有许多的节组成,节名用方括号括起来。

这些节名有些是系统定义好的,有一些是用户自定义的。

每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。

节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。

\item [规则二:]在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。

如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。

\item [规则三:] INF 文件对大小写不敏感。

\item [规则四:] ";" 号后面的内容为注释。

\item [规则五:] 如果一个条目的内容过多,在一行无法书写完全,则用 $\slash$将一行内容书写为多行。

明白了INF文件的规则后,让我们一起来解剖INF文件的结构。

\end{description}\subsubsection{INF文件的构成}在C:Windows下有一个名为INF的隐藏文件夹,我们可以找到很多??.INF、??.pnf格式的文件,前者即所谓的设备信息文件,后者是预编译信息文件。

用记事本可以打开INF文件,其中记录了必要的硬件安装信息,包括设备类型、设备生产厂商名称、适用产品等信息,Windows可以据此自动安装驱动程序。

inf文件编写

inf文件编写

inf文件编写INF文件是Windows操作系统中的一种配置文件,用于描述和安装设备驱动程序、软件和操作系统组件。

编写INF文件需要遵循一定的标准格式,以确保系统能够正确识别和安装所描述的内容。

以下是一份详细的INF文件编写指南,包括所需的各个部分和示例内容。

1. [Version]部分:此部分用于指定INF文件的版本信息和操作系统要求。

示例如下:```[Version]Signature="$WINDOWS NT$"Class=PrinterClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}Provider=%ProviderName%CatalogFile=MyDriver.catDriverVer=12/01/2022,1.0.0.0```- Signature:指定INF文件的签名。

常用的值为"$WINDOWS NT$"。

- Class:指定设备的类别。

可以是预定义的类别,也可以是自定义的类别。

- ClassGUID:指定设备类别的GUID。

- Provider:指定设备提供商的名称。

- CatalogFile:指定INF文件所关联的CAT文件。

- DriverVer:指定驱动程序的版本和日期。

2. [Manufacturer]部分:此部分用于列出设备的制造商和其对应的设备描述。

示例如下: ```[Manufacturer]%ManufacturerName%=ManufacturerSection[ManufacturerSection]%DeviceDesc%=Install, USB\VID_1234&PID_5678```- ManufacturerName:指定制造商的名称。

- ManufacturerSection:指定制造商的设备描述。

3. [Install]部分:此部分用于指定设备的安装过程和所需的文件。

inf文件编写

inf文件编写

inf文件编写INF文件是Windows操作系统中的一种配置文件,它用于安装和配置硬件设备驱动程序。

INF文件包含了设备的描述信息、驱动程序的文件路径、注册表设置、设备的安装和卸载等相关信息。

在本文中,我将详细介绍INF文件的结构和编写方法,以匡助您准确满足任务名称描述的内容需求。

一、INF文件的基本结构INF文件采用文本格式,可以使用任何文本编辑器进行编写。

下面是一个基本的INF文件结构示例:[Version]Signature="$Windows NT$"Class=SampleDeviceClassGuid={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}Provider=%Manufacturer%[Manufacturer]%Manufacturer%=ManufacturerName[ManufacturerName]%DeviceName%=DriverInstall, NTx86, NTamd64[DriverInstall.NTx86]CopyFiles=DriverFiles[DriverInstall.NTamd64]CopyFiles=DriverFiles[DriverFiles]DriverFileName.sys[DestinationDirs]DefaultDestDir=12二、INF文件的各个部份详解1. [Version]:该部份用于指定INF文件的版本信息,Signature字段用于指定INF文件的签名,Class字段用于指定设备的类别,ClassGuid字段用于指定设备的GUID,Provider字段用于指定设备创造商的名称。

2. [Manufacturer]:该部份用于指定设备创造商的名称,可以根据实际情况进行修改。

3. [ManufacturerName]:该部份用于指定设备的名称,可以根据实际情况进行修改。

inf是什么文件格式?.inf文件怎么打开?

inf是什么文件格式?.inf文件怎么打开?

inf是什么⽂件格式?.inf⽂件怎么打开?
inf⽂件中包含硬件设备的信息或脚本以控制硬件操作,inf是微软为硬件设备制造商发布其驱动程序推出的⼀种⽂件格式。

inf ⽂件中包含了硬件驱动安装的信息,⽐如、安装到哪⼀个⽂件夹中、怎样在注册表中加⼊⾃⾝相关信息、源⽂件在哪⾥等。

inf是什么⽂件?
inf⽂件是为便于硬件设备制造商发布其设备驱动程序⽽发明的,现在许多硬件的驱动都是通过inf⽂件来安装的,我们可以通过inf⽂件指导驱动程序的安装,也能修改注册表。

inf⽂件如何打开?
其实inf⽂件是⼀种特定格式的纯⽂本⽂件,你也可以把它看做是⼀种安装脚本,我们⼀般可以通过记事本打开和编辑inf⽂件,还可以使⽤editplus或者uedit32等⽂本编辑软件打开,⽀持⽆限回退,还⾃动保存副本,以防万⼀改错了。

inf⽂件怎么安装呢?⾮常简单,⼀般我使⽤右键点击inf⽂件选择“安装”就⾏了!
inf⽂件如何使⽤你了解多少呢?希望通过本⽂读者能了解更多。

windows驱动中INF文件说明

windows驱动中INF文件说明

第1章建立INF文件为了安装Microsoft Windows 2000驱动程序,必须有一个INF文件。

一个INF文件是一个文本文件,包含了关于设备和要安装的文件的必要信息,如驱动程序映像、注册表信息、版本信息等等,这些都被Setup组件所使用。

Windows 2000 INF文件不包含安装脚本。

安装程序是Win32安装应用程序的一部分,如新设备向导和增加/删除硬件向导,每个INF文件作为一个资源。

包括对设备的安装支持,INF文件为设备初始化一个新的设置类别,比如INF有一个ClassInstall32节。

这一章包含以下信息:·3.1 INF文件总体指南·3.2 为设备文件说明源和目标位置·3.3 建立跨平台的和/或者双操作系统的INF文件·3.4 建立国际化的INF文件·3.5 在设备的INF文件中加强打开文件的安全性·3.6 从应用程序访问INF文件参见《Windows 2000驱动程序开发参考》第1卷中的第3部分的第1章---INF文件的节和指示以获得INF文件格式的完整描述。

1.1 INF文件总体指南INF文件有一些公共部分并遵守一套单一的语法规则,但是由于Windows支持的各种设备,它们也是有区别的。

编写INF文件时,你应该求教于以下的信息资源。

·这一章和INF文件节和指令参考资料。

·你的设备的类别的文档。

例如,如果你的设备是图形适配器,参见DDK文档的图形驱动程序一节。

·INF文件的DDK工具。

DDK提供了一些工具以协助编写INF文件。

参见DDK的tools目录中的关于工具如GenINF 和ChkINF的信息。

·INF示例文件和类似设备的INF文件。

DDK包括了它的示例驱动程序的INF文件。

分析这些示例文件,看看是否有设备的INF文件类似于你的设备。

你可以使用任何编辑器建立或者修改INF文件。

Inf文件详解

Inf文件详解

Inf文件详解Inf文件是一种用于安装、配置和管理Windows操作系统和应用程序的文本文件。

它包含了一系列指令和设置,用于指导操作系统或者应用程序在安装过程中进行必要的配置和操作。

本文将详细介绍Inf文件的结构、语法和常见用途。

一、Inf文件的结构Inf文件采用纯文本格式,通常以.inf为文件扩展名。

它由多个节(Section)组成,每一个节包含一组相关的指令和设置。

Inf文件的基本结构如下:```[Section1]Directive1=Value1Directive2=Value2[Section2]Directive3=Value3Directive4=Value4```Inf文件中的每一个节都以方括号括起来,并且节的名称是不区分大小写的。

每一个节下面可以包含多个指令(Directive),指令由指令名称和对应的值组成,中间用等号连接。

指令和值之间可以用空格或者制表符进行分隔。

二、Inf文件的语法Inf文件的语法相对简单,主要包括注释、指令和值三个部份。

1. 注释:以分号(;)开头的行被视为注释,用于对Inf文件进行说明和解释,不会被操作系统或者应用程序执行。

示例:```; This is a comment line```2. 指令:指令是Inf文件中最重要的部份,用于定义操作系统或者应用程序的配置和操作。

常见的指令有以下几种:- AddReg:用于向系统注册表中添加指定的键值对。

示例:```[Section1]AddReg=Section2```- CopyFiles:用于将指定的文件复制到指定的目录。

示例:```[Section1]CopyFiles=Section2```- DelReg:用于从系统注册表中删除指定的键值对。

```[Section1]DelReg=Section2```- DelFiles:用于删除指定的文件。

示例:```[Section1]DelFiles=Section2```- RegisterDlls:用于注册指定的动态链接库文件。

Inf文件详解

Inf文件详解

Inf文件详解Inf是一个头疼的东西,主要它是一个不用语言而是用配置文件来处理的文件,安装的时候无法调试,(Windbg 可以在驱动中设断点,但不能在.inf文件中停住),只有一个日志文件可以参考,而且一个INF文件用到了不同的语法,完全看懂Inf文件曾经是我的一个梦想,原来我都是Copy别人的文件再改改,其实我没有完全弄明白,那好,请我们先沉着迎战,这篇文章是我看过的写的最好的一个讲Inf文件的文章,其实我看的好像就只有这一篇,哈哈(不算MSDN和OSR)。

给大脑不大的熊的Inf 文件给给大大脑脑不不大大的的熊熊的的Inf 文文件件(原文标题很奇怪,看了就知道了,这个可是潜心找到的,不容易找的,真的是可遇不可求啊)从前的一天,我在百英亩的森林里散步,一个动物过来搭话。

"不好意思"一个小粉猪问道."但但但是你知道Windows设备驱动,因为, 如果你知道, 我们的朋友需要一些帮助", 他说, 指向一个小熊。

(小熊前面有好多修饰词,俺不懂没有翻译,好像是穿着吊带裤,哈哈)"你需要什么帮助?", 我问这个小熊."嗯", 小熊回答道,"我是一个大脑不大的小熊,我写了一个Windows设备驱动,但我不知道如何安装它"."你所要做的是, 写一个.INF文件,它描述你所控制的驱动和设备,告诉Windows操作系统",我说."嗯, 顺便问一下,你的驱动控制的是什么设备呢?"."它是一个蜂蜜(hunny)过滤驱动.它去掉泥土和蜜蜂和其他的杂物。

这可是我的发明。

", 它相当骄傲的说(hunny应该是蜂蜜,不过我没有查到这个单词)"嗯", 我自己想,"这个大脑不大的小熊还不错嘛"."你想, 也就是说, 你是否知道如何去写一个这种"电鹰覆文件"", 小熊问道."当然, 为什么我们不坐下来,我来告诉你关于.INF文件的所有信息,嗨,都到哪里去了?回来!它们不是那么难!"一小群动物出现了, 一个接一个, 带着恐惧的眼神。

inf 文件详解

inf 文件详解

INF文件的语法解说 INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。

INF的功能1 复制文件、删除文件、或重新命名文件。

2 新增或删除注册表(Registry)中的项目。

3 修改重要的系统设置文件(如 Autoexec.bat、Config.sys、.INI 等)INF的规则INF是纯文本文件,它是分节的,这点和INI文件类似,每节以"[]"扩起来,每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。

在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都由=分开,如a="b"。

如果每一个条目的等号后有多个值,则每一个值之间用","号分隔开。

INF 对大小写不敏感,行注释语句命令是";",类似VB里的'。

如果一行写不下,使用""来换行。

INF的运行.INF文件是由Windows的SetupAPI解释执行的脚本文件,它的运行过程很简单,是一种线性的执行,线性的意思就是.INF文件的运行过程不存在分支语句,也就是没有条件语句,一旦开始执行,就是沿着固定的路线运行。

它的运行是按照节为单位来执行的,从某一个[Install]节开始执行,从上到下执行该节中的条目,如果该条目是一个节,那么就一条条执行子节中的条目,如此递归执行。

在WINDOW上运行只要右击这个文件,点击安装即可。

INF的语法结构;指定版本和签名节[VERSION];系统根据Signuture看是不是适合当前版本,如果适合的话就执行,否则不执行,当然强制安装是可以的;用于WIN9XSignature="$CHICAGO$";WINNT+;Signature="$Windows NT$";指定安装文件布局,该行是可选的,如果没有提供布局信息文件,则在INF文件内必须包含[SourceDisksNames]和[SourceDisksFiles]节LayoutFile=filename.inf[SourceDisksNames]节[SourceDisksNames]节罗列源文件所在盘符序列码、盘描述符、盘卷标号和盘序列号。

INF文件详解

INF文件详解

[DefaultInstall]
AddReg=Add.Reg
在[Version]节中"Signature"项定义了该INF文件需要运行在何种操作系统版本中。有$Windows NT$, $ Chicago$, or $Windows 95$三个值供选择,一般选择$Chicago$即可。项Provider中定义了该文件的创作来源,% Author%指引用Author项的值。您也可自定其它项来描述该INF文件的版本信息。该INF文件的作用是关联文件,所以主要是对注册表的操作,我们来看[Add.Reg]节,共四条语句,格式都是一样。HKCR表示根HKEY_CLASSES_ROOT,第二个参数是子键的路径名,第三个参数是表明值的类型,最后是值(具体见附表)。以上都是对操作的定义与过程,在节[DefaultInstall]中是开始执行要安装的流程,AddReg表明是对注册表进行操作,操作对象是Add.Reg节中的定义。如果您把AddReg换成DelReg则是删除注册表中的键值。当鼠标单击该INF文件在弹出的菜单中选择“安装”就开始执行您所定义的操作。该示例在系统的INF文件右键菜单中增加了查看编辑功能并设置了默认动作,因为在安装了不了解的INF文件有可能对系统产生不良的影响,这样双击文件就可打开编辑该文件了。
18 帮助文件目录
20 字体目录
21 根目录
24 应用程序目录
25 共享目录
30 当前根目录
50 System目录
51 Spool 目录
52 Spool 驱动目录
53 用户配置目录
----------------------------------------------------------
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

INF文件详解INF文件格式要求一个INF文件是以段组织的简单的文本文件。

一些段油系统定义(System-Defined)的名称,而另一些段由INF文件的编写者命名。

每个段包含特定的条目和命名,这些命名用于引用INF文件其它地方定义的附加段。

INF文件的语法规则:1、要求的内容:在特定的INF文件中所要求的必选段和可选段、条目及命令依赖于所要安装的设备组件。

端点顺序可以是任意的,大多数的INF文件安装惯用的次序来安排各个段。

2、段名:INF文件的每个段从一个括在方括号[]中的段名开始。

段名可以由系统定义或INF编写者定义在Windows 2000中,段名的最大长度为255个字符。

在Windows 98中,段名不应该超过28个字符。

如果INF设计要在两个平台上运行,必须遵守最小的限制。

段名、条目和命令不分大小写。

在一个INF 文件中如果有两个以上的段有相同的名字,系统将把其条目和命令合并成一个段。

每个段以另一个新段的开始或文件的结束为结束。

3、使用串标记:在INF文件中的许多值,包括INF编写者定义的段名都可以标示成%strkey%形式的标记。

每个这样的strkey必须在INF文件的Strings段中定义为一系列显示可见字符组成的值。

4、行格式、续行及注释:段中的每个条目或命令以回车或换行符结束。

在条目或命令中,“\”可以没用做一个显示的续行符;分好“;”标示后面的内容是注释;可以用都好“,”分隔条目和命令中提供的多个值。

INF文件举例下面是一个完整的.inf文件,它是Windows 2000 DDK提供的USB批量阐述驱动程序范例中所附的.inf 文件。

; Installation inf for the Intel 82930 USB Bulk IO Test Board;; (c) Copyright 1999 Microsoft;[Version]Signature="$CHICAGO$"Class=USBClassGUID={36FC9E60-C465-11CF-8056-444553540000}provider=%MSFT%DriverVer=08/05/1999[SourceDisksNames]1="BulkUsb Installation Disk",,,[SourceDisksFiles]BULKUSB.sys = 1BULKUSB.inf = 1[Manufacturer]%MfgName%=Microsoft[Microsoft]%USB\VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev, USB\VID_045E&PID_930A;[PreCopySection];HKR,,NoSetupUI,,1[DestinationDirs]BULKUSB.Files.Ext = 10,System32\DriversBULKUSB.Files.Inf = 10,INF[BULKUSB.Dev]CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.InfAddReg=BULKUSB.AddReg[BULKUSB.Dev.NT]CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.InfAddReg=BULKUSB.AddReg[BULKUSB.Dev.NT.Services]Addservice = BULKUSB, 0x00000002, BULKUSB.AddService[BULKUSB.AddService]DisplayName = %BULKUSB.SvcDesc%ServiceType = 1 ; SERVICE_KERNEL_DRIVERStartType = 3 ; SERVICE_DEMAND_STARTErrorControl = 1 ; SERVICE_ERROR_NORMALServiceBinary = %10%\System32\Drivers\BULKUSB.sysLoadOrderGroup = Base[BULKUSB.AddReg]HKR,,DevLoader,,*ntkernHKR,,NTMPDriver,,BULKUSB.sysHKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","MaximumTransferSize",0x10001,4096 HKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","DebugLevel",0x10001,2[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"INF文件详解从上面完整的例子来看,可以对INF文件有的一个总体的印象,包括INF文件中包括的段,以及各段的书写格式。

下面详细介绍组成INF文件的各个段。

1、[Version]段习惯上,每个INF文件都开始于一个Version段,这段确定文件中描述的设备类型,上述范例中的Verson 段有如下几条语句:Signature=”$CHICAGO$”Class=USBClassGUID={36FC9E60-C465-11CF-8056-444553540000}provider=%MSFT%DriverVer=08/05/1999Signature指定使用此INF文件的操作系统,可以是$Chicage$、$Windows NT$(含有一个空格)、$Windows 95$(含有一个空格)之一,定界符$必不可少,且这些串是不分大小写的。

如果Signature的值不是这些有效的串之一,该INF文件就被人为无效。

如果一个INF文件用来向Windows 2000和Windows 98两个平台上安装设备驱动程序,它必须通过DDInstall段来增加系统定义的扩展指定任意操作系统特有的安装信息,而不管Signature是何值。

Class指定设备的类名,此范例中指定的是USB类。

ClassGuid指定设备注册表的GUID,GUID是一个128位的标识符,DDK头文件DEVGUID.h定义了标准设备类的GUID。

Provide标志该INF文件的提供者。

%MSFT%的具体内容将在Strings段中定义,范例中的定义是MSFT=”Microsoft”,表明该INF文件的提供者是Microsoft。

DriverVer条目提供整个INF文件的版本信息,在每个Install段中加上DriverVer条目,为驱动程序提供版本信息。

Install段的驱动程序版本条目更具有专用性,并且比Version段的全局DriverVer条目日期具有更高的优先级。

当操作系统搜索驱动程序时,他会选择一个具有更近的DriverVer日期的驱动程序代替一个较早的驱动程序。

如果一个INF没有DriverVer条目,操作系统将会用缺省的日期00/00/0000。

2、[SourceDiskNames]段该段制定并且命名一个或多个包含源文件的磁盘,这些源文件用于文件拷贝或者重命名操作。

该段可以有任意条目,每个条目对应一个源盘。

条目格式如下:disk=%strkey%|”disk-description”,[tagfile],[unused],[path]diskid是标志一个源盘的非负整数。

这个值可以是十六进制或者十进制的形式标示,但他不能占用多余4个字节的存储单元。

等式右边规定一个%strkey%标记或者一个引号引起来的串,描述由diskid所标示盘符的内容或目的。

在安装过程中安装程序可以给终端用户显示这个串值。

TagFile是一个可选的值,规定一个所带磁盘上提供的特征文件名,不规定任何目录和子目录。

安装程序使用特征文件核对用户插入正确的安装盘。

特征文件只能用于可移动的介质。

Unused值不用在Windows 2000中,只用在Windows 9x中。

Path也是个可选项,用于标识磁盘上包含源文件的目录路径。

范例中SourceDisksNames段的内容如下:[SourceDiskNames]1=”BulkUsb Installation Disk”…范例规定源盘为磁盘1,在安装期间,安装程序可以给终端用户显示字符串“BulkUsbInstallation Disk”。

3、[SourceDisksFiles]段该段命名安装过程中所用的源文件,标志包含这些源文件的磁盘(或者CD-ROM),并提供在所带磁盘上包含的每个文件的目录路径。

一个SourcesDisksFiles段可以有任意多条目,磁盘上每个文件都有一个条目。

它所包含的条目格式为filename=disked[,[subdir][,size]]。

Filename规定磁盘上源文件的名称;diskid对顶一个整数来标志包含源文件的磁盘,即在SourceDisksNames段中规定的diskid;subdir是个可选值,它规定了源磁盘上的文件所在的子目录,如果该条目省略,指定的源文件或者在给定磁盘的根目录中,或者在由SourceDisksNames段中的path条目所指定的目录;size也是个可选值,规定了给定文件的非压缩长度,其以字节标示。

范例中SourceDisksFiles 段的内容如下:[SourceDisksFiles]BULKUSB.sys=1BULKUSB.inf=1范例中为两个文件建立的条目,这两个文件都在磁盘1中,并且在根目录下。

4、[Manufacturer]段该段标志一个或者多个用INF文件安装的设备的制造商,它也为制造商的设备即驱动程序的安装定义Models段名。

每个INF文件都必须有Manufacturer段。

相关文档
最新文档