各位大虾:
我在抓硬件的时候通常会找INF文档,但我不知道他里面一些键值的意思,请问哪位有关于INF档的中文说明,发给我呀,谢谢!Email:[email protected]
我在抓硬件的时候通常会找INF文档,但我不知道他里面一些键值的意思,请问哪位有关于INF档的中文说明,发给我呀,谢谢!Email:[email protected]
解决方案 »
- VS2005中,使用Unicode字符集的情况下,怎么将CString转换成char*类型?
- 【C】小程序 请高手调优
- 我用两个TOOLBAR拼接起来但是中间有间隔线怎么去掉
- 哪位高人能给个 deviceiocontrol 磁盘整理的具体例子(急用,感激)
- 有1000万个随机的整数中想实现尽可能快的查找,有什么高效的算法?(平均查找时间要近可能的快,单个数据查找最坏比较次数不能超过12次。
- DLL 中添加对话框的问题 在线等
- GetSelectedCount意想不到的问题
- 在windosw XP安装studio 6.0问题
- 如何设计DirectUI界面?
- 我的RegisterServiceProcess()错在哪儿了?
- cpp文件转换为c文件的方法
- 如何在Windows程序中实现定时开机的功能
文件中各个部分的顺序是不重要的﹐因为每个部分都是被命名和连接的﹒一个部分继续直到另一个部分或者遇到文件结束﹒每个部分的标识符号是独一无二的名字﹐为了保持与WIN98的兼容﹐它的长度被限制在28个字符之内﹐可以包含下划线和圆点字符﹐在引用整个名字的前提下﹐可以包含空格字符﹒
文件内容的一般格式如下:
entry = value [, value...]
entry是指令﹐关键词或者文件名﹐value是entry被应用的属性﹒
entry或者value名字可以指定为一个使用百分号(%)的代替一些具体数据的字符串﹐分割INF文件的[Strings]提供一个特殊语言ID的值
Version 部分
一个有效的INF文件从一个命名为[Version]的部分开始﹐它像一个INF文件的头和标识﹒
Entry
Value
Signature
“$Windows NT$" "$Windows 95$" "$Chicago$"的其中一个
Class
驱动程序的整个家族的类名﹒一些名字是预先确定的﹐例如﹐Net或者Display
ClassGuid
一个类的独一无二的GUID
Provider
INF文件提供者的名字
LayoutFile
只有在系统支持的INF文件中使用﹐OEM支持的INF文件用SourceDisksNames 和 SourceDisksFiles代替
DriverVer
mm/dd/yyyy[,x,y,v,z],必须的条目﹐包含可选的版本信息
Manufacturers部分
另一个必须的部分是[Manufacturers]﹐这个部分的条目列出了可以使用这个INF文件安装的设备和驱动程序﹐条目的形式是: manufacturer=model
manufacturer列出被安装的硬件的制造商的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
前者是更普通的版本﹐它允许一个指向另一个包含一个安装文件列表的部分的指针﹒然而对于简单的驱动程序的安装﹐可以直接的使用文件名﹒
CopyFiles部分
INF文件的[CopyFiles]部分是唯一的名字并且CopyFiles的指示器在[DDInstall]部分﹐它的条目的形式是:
destination-filename[,source-filename,temp-filename,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根键的子键﹒
value-name指定被添加或者修改注册表值﹒每个系统注册表键包含零个或者多个不同数据类型的值﹒注册表编辑器在右边的窗格列出了子键的值﹒值的名字和值的数据也一起显示出来﹒左边的窗格仅仅显示子键﹒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联合使用﹒
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扩展名)﹐
service-install部分和可选的eventlog-install部分唤起附加的控制服务值条目的INF部分(例如﹐ServiceType和StartType)﹒
ServiceInstall 部分
[ServiceInstall]部分﹐它的名字在DDInstall.Services部分的AddService条目中唯一指定﹐控制和安装驱动程序到服务控制管理器﹒