inf文件介绍(一)
2016-07-30 22:40
951 查看
inf文件介绍
inf文件简介
INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在 INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。
在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。
inf文件结构
INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。规则
规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名 最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。
规则三:INF文件对大小写不敏感。
规则四:“;”号后面的内容为注释。
规则五:如果一个条目的内容过多,在一行无法书写完全,则用“/”将一行内容书写为多行。明白了INF文件的规则后,让我们一起来解剖INF文件的结构。
inf文件字段(节)介绍
Version节
每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一。另外,该节中一般会定义如下信息,
[Version] ;适用os类型 Signature = "$Windows NT$" ;设备类型 Class = Net ;GUID信息 ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} ;生产商信息 Provider = %Microsoft% ;驱动版本信息 DriverVer = 10/28/2005,5.1.2600.2781 ;log文件 CatalogFile.NT = RNDIS.cat
Strings节
String节主要是描述安装设备的一些信息,示例如下,[Strings] ServiceDisplayName = "USB Remote NDIS Y Network Device Driver" Sample_Property = "Sample XP property" NetworkAddress = "Network Address" Microsoft = "Microsoft Corporation" MicrosoftDevice = "Microsoft USB Remote NDIS Network Device" SourceDisk = "Microsoft USB Network Driver Install Disk"
inf文件打开被禁用的注册表
在windows 2000和xp中,注册表被禁用的话通过导入注册表文件是打不开的。(在98系统中是可以的),我通过研究INF文件,发现可以利用INF文件来打开注册表,下面的是原文件,[Version] SIGNATURE = "$Windows NT$" [DEFAULTINSTALL] ADDREG = ADDREG.REG [ADDREG.REG] hkcu,"Software/Microsoft/Windows/CurrentVersion/Policies/System",DisableRegistryTools,%REG_Dword%,0 [Strings] REG_DWORD = 0x00010001 REG_SZ = 0x00000000 REG_BINARY = 0x00000001
只要把它复制下来把文件名改为*.inf 然后用右键导入就可以了。
如果把里面的“%REG_Dword%,0”改成“%REG_Dword%,1”就可以禁用注册表了。
如下是项目中的一个RNDIS驱动安装的inf文件,详情参考注释,如下,
; ; RNDIS INF for a USB Remote NDIS Device ; Copyright (c) Microsoft Corporation [Version] Signature = "$Windows NT$" Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Microsoft% DriverVer = 10/28/2005,5.1.2600.2781 CatalogFile.NT = rndis.cat [Manufacturer] ;变量有多个时中间用逗号隔开 %Microsoft% = MicrosoftDevices,NT.5.1 [MicrosoftDevices] ;设备硬件ID %MicrosoftDevice% = RNDIS, USB\Vid_1376&Pid_4e61&Rev_0100&MI_00 [MicrosoftDevices.NT.5.1] %MicrosoftDevice% = RNDIS.NT.5.1, USB\Vid_1376&Pid_4e61&MI_00 [ControlFlags] ExcludeFromSelect=* ; Windows 2000 specific sections --------------------------------- [RNDIS.NT] Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI BusType = 15 DriverVer = 10/28/2005,5.1.2600.2781 AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_WIN2K CopyFiles = RNDIS_CopyFiles_NT ; DO NOT MODIFY THE SERVICE NAME [RNDIS.NT.Services] AddService = USB_RNDISY, 2, RNDIS_ServiceInst_NT, RNDIS_EventLog [RNDIS_CopyFiles_NT] ; no rename of files on Windows 2000, use the 'y' names as is usb8023y.sys, , , 0 rndismpy.sys, , , 0 [RNDIS_ServiceInst_NT] DisplayName = %ServiceDisplayName% ServiceType = 1 StartType = 3 ErrorControl = 1 ServiceBinary = %12%\usb8023y.sys LoadOrderGroup = NDIS AddReg = RNDIS_WMI_AddReg_NT [RNDIS_WMI_AddReg_NT] HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismpy.sys" ; Windows XP specific sections ----------------------------------- [RNDIS.NT.5.1] Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI BusType = 15 DriverVer = 10/28/2005,5.1.2600.2781 AddReg = RNDIS_AddReg_XP include = netrndis.inf needs = Usb_Rndis.ndi ; no copyfiles - the files are already in place [RNDIS.NT.5.1.Services] include = netrndis.inf needs = Usb_Rndis.ndi.Services ; Windows 2000 sections ; DO NOT MODIFY ServiceName [RNDIS_AddReg_NT] HKR, Ndi, Service, 0, "USB_RNDISY" HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" [RNDIS_AddReg_WIN2K] HKR, , ReclaimRecv, 0x00010001, 1 HKR, NDI\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% HKR, NDI\params\NetworkAddress, type, 0, "edit" HKR, NDI\params\NetworkAddress, LimitText, 0, "12" HKR, NDI\params\NetworkAddress, UpperCase, 0, "1" HKR, NDI\params\NetworkAddress, default, 0, " " HKR, NDI\params\NetworkAddress, optional, 0, "1" [RNDIS_EventLog] AddReg = RNDIS_EventLog_AddReg [RNDIS_EventLog_AddReg] HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll" HKR, , TypesSupported, 0x00010001, 7 ; An optional Property to demonstrate adding advanced properties on Windows XP [RNDIS_AddReg_XP] HKR, NDI\params\XPProperty, ParamDesc, 0, %Sample_Property% HKR, NDI\params\XPProperty, type, 0, "edit" HKR, NDI\params\XPProperty, LimitText, 0, "12" HKR, NDI\params\XPProperty, UpperCase, 0, "1" HKR, NDI\params\XPProperty, default, 0, " " HKR, NDI\params\XPProperty, optional, 0, "1" [SourceDisksNames] 1=%SourceDisk%,,1 [SourceDisksFiles] usb8023y.sys=1 rndismpy.sys=1 [DestinationDirs] RNDIS_CopyFiles_NT = 12 ; DO NOT CHANGE ServiceDisplayName ;String字段是设备安装的设备描述信息 [Strings] ServiceDisplayName = "USB Remote NDIS Y Network Device Driver" Sample_Property = "Sample XP property" NetworkAddress = "Network Address" Microsoft = "Microsoft Corporation" MicrosoftDevice = "Microsoft USB Remote NDIS Network Device" SourceDisk = "Microsoft USB Network Driver Install Disk"
更多inf文件介绍参考文档:http://download.csdn.net/detail/shufac/9590420
相关文章推荐
- inf文件介绍(二)
- 设备驱动的INF文件介绍
- inf与mmp文件介绍
- 分布式内存文件系统Tachyon介绍及安装部署
- host文件的作用和介绍
- Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- Cas Server中各配置文件介绍
- 数据泵文件expdp介绍
- map文件介绍及使用查错
- SD卡中FAT32文件格式高速入门(图文具体介绍)
- Logstash配置文件介绍
- redis配置文件参数介绍
- vmware 虚拟磁盘文件格式介绍
- File类的用法总结,及文件过滤器的介绍。
- JDK目录结构和文件作用介绍
- R.java文件介绍
- 蔡军生先生第二人生的源码分析(六十)多协议文件传送库libcurl的介绍
- 访问WEB-INF目录下的jsp文件
- QT中PRO文件写法的详细介绍,很有用,很重要! (转)
- WINDOWS PE文件结构详细介绍(一)