最近在学习设备驱动程序方面,了解到安装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文件通常在 DDInstallsections中的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和之后的系统版本才有该域的,第三方不用使用该域.