最近在学习设备驱动程序方面,了解到安装sys文件需要INF文件,边学习边做笔记
原文链接:http://msdn.microsoft.com/en-us/library/windows/hardware/ff547502(v=vs.85).aspx
[Version]
Signature="signature-name"
[Class=class-name]
[ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}]
[Provider=%INF-creator%]
[LayoutFile=filename.inf [,filename.inf]... ] (Windows 2000 and Windows XP)
[CatalogFile=filename.cat]
[CatalogFile.nt=unique-filename.cat]
[CatalogFile.ntx86=unique-filename.cat]
[CatalogFile.ntia64=unique-filename.cat] (Windows XP and later versions of Windows)
[CatalogFile.ntamd64=unique-filename.cat] (Windows XP and later versions of Windows)
DriverVer=mm/dd/yyyy[,w.x.y.z]
[DontReflectOffline=1] (Windows Vista and later versions of Windows)
[PnpLockDown=0|1] (Windows Vista and later versions of Windows)
[DriverPackageDisplayName=%driver-package-description%]
[DriverPackageType=PackageType]
Signature="signature-name"
Signature值必须是"$Windows NT$" 或者 "$Chicago$",否则系统会认为这是个非法的INF文件。如果值是:"$Chicago$",表示该INF文件适用于Windows98之后得所有操作系统,如果该值为:"$Windows NT$",表示该INF文件支持Windows NT
系列的操作系统。
ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}
Class值和ClassGuid值是一组相对应的值。class标记对应的设备类型,classguid标记该类对应的guid号。
系统已经定义了一组标准设备类型,如电池设备,蓝牙设备,CD-ROM设备,串口设备,端口驱动,磁盘驱动等等,系统已定义
的class和对应的classgui值详见网页:http://msdn.microsoft.com/en-us/library/windows/hardware/ff553426(v=vs.
85).aspx,此外还可以利用INF文件为系统添加自定义Class和ClassGuid。在系统注册表中的HKEY_LOCAL_MACHINE\SYST
EM\ControlSet001\Control\Class下可以看到的系统定义的和自定义的所有classguid值
Provider=%INF-creator%
Provider值标记INF文件的提供者。
LayoutFile=filename.inf [,filename.inf]...
指定一个或多个系统提供的包含layout信息的INF文件,一般这个值可以省略,在vista和之后得系统中该域已被淘汰。而其需要
的INF文件通常在 DDInstall sections中的Include和Needs域上添加,或者在SourceDisksNames section 和 SourceDisksFiles section。LayoutFile域使用的两个理由:
1.作为安装的一部分,INF安装过程中必需要操作系统提供的某些inf文件。
2.在Include或Needs中引用的文件是不可安装的。
CatalogFile=filename.cat
指定一个在设备/驱动的发布过程需要包含的cat文件CatalogFile.nt=unique-filename.cat |
CatalogFile.ntx86=unique-filename.cat |
CatalogFile.ntia64=unique-filename.cat |
CatalogFile.ntamd64=unique-filename.cat
DriverPackageDisplayName=%driver-package-description%
该值指定了驱动程序包的显示名。DriverPackageType=PackageType
指定驱动程序包的类型。PnpLockDown=0|1
指定即插即用是否阻止应用程序直接修改驱动程序包的INF中指定的文件。如果值是1,则阻止应用程序直接修改INF的CopyFiles中指定的文件。如果值是0或者没有指定PnpLockDown,则应用程序则有管理员权限去修改这些文件。驱动文件用这种方式防止
第三方恶意修改文件。为了保证PnP驱动安装的完整性,程序不应该直接修改驱动程序包中INF文件复制的驱动文件,程序只有在
操作系统更新完PnP驱动后才去修改。Vista和之后的windows,都将PnpLockdown置为1。防止应用程序直接修改驱动文件。
DriverVer=mm/dd/yyyy[,w.x.y.z]
指定驱动的版本信息。mm/dd/yyyy标记日期,w.x.y.z标记版本号DontReflectOffline=1
Vista和之后的系统版本才有该域的,第三方不用使用该域.