inf文件

INF文件的组成

sections 节的名字

[Version]

;键名 = 键值

Signature="$Windows NT$"

常见的INF文件节区
在这里插入图片描述
常用指令

在这里插入图片描述

拷贝文件

方式1:直接指定文件名

//摄制拷贝文件的目标目录
[DestinationDirs]
;一般使用12 这个目录
DefaultDestDir=12; C:\windows\system32\drivers

[DefaultInstall]
;  直接使用文件名 要加@符号
CopyFiles=@HelloWorld.sys   ;复制驱动文件到DefaultDestDir目录

方式2:使用自定义节

[DestinationDirs]
;一般使用12 这个目录
DefaultDestDir=12; C:\windows\system32\drivers

[DefaultInstall]
;  也可以使用自定义节
CopyFiles=file_section  ;复制驱动文件到DefaultDestDir目录

[file_section]
HelloWorld.sys

设置文件的来源路径

;设置文件拷贝的驱动来源路径
[SourceDisksNames]
1="mydisk";指定文件路径在当前磁盘  意思是和inf文件一个磁盘 

[SourceDisksFiles]
;HelloWorld.sys 这个值需要和指定的文件名一致
HelloWorld.sys =1,"driver" ; 第二个参数指定子目录  意思是当前目录(INF文件所在目录为当前目录)的driver子目录。

完整的复制文件操作

[Version]
;Signature 用来标记一个有效的INF文件,没有这个就是无效的
Signature="$WINDOWS NT$"  ;CHICAGO

;------------------设置文件拷贝的驱动来源路径------------------
[SourceDisksNames]
1="mydisk";指定文件路径在当前磁盘  意思是和inf文件一个磁盘 

[SourceDisksFiles]
MyWdm.sys =1,"driver" ; 第二个参数指定子目录  意思是当前目录(INF文件所在目录为当前目录)的driver子目录。
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


;----------------------设置文件拷贝的目标路径--------------------------------------
[DestinationDirs]
DefaultDestDir=12; C:\windows\system32\drivers

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


;----------------------设置文件拷贝的目标路径--------------------------------------
[DefaultInstall]
;脚本默认开始运行的就是这个字段的内容
CopyFiles=file_section  ;复制驱动文件到DefaultDestDir目录
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

;需要复制的文件名
[file_section]
MyWdm.sys 

增加注册表项

[DefaultInstall]
AddReg=reg_section  ;增加注册表项  可以增加多个注册表节 根目录可以不同

[reg_section]
;HKLM=HKEY_LOCAL_MACHINE  number=键名  0x10001=键的类型 表示是DWORD  REG_SZ是0     0x1000=键值
HKLM,"SYSTEM\CurrentControlSet\Services\ACPI\Parameters","number",0x10001,1000 



创建服务

[Version]
;Signature 用来标记一个有效的INF文件,没有这个就是无效的
Signature="$WINDOWS NT$"  ;CHICAGO

[SourceDisksNames]
1="mydisk";指定文件路径在当前磁盘  意思是和inf文件一个磁盘 如果指定第二个参数 就是驱动在同一目录的+第二个参数的文件夹下

[SourceDisksFiles]
HelloWorld.sys =1;,"driver"  第二个参数指定子目录  意思是当前目录(INF文件所在目录为当前目录)的driver子目录。


;设置拷贝的目标目录  CopyFiles就代表拷贝操作
[DestinationDirs]
DefaultDestDir=12; C:\windows\system32\drivers
				;10 c:windows\
;也可以使用这下面这种写法 根目录+子目录的形式
;DefaultDestDir=10,system32\drivers	

[DefaultInstall]
;拷贝文件到DestinationDirs   如果是用具体的文件名 就要加@符号
CopyFiles=file_section
AddReg=reg_section  ;增加注册表项  可以增加多个注册表节 根目录可以不同

[reg_section]
;HKLM=HKEY_LOCAL_MACHINE  number=键名  0x10001=键的类型 表示是DWORD  REG_SZ是0     0x1000=键值
HKLM,"SYSTEM\CurrentControlSet\Services\ACPI\Parameters","number",0x10001,110



[DefaultInstall.Services]
AddService="myservice",,service_section 
[service_section]
;显示的服务名称
DisplayName ="myservice"
;错误控制 1代表忽略
ErrorControl=1
;服务的路径
ServiceBinary=C:\Windows\System32\drivers\HelloWorld.sys
//启动类型 0引导启动  1系统启动 2自动启动 3是按需启动 4禁止启动
StartType=3
ServiceType=1

[file_section]
HelloWorld.sys   ;这里指定文件名

Strings节

该节用来进行字符串替换

[service_section]
DisplayName=%ServiceName%

[Strings]
ServiceName="myservice"


WMD驱动的inf文件

[Version]
;Signature 用来标记一个有效的INF文件,没有这个就是无效的
Signature="$WINDOWS NT$"  ;CHICAGO

;WDM 类型的驱动需要设置下面键值对
Class=myhardwareclass
ClassGUID={75B60029-2E67-4730-9C91-0FD3D138CA7A}
DriverVer=8/11/2020,0.0.0.1  ;月  日 年
Provider=dale

[ClassInstall32]
Addreg=Class_AddReg  ;增加注册表项  可以增加多个注册表节 根目录可以不同

;WDM 式驱动添加注册表方法
[Class_AddReg]
HKR,,,,%DeviceClassName%
HKR,,Icon,,"-5"



[SourceDisksNames]
1="mydisk";指定文件路径在当前磁盘  意思是和inf文件一个磁盘 如果指定第二个参数 就是驱动在同一目录的+第二个参数的文件夹下

