windows驱动开发-inf文件(三)

持续讲解剩下inf节,剩下的几乎都是INF DDInstall 相关的部分,这部分其实非常多,不过我们只讲解最主要的部分,在inf文件说明的最后一篇文档中我们会说明原因。

INF-DefaultInstall

如果要生成 通用驱动程序包,则仅当具有体系结构修饰(例如 [DefaultInstall.NTAMD64])时,此部分才有效。在 INF 中使用 DefaultInstall 和 Manufacturer 部分将导致通用 INF 验证失败,并可能导致安装行为不一致。

如果用户在选择并按住 INF 文件名后选择“安装”菜单项,或者右键单击 (INF 文件名) ,则会访问 INF 文件的 DefaultInstall 部分。 在Windows 10版本 1903 及更高版本的 Windows 上,如果具有 DefaultInstall 的 INF 满足基元驱动程序的要求,则可以在许多驱动程序包 API 中使用:

[DefaultInstall] | 
[DefaultInstall.nt] | 
[DefaultInstall.ntx86] | 
[DefaultInstall.ntia64] | (Windows XP and later versions of Windows)
[DefaultInstall.ntamd64] | (Windows XP and later versions of Windows)
[DefaultInstall.ntarm] | (Windows 8 and later versions of Windows)
[DefaultInstall.ntarm64] (Windows 10 version 1709 and later versions of Windows)[CopyFiles=@filename | file-list-section[,file-list-section] ...]
[CopyINF=filename1.inf[,filename2.inf]...]
[AddReg=add-registry-section[,add-registry-section]...]
[Include=filename1.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[ProfileItems=profile-items-section[,profile-items-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
[RegisterDlls=register-dll-section[,register-dll-section]...]
[UnregisterDlls=unregister-dll-section[,unregister-dll-section]...] ...
在通用 INF 中受支持
  • CopyFiles=@filename | file-list-section[,file-list-section] ...:此可选指令指定要从源介质复制到目标的一个命名文件,或者引用一个或多个 INF 编写器定义的部分,这些节指定要从源媒体传输到目标的文件。INF 的 DestinationDirs 节中的 DefaultDestDir 条目指定要复制的任何单个文件的目标。 SourceDisksNames 和 SourceDisksFiles 部分,或在此 INF 版本部分的 LayoutFile 条目中指定的其他 INF,提供驱动程序文件的分发媒体上的位置;
  • CopyINF=filename1.inf[,filename2.inf]...:(Windows XP 和更高版本的 Windows.) 此指令会导致将指定的 INF 文件复制到目标系统;
  • AddReg=add-registry-section[,add-registry-section]...:此指令引用一个或多个 INF 编写器定义的部分,这些节中的新子项(可能具有初始值条目)被指定写入注册表或在其中修改现有键的值条目;
  • Include=filename1.inf[,filename2.inf]...:此可选条目指定一个或多个系统提供的附加 INF 文件,其中包含安装此设备和/或驱动程序所需的部分。 如果指定了此项,则通常为 “需要 ”条目;
在通用 INF 中不受支持
  • Delfiles=file-list-section[,file-list-section]...: 此指令引用一个或多个 INF 编写器定义的节,其中列出了要删除的目标上的文件;
  • Renfiles=file-list-section[,file-list-section]...: 此指令引用一个或多个 INF 编写器定义的部分,其中列出了在目标上重命名的文件,然后将与设备相关的源文件复制到目标计算机;
  • DelReg=del-registry-section[,del-registry-section]...: 此指令引用一个或多个 INF 编写器定义的部分,在这些节中指定了要在设备安装期间从注册表中删除的键和/或值项;
  • BitReg=bit-registry-section[,bit-registry-section]...: 此指令引用一个或多个 INF 编写器定义的部分,其中修改 了REG_BINARY 类型的现有注册表值条目;
  • ProfileItems=profile-items-section[,profile-items-section]...: 此指令引用一个或多个 INF 编写器定义的部分,这些节描述要添加到“开始”菜单或从“开始”菜单中删除的项;
  • UpdateInis=update-ini-section[,update-ini-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的节,指定源 INI 文件,在安装过程中,此类节中的特定节或行将读取到同名的目标 INI 文件中。 (可选)可以从同名的指定源 INI 文件对目标上的现有 INI 文件进行逐行修改,可以在 update-ini 节中指定;
  • UpdateIniFields=update-inifields-section[,update-inifields-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的部分,其中指定了特定于设备的 INI 文件的行中的修改;
  • Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的部分,其中,源媒体上提供的特定于设备的 INI 文件中的节或行将移动到注册表中;
  • RegisterDlls=register-dll-section[,register-dll-section]...: 此指令引用一个或多个 INF 部分,用于指定属于 OLE 控件且需要自注册的文件;
  • UnregisterDlls=unregister-dll-section[,unregister-dll-section]...: 此指令引用一个或多个 INF 部分,用于指定属于 OLE 控件且需要自注销 (自删除) 的文件;

注意: 

DefaultInstall 节不得用于设备安装。 仅将 DefaultInstall 节用于安装类筛选器驱动程序、文件系统筛选器和内核驱动程序服务,这些驱动程序与设备节点 (devnode) 。如果在 Windows 10 版本 1903 及更高版本的 Windows 上使用 DefaultInstall,建议 INF 文件满足基元驱动程序的要求。

如果要对 驱动程序包 进行数字签名,则具有 “Manufacturer ”部分的驱动程序包的 INF 文件不得包含 INF DefaultInstall 节。

INF DefaultInstall.Services

DefaultInstall.Services 部分包含一个或多个 AddService 指令,引用 INF 文件中其他 INF 编写器定义的部分。 本部分等效于 INF DDInstall.Service 节与 INF DefaultInstall 节相关联。

[DefaultInstall.Services] |
[DefaultInstall.nt.Services] |
[DefaultInstall.ntx86.Services] |
[DefaultInstall.ntia64.Services] | (Windows XP and later versions of Windows)
[DefaultInstall.ntamd64.Services] | (Windows XP and later versions of Windows)
[DefaultInstall.ntarm.Services] | (Windows 8 and later versions of Windows)
[DefaultInstall.ntarm64.Services] (Windows 10 version 1709 and later versions of Windows)AddService=ServiceName,[flags],service-install-section[,event-log-install-section[,[EventLogType][,EventName]]]...]
[DelService=ServiceName[,[flags][,[EventLogType][,EventName]]]...]
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
  • AddService=ServiceName,[flags],service-install-section[,event-log-install-section[,[EventLogType][,EventName]]]...: 对于此 DefaultInstall 节涵盖的驱动程序,此指令引用 INF 文件中其他位置的 INF 编写器定义的 service-install-section,并可能引用 event-log-install-section;
  • DelService=ServiceName[,[flags][,[EventLogType][,EventName]]]...: 此指令从目标计算机中删除以前安装的服务。 此指令很少使用;
  • Include=filename。inf[,filename2.inf]...: 此可选条目指定一个或多个系统提供的其他 INF 文件,其中包含安装此设备所需的部分。 如果指定了此项,则通常为 “需要 ”条目;
  • Needs=inf-section-name[,inf-section-name]...: 此可选条目指定在安装此设备期间必须处理的特定命名节。 通常,此类命名节为 DDInstall提供的 INF 文件中的“include ” 条目中列出的“service”部分。 但是,它可以是此类 DDInstall 中引用的任何“service”部分;
INF DDInstall

每个模型 DDInstall 节都包含一个可选的 DriverVer 指令,以及引用 INF 文件中其他命名节的一个或多个指令,此处显示了最常指定的 INF 指令 CopyFiles 和 AddReg。

这些指令引用的部分包含有关安装驱动程序文件和将任何特定于设备或特定于驱动程序的信息写入注册表的说明。

 

[install-section-name] | 
[install-section-name.nt] | 
[install-section-name.ntx86] | 
[install-section-name.ntia64] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64] | (Windows XP and later versions of Windows)
[install-section-name.ntarm] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64] (Windows 10 version 1709 and later versions of Windows)[DriverVer=mm/dd/yyyy[,x.y.v.z]]
[CopyFiles=@filename | file-list-section[,file-list-section] ...]
[CopyINF=filename1.inf[,filename2.inf]...] (Windows XP and later versions of Windows)
[AddReg=add-registry-section[,add-registry-section]...]
[AddProperty=add-property-section[,add-property-section]...] (Windows Vista and later versions of Windows)
[Include=filename1.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section]...] (Windows Vista and later versions of Windows)
[FeatureScore=featurescore]... (Windows Vista and later versions of Windows)
[BitReg=bit-registry-section[,bit-registry-section]...]
[LogConfig=log-config-section[,log-config-section]...]
[ProfileItems=profile-items-section[,profile-items-section]...] (Windows 2000 and later versions of Windows)
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
[RegisterDlls=register-dll-section[,register-dll-section]...]
[UnregisterDlls=unregister-dll-section[,unregister-dll-section]...]
[ExcludeID=device-identification-string[,device-identification-string]...]... ((Windows XP and later versions of Windows)
[Reboot]
在通用 INF 中受支持
  • DriverVer=mm/dd/yyyy[,x.y.v.z]: 此可选条目指定 驱动程序包的版本信息;
  • CopyFiles=@filename | file-list-section[,file-list-section] ...: 此指令指定要从源媒体复制到目标的一个命名文件,或者引用一个或多个 INF 编写器定义的节,其中源媒体上的设备相关文件被指定为传输到目标。 CopyFiles 指令是可选的,但大多数 DDInstall 节中都存在。INF 的 DestinationDirs 节中的 DefaultDestDir 条目指定要复制的任何单个文件的目标。 SourceDisksNames 和 SourceDisksFiles 部分或在此 INF 的 Version 部分的 LayoutFile 条目中指定的其他 INF 提供驱动程序文件的分发媒体上的位置;
  • CopyINF=filename1.inf[,filename2.inf]...: (Windows XP 及更高版本) 此指令会导致将指定的 INF 文件复制到目标系统;
  • AddReg=add-registry-section[,add-registry-section]...: 此指令引用一个或多个 INF 编写器定义的节,这些节中的新子项(可能带有初始值条目)被指定写入注册表,或在其中修改现有键的值条目;
  • AddProperty=add-property-section[,add-property-section]...: (Windows Vista 及更高版本) 引用修改 为设备实例设置的设备属性 的一个或多个 INF 文件部分。 应仅使用 INF AddProperty 指令 来设置 Windows Vista 或更高版本的 Windows 操作系统中新增的设备实例属性;
  • Include=filename1.inf[,filename2.inf]...: 此可选条目指定一个或多个系统提供的其他 INF 文件,其中包含安装此设备和/或驱动程序所需的部分。 如果指定了此项,则通常也是 “需要 ”条目;
  • Needs=inf-section-name[,inf-section-name]...: 此可选条目指定系统提供的 INF 文件中必须在安装此设备期间处理的节。 通常,此类命名节是 DDInstall (或 DDInstall。xxx) Include 条目中列出的其中一个 INF 文件的节。 但是,它可以是此类 DDInstall 或 DDInstall 中引用的任何部分。包含的 INF 的 xxx 节;
  • FeatureScore=featurescore: (Windows Vista 及更高版本) 此指令为基于驱动程序支持的功能的驱动程序提供了额外的排名条件。 例如,可以为 设备设置类 定义功能分数,该类根据特定于类的条件区分驱动程序;
  • ExcludeID=device-identification-string[,device-identification-string]...: (Windows XP 及更高版本) 此指令指定一个或多个设备标识字符串, (硬件 ID 或 兼容 ID) 。 DDInstall 部分不会安装设备 ID 与列出的任何硬件 ID 或兼容 ID 相匹配的设备;
  • reboot: 此指令指示应在安装完成后提示调用方重新启动系统;
在通用 INF 中不受支持
  • Delfiles=file-list-section[,file-list-section]...: 此指令引用一个或多个 INF 编写器定义的部分,其中列出了要删除的目标上的文件;
  • Renfiles=file-list-section[,file-list-section]...: 此指令引用一个或多个 INF 编写器定义的部分,其中列出了在将设备相关的源文件复制到目标计算机之前,目标上要重命名的文件;
  • DelReg=del-registry-section[,del-registry-section]...: 此指令引用一个或多个 INF 编写器定义的部分,在这些节中指定要在设备安装期间从注册表中删除的键和/或值项。通常,当 INF 必须清除以前安装此设备的旧注册表项时,此指令用于处理升级;
  • DelProperty=del-property-section[,del-property-section]...: (Windows Vista 及更高版本) 引用删除 为设备实例设置的设备属性 的一个或多个 INF 文件部分。 应仅使用 INF DelProperty 指令 删除 Windows Vista 或更高版本的 Windows 中新增的设备实例属性;
  • BitReg=bit-registry-section[,bit-registry-section]...: 此指令引用一个或多个 INF 编写器定义的节,其中修改 了 REG_BINARY 类型的现有注册表项;
  • LogConfig=log-config-section[,log-config-section]...: 对于根枚举设备或手动安装的设备,此指令在 INF 中引用一个或多个 INF 编写器定义的节。 在这些命名部分中,此类“检测到”或手动安装设备的 INF 指定设备必须正常运行的总线相对硬件资源的一个或多个逻辑配置。 此类手动安装且不可配置软件的设备 INF 还应具有 DDInstall.FactDef 部分;LogConfig 指令永远不会用于安装即插即用 (PnP) 设备。 但是,可以使用 INF DDInstall.LogConfigOverride 部分 为 PnP 设备提供替代配置。此指令与所有更高级别的 (非设备) 驱动程序和组件无关;
  • ProfileItems=profile-items-section[,profile-items-section]...: (Microsoft Windows 2000 及更高版本的 Windows) 此很少使用的指令引用一个或多个 INF 编写器定义的部分,这些节描述了要添加到“开始”菜单或从“开始”菜单中删除的项目;
  • UpdateInis=update-ini-section[,update-ini-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的节,指定源 INI 文件,在该文件中,此类节中的特定节或行将在安装过程中读入同名的目标 INI 文件。 (可选)可以在 update-ini 节中指定对目标上同名的给定源 INI 文件中现有 INI 文件的逐行修改;
  • UpdateIniFields=update-inifields-section[,update-inifields-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的部分,其中指定了特定于设备的 INI 文件的行内的修改;
  • Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...: 此很少使用的指令引用一个或多个 INF 编写器定义的节,其中,源媒体上提供的特定于设备的 INI 文件中的节或行将移动到注册表中;
  • RegisterDlls=register-dll-section[,register-dll-section]...: 此指令引用一个或多个 INF 部分,用于指定属于 OLE 控件且需要自注册的文件;
  • UnregisterDlls=unregister-dll-section[,unregister-dll-section]...: 此指令引用一个或多个 INF 部分,用于指定属于 OLE 控件且需要自注销 (自删除) 的文件; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS使用Docker搭建Nacos结合内网穿透实现无公网IP远程登录本地管理平台

文章目录 1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Nacos Nacos是阿里开放的一款中间件,也是一款服务注册中心,它主要提供三种功能:持久化…

网站服务器备案及域名购买配置教程

一、阿里云服务备案准备工作 1.什么是备案? 备案是指向相关部门提交网站信息,以便监管和管理互联网信息服务,未经备案的网站可能面临罚款甚至被关闭的风险。备案主要看您的网站或App等互联网信息服务解析到的服务器是否在中国内地(大陆),如果服务器在中国内地(大陆),…

探索Python中的文件操作:如何列出一个目录下的所有文件?

在Python中,处理文件和目录是一项常见的任务。无论是在数据科学项目中读取数据集,还是在Web开发中管理用户上传的文件,我们都需要知道如何列出一个目录下的所有文件。本文将通过通俗易懂的语言,为初学者详细讲解如何在Python中实现…

Tkinter组件:Text-显示和处理多行文本

Tkinter组件:Text Text(文本)组件用于显示和处理多行文本。在 Tkinter 的所有组件中,Text 组件显得异常强大和灵活,适用于多种任务。虽然该组件的主要目的是显示多行文本,但它常常也被用于作为简单的文本编…

kali更新镜像源

1. 什么是镜像源 镜像源一种数据存储和分发技术,通常指的是一个服务器或网站,它存储了另一个服务器或网站上的某些或全部内容的副本。 2. kali更新镜像源 1. 编辑镜像源文件 vi /etc/apt/sources.list 2. 将原来的镜像源用#号注释掉 3. 选择镜像源地址…

LLM应用-文档解析 AI大模型总结分析文档

1)https://notegpt.io/pdf-summary 支持总结,思维导图、对话 2)chatdoc https://chatdoc.com/ 3)chatpdf https://www.chatpdf.com/ https://www.chatpdfs.cn/ 4)kimi https://kimi.moonshot.cn/

HTML静态网页成品作业(HTML+CSS+JS)——华为商城网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现首页图片切换轮播效果,共有1个页面…

Cweek1

C语言学习 一.初识C语言 1.如何写C代码 ①创建工程 ②添加源文件&#xff1a;c文件&#xff1a;源文件&#xff0c;h文件&#xff1a;头文件 代码实例&#xff1a; main函数是程序的入口&#xff0c;有且仅有一个 在C语言中&#xff0c;#include <stdio.h> 是一个预…

嵌入式学习-时钟树

时钟树 时钟分类 时钟树框图 LSI与LSE HSI、HSE与PLL 系统时钟的产生 AHB、APBx的时钟配置 相关寄存器 寄存器部分的细节内容请参考手册。 相关库函数

PyQt5中Text Edit的常用方法和常用信号

文章目录 1. 简介1.1. 常用方法&#xff1a;1.2 常用信号&#xff1a; 2. Text Edit的常用方法使用案例3. Text Edit 的常用信号使用案例 1. 简介 QTextEdit是PyQt中用于显示和编辑文本的强大组件之一。它提供了丰富的功能&#xff0c;可以显示普通文本、富文本和HTML文本&…

e行64位V11.17.4 安卓全局虚拟定位APP

e行最新版11.17.4 支持全局虚拟位置 小米手机 百度地图 高德地图 实测成功 其他app自测 不一定支持所有app 下载&#xff1a;https://www.123pan.com/s/HAf9-tsyCh.html

java多线程 线程交替执行(同步)的各种实现方案

目录 java多线程 线程交替执行&#xff08;同步&#xff09;的各种实现方案需求 指定具体执行顺序实现一&#xff1a;wait_notify机制 Thread标志位实现二&#xff1a;lock_condition机制 Thread标志位实现三&#xff1a;semaphore信号量 不指定具体执行顺序&#xff0c;只交…

vue预览PDF文件的方法

1.使用iframe标签预览PDF文件 1.1页面结构 html <iframe:src"fileUrl"id"iframeBox"ref"iframeRef"frameborder"0"style"width: 100%; height: 800px"></iframe>1.2 js代码 export default {data() {return {…

Electron + GitHub Actions | 自动化流程详解(下)

自动化部署 上篇介绍了 Electron Forge 打包应用教程。在实际开发中&#xff0c;自动化是提升效率和产出质量的关键。本篇我们将详细介绍如何将构建和发布 Electron 应用的过程自动化。 代码挂在 GitHub 仓库上&#xff0c;如果有帮助&#xff0c;记得给仓库点个赞&#xff1a…

MQTT学习(一)

MQTT是一种与HTTP类似的应用层协议。 在某些物联网应用中&#xff0c;MQTT优于HTTP。 首先&#xff0c;HTTP是用于客户端服务器计算的以文档为中心的请求-响应协议。 HTTP是万维网的基础&#xff0c;但它不是专门为机器之间通信而设计的。 MQTT是一种机器对机器、以数据为中…

机器学习在数据分析中的应用:探索未来趋势

引言 数据分析是机器学习应用最广泛和最成熟的领域之一。随着大数据时代的到来&#xff0c;企业和组织正越来越多地利用机器学习技术来从海量数据中提取有价值的洞察。在本博客中&#xff0c;我们将探讨机器学习在数据分析中的几个关键方向、场景和应用实例。 数据分析的方向…

Flutter for Web:跨平台移动与Web开发的新篇章

Flutter是Google推出的一款开源的UI工具包&#xff0c;用于构建高性能、高保真度的跨平台应用程序。Flutter最初专注于移动平台&#xff0c;但随着Flutter for Web的推出&#xff0c;它也扩展到了Web开发领域。本文将深入解析Flutter for Web的架构、核心概念、开发流程、性能优…

ALOHA多相机Realsense配置以及数据采集

简介 在诸多模仿学习的工作中&#xff0c;均使用到多个Realsense相机作为数据输入端。本文探讨多个Realsense的ros节点启动。 环境配置 librealsense realsense_ros#python h5py opencv-python多相机启动 ALOHA工程仅需要彩色图像进行输入。因此需要只保留彩色图像&#xf…

树与图的一些计数问题(图论学习总结部分内容)

文章目录 前言七、树与图的一些计数问题&#xff08;偏数学&#xff09;容斥原理知识点例题 e g 1 : eg1: eg1: 完全子图染色问题 e g 2 : eg2: eg2: D A G DAG DAG计数 生成树计数知识点例题 环计数问题练习题 前言 由于图论学习总结内容过多&#xff0c;全放在一篇博客过于…

QLineEdit文本长度和框宽度的比较问题

开发环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12背景 测试同事提出,QLineEdit中设置的占位符(由setPlaceholderText函数设置)文本能完全显示时不要显示tips,不完全显示时要显示tips,这样显得简洁。 想了想逻辑上比较好实现,那就是占位符文本长度大于QLineEdit宽度就显示…