Windows驅動開發入門 --WDM inf文件模板

本文主要介紹安裝WDM驅動的inf文件如何編寫。
由於inf文件的規則比較複雜,寫法也比較多樣,故本文只介紹通過Visual Studio開發WDM驅動時的inf模板文件的通用寫法。

模板文件如下:

; 
; 用於Visual Studio的inf模板
;
[Version]
; 固定寫法
Signature="$WINDOWS NT$"
; %ClassName% 類似C語言中的宏,值定義在[Strings]節
Class=%ClassName%
; GUID可以由Visual Studio集成的“創建GUID”工具生成
ClassGuid={D70B8AB7-3990-4A53-B8E7-7F2B9B471175}
Provider=%ManufacturerName%
; 驅動版本號由visual studio集成的stampinf工具自動填寫
DriverVer=
CatalogFile=HelloWDM.cat

; 用於指定 Copyfiles, Delfiles, Renfiles等指令的目標目錄
; [DefaultDestDir=dirid[,subdir]] 
[DestinationDirs]
; dirid列表見:https://docs.microsoft.com/en-us/windows-hardware/drivers/install/using-dirids
DefaultDestDir = 12

; 用於指定磁盤信息
; diskid = disk-description[,[tag-or-cab-file][,[unused][,path]]]
; path: 用於指定相對於根目錄的子目錄
[SourceDisksNames]
1 = %DiskDiscription%,,,""

; 用於指定安裝期間涉及的文件,並指定這些文件的磁盤位置
; filename=diskid[,[ subdir][,size]]
[SourceDisksFiles]
; 1對應[SourceDisksNames]節中指定的diskid
HelloWDM.sys=1

; 安裝一個新的驅動安裝類
[ClassInstall32]
; 使用AddReg指定一個或多個用於添加註冊表項的節,也可以使用Copyfiles、Delfiles等命令,
; 詳見:https://docs.microsoft.com/en-us/windows-hardware/drivers/install/inf-classinstall32-section
; AddReg=add-registry-section[,add-registry-section]...
AddReg=AddClass


[AddClass]
HKR,,,,%ClassName%
HKR,,Icon,,"-5"


; 製造商
[Manufacturer]
; %strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ...
%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]
; device-description=install-section-name[,hw-id][,compatible-id...]
%DeviceDesc%=Install_Section, PCI\VEN_8888&DEV_8888

; $ARCH$由visual studio集成的stampinf工具進行替換成amd64或x86
[Install_Section.NT$ARCH$]
; 拷貝文件到DestinationDirs節指定的目錄
; CopyFiles=@filename | file-list-section[, file-list-section]... 
CopyFiles=CopyFiles_Section

[Install_Section.NT$ARCH$.Services]
AddService=%ServicesName%,0x2,InstallServices_Section


[CopyFiles_Section]
HelloWDM.sys

[InstallServices_Section]
DisplayName=%ServicesDisplayName%
ErrorControl=1
ServiceBinary=%12%\HelloWDM.sys
StartType=3
ServiceType=1

; 定義字符串常量,類似C語言中的宏
[Strings]
ManufacturerName="Jeffery"
ClassName="HelloWDM Class"
DiskDiscription="HelloWDM Source Disk"
DeviceDesc="Hello World WDM!"
ServicesDisplayName="HelloWDM"
ServicesName="HelloWDM"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章