[SourceDisksFiles]
HelloWorld.sys =1;,"driver"  第二个参数指定子目录  意思是当前目录(INF文件所在目录为当前目录)的driver子目录。


;设置拷贝的目标目录  CopyFiles就代表拷贝操作
[DestinationDirs]
DefaultDestDir=12; C:\windows\system32\drivers
			
;制造商  左边是制造商名字  右边是硬件
[Manufacturer]
"mysoft"=mfg,NTX86

[mfg.NTX86] 
;左边  设备描述  右边第一个参数 安装节名
"hello device"=My_Install,PCI\VEN_8888&DEV_8888

;默认安装
[My_Install.NTX86]
;拷贝文件到DestinationDirs   如果是用具体的文件名 就要加@符号
CopyFiles=file_section


;默认安装 后面的子节的内容
[My_Install.NTX86.Services]
AddService="myservice",0x2,service_section
[service_section]
;显示的服务名称
DisplayName ="myservice"
;错误控制 1代表忽略
ErrorControl=1
;服务的路径
ServiceBinary=%12%\HelloWorld.sys
;启动类型 0引导启动  1系统启动 2自动启动 3是按需启动 4禁止启动
StartType=3
;服务类型  1代表驱动
ServiceType=1

[file_section]
HelloWorld.sys   ;这里指定文件名

[Strings]
DeviceClassName="dale"

xp下安装硬件

控制面板->切换到经典试图->添加硬件->是,我已经连接了此硬件->添加新的硬件设备->安装我手动从列表添加的硬件->显示所有设备->从磁盘安装->选择自己的inf文件->完成安装

64位系统使用inf文件安装WDM驱动

右键我的电脑->管理->设备管理器->在我的电脑名右键选择 添加过时硬件->安装我手动从列表选择的硬件->显示所有设备->从磁盘安装->浏览 选择自己的inf文件->下一步 始终安装
在这里插入图片描述

win7 32 和xp WDM驱动更加简便的安装方法

使用工具EzDriverInstaller来安装
使用方法:
file->open 然后选择自己的inf文件即可 然后add new device WDM驱动就添加好了.

配置VS里面生成的INF文件

VS提供了INF文件,可以做如下配置,需要在Package里面inf2Cat Using Local Time 设置为是,每次编译的时候就可以自动设置时间. x86 和x64可以使用同一个配置.

;
; EnumDeviecResources.inf
;

[Version]
Signature="$WINDOWS NT$"
Class=myhardwareclass
ClassGuid={E34A3490-E175-4CC2-8FDE-AACBB4E25277}
Provider=dale
DriverVer=08/11/2020,18.10.31.246

[DestinationDirs]
DefaultDestDir = 12


[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]
HelloWDM.sys=1

[ClassInstall32]
Addreg=Class_AddReg  ;增加注册表项  可以增加多个注册表节 根目录可以不同

;WDM 式驱动添加注册表方法
[Class_AddReg]
HKR,,,,%ClassName%
HKR,,Icon,,"-5"


[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$   ;设置安装入口

[Standard.NT$ARCH$]
"hello device"=My_Install,PCI\VEN_8888&DEV_8888

[My_Install.NT$ARCH$]
CopyFiles=file_section

[file_section]
HelloWDM.sys

[My_Install.NT$ARCH$.Services]
AddService="HelloWDM",0x2,service_section

[service_section]
;显示的服务名称
DisplayName ="myservice"
;错误控制 1代表忽略
ErrorControl=1
;服务的路径
ServiceBinary=%12%\HelloWDM.sys
;启动类型 0引导启动  1系统启动 2自动启动 3是按需启动 4禁止启动
StartType=3
;服务类型  1代表驱动
ServiceType=1



[Strings]
ManufacturerName="mysoft"
ClassName="myhardwareclass"
DiskName="EnumDeviecResources Source Disk"

生成的64位 inf文件 驱动名为同文件夹下的HelloWDM.sys

;
; EnumDeviecResources.inf
;

[Version]
Signature="$WINDOWS NT$"
Class=myhardwareclass
ClassGuid={E34A3490-E175-4CC2-8FDE-AACBB4E25277}
Provider=dale
DriverVer=08/11/2020,18.57.54.944

[DestinationDirs]
DefaultDestDir = 12


[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]
HelloWDM.sys=1

[ClassInstall32]
Addreg=Class_AddReg  ;增加注册表项  可以增加多个注册表节 根目录可以不同

;WDM 式驱动添加注册表方法
[Class_AddReg]
HKR,,,,%ClassName%
HKR,,Icon,,"-5"


[Manufacturer]
%ManufacturerName%=Standard,NTamd64   ;设置安装入口

[Standard.NTamd64]
"hello device"=My_Install,PCI\VEN_8888&DEV_8888

[My_Install.NTamd64]
CopyFiles=file_section

[file_section]
HelloWDM.sys

[My_Install.NTamd64.Services]
AddService="HelloWDM",0x2,service_section

[service_section]
;显示的服务名称
DisplayName ="myservice"
;错误控制 1代表忽略
ErrorControl=1
;服务的路径
ServiceBinary=%12%\HelloWDM.sys
;启动类型 0引导启动  1系统启动 2自动启动 3是按需启动 4禁止启动
StartType=3
;服务类型  1代表驱动
ServiceType=1



[Strings]
ManufacturerName="mysoft"
ClassName="myhardwareclass"
DiskName="EnumDeviecResources Source Disk"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值