本文主要介绍安装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"

Windows驱动开发入门 --WDM inf文件模板相关推荐

  1. Windows驱动开发入门系列教程

    从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导.前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Wind ...

  2. windows 驱动开发入门——驱动中的数据结构

    最近在学习驱动编程方面的内容,在这将自己的一些心得分享出来,供大家参考,与大家共同进步,本人学习驱动主要是通过两本书--<独钓寒江 windows安全编程> 和 <windows驱动 ...

  3. Windows驱动开发入门 -- HelloWorld

    一.驱动开发环境搭建 在Download the Windows Driver Kit (WDK)页面中下载最新版本的Visual Studio和WDK进行安装.如果要下载老版本可以到Other WD ...

  4. Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别

    背景介绍 首先,先从基础的东西说起,做任何程序的开发,你都需要一个配套的开发套件,专业术语叫做SDK(Software Development Kit,软件开发套件).比如:开发JAVA程序,我们可能 ...

  5. windows驱动开发学习

    序言]  很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资 料少有关系.大多学的驱动开发资料都以英文为主,这样让很多驱动初学者很头疼.本人从 事驱动开发时间不长也不短, ...

  6. windows驱动开发推荐书籍

    [作者]  猪头三  个人网站 :http://www.x86asm.com/ [序言]  很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资 料少有关系.大多学的驱动开 ...

  7. c语言windows驱动编程入门,Windows驱动开发技术详解 PDF扫描版[175MB]

    Windows驱动开发技术详解由浅入深.循序渐进地介绍了windows驱动程序的开发方法与调试技巧.本书共分23章,内容涵盖了windows操作系统的基本原理.nt驱动程序与wdm驱动程序的构造.驱动 ...

  8. 客户端开发 Windows驱动开发(1)SDK WDK DDK WDM的关系

    尽管Windows平台的SDK.DDK与WDK都包含了WinDBG工具包,但是用户获取WinDBG工具包的最主要方式还是从微软网站自由下载,因为这样获得的版本最新. 最近因为工作需要,尝试去了解WIN ...

  9. Windows驱动开发WDM (1) - 基本结构

    陆陆续续做过一些驱动的开发,但是一直以来都没有系统的学习过.这次重新阅读<windows驱动开发技术详解>(张帆,史彩成等编著),写博客记录一下,用以加深自己对驱动的理解. 驱动对象(DR ...

最新文章

  1. 主角有智能芯片的种田小说_推荐3本克苏鲁类小说,压抑邪恶与搞笑逗乐并存,看看是你的菜吗...
  2. 网站建设难?三个技巧来帮你!
  3. 城市列表简称JSON数据
  4. 34丨关于Linux网络,你必须知道这些(下)
  5. 游戏设计中的算法题——计算宝物升级所需的资源数
  6. 2PC协议(2-phase-commit protocol)
  7. How OPA addFrame is called
  8. php时间缀签名函数,php时间缀签名函数
  9. 语言 蜗牛爬树问题_趣数课堂:小学奥数蜗牛爬井问题,再加一只乌龟,你算不出来了吧...
  10. 将小写金额转换成大写金额[存储过程版]
  11. 自旋玻璃(spin glass)、自旋冰(spin ice)和量子自旋液体(quantum spin liquid)(之一)
  12. SparrowRecSys电影推荐系统项目(一)
  13. 深度技术官网linux,深度系统
  14. PMP-我是如何两周拿下5A的
  15. a1465苹果笔记本_苹果笔记本开机“文件夹图标里有个问号”,大神一根线完美修复...
  16. 工业生产ERP系统常见的五大统计分析功能
  17. 30岁了 该如何谋划自己的未来
  18. 工程伦理2021期末
  19. 【听译大师说话】python 创始人访谈录 1: 关于 django 和 ruby
  20. Xcode 工具栏详解

热门文章

  1. 融合创新、开源开放、云智一体,百度智能云在数字时代全面开花
  2. 卡巴斯基发现网页技术中的危险漏洞
  3. C++设计模式之适配器模式(adapter)(结构型)
  4. 基于Bootstrap的登录注册模板(html+css)
  5. PCL: 获取点云的质心(几何中心点)
  6. AppScan发生内部错误解决办法
  7. Navicat Premium 注册机的使用流程(PATCH)很重要,需要找到Navicat Premium 12的文件夹中的Navicat Premiume.e执行文件
  8. mq服务器端口配置文件,Centos6.8 rabbitmq搭建且修改默认端口
  9. SpringBoot之Vue添加图表
  10. AMS1117输出电压