爱收集资源网

Windows10通用音频驱动程序入门:分步详解

网络整理 2023-10-28 15:01

本文内容

在Windows10可以编撰可跨多种硬件类型工作的通用音频驱动程序。本主题讨论此方式的优点以及平台之间的差别。不仅适用于音频的通用Windows驱动程序外,Windows还继续支持先前的音频驱动程序技术,比如WDM。

使用适用于音频的通用Windows驱动程序入门

IHV可以开发适用于台式机、笔记本笔记本、平板笔记本、手机)的所有设备(通用Windows驱动程序。这可以减轻初始开发和后续代码维护的开发时间和成本。

这种工具可用于开发通用Windows驱动程序:

创建通用音频驱动程序

有关分步手册,请参阅使用通用Windows驱动程序入门。下边是这种步骤的摘要:

加载通用音频sysvad示例以用作通用音频驱动程序的起点。或则,从空的WDM驱动程序模板开始,并按照须要为音频驱动程序添加通用sysvad示例中的代码。

在项目属性中,将“目标平台”设置为“通用”。

创建安装包:假如目标是运行Windows10桌面版(家庭版、专业版、企业版和教育版)的设备,请使用可配置的INF文件。假如目标是运行Windows10联通版的设备视频通用代码是什么,请使用PkgGen生成.spkg文件。

为桌面版或Windows10联通版Windows10生成、安装、部署和调试驱动程序。

代码示例

Sysvad和SwapAPO已转换为通用Windows驱动程序示例。有关详尽信息,请参阅示例音频驱动程序。

适用于音频的通用Windows驱动程序的可用编程插口

从Windows10开始,驱动程序编程插口是基于OneCoreUAP的Windows版本的一部份。通过使用该通用集,可以编撰通用Windows驱动程序。这种驱动程序将在桌面版和Windows10联通版的Windows10以及其他Windows10版本上运行。

使用通用音频驱动程序时,可以使用以下DDI。

将现有音频驱动程序转换为通用Windows驱动程序

根据此过程将现有音频驱动程序转换为通用Windows驱动程序。

确定现有驱动程序调用是否将在OneCoreUAPWindows上运行。检测参考页的要求部份。有关详尽信息,请参阅音频设备参考。

将驱动程序重新编译为通用Windows驱动程序。在项目属性中,将“目标平台”设置为“通用”。

使用ApiValidator.exe工具验证驱动程序调用的DDI是否对通用Windows驱动程序有效。此工具是适用于Windows10的Windows驱动程序工具包(WDK)的一部份,假如使用VisualStudio2015,该工具会手动运行。有关详尽信息,请参阅验证通用Windows驱动程序。

假如驱动程序调用不属于OneCoreUAP的插口,编译器将报告错误。

将这种调用替换为备用调用,或则创建代码解决方式,或编撰新的驱动程序。

创建组件化音频驱动程序安装概述

若要创建更顺畅、更可靠的安装体验并更好地支持组件服务,请将驱动程序安装过程界定为以下组件。

(可选)单独的INF文件可用于DSP和编解码器。

此图总结了组件化音频安装。

单独的扩充INF文件用于自定义特定系统的每位基本驱动程序组件。自定义项包括优化参数和其他特定于系统的设置。有关详尽信息,请参阅使用扩充INF文件。

扩充INF文件必须是通用INF文件。有关详尽信息,请参阅使用通用INF文件。

有关使用INF文件添加软件的信息,请参阅使用组件INF文件和DCH设计原则和最佳做法。

递交组件化INF文件

视频通用代码是什么_视频通用代码是什么_视频通用代码是什么

必须将APOINF包与基本驱动程序包分开递交到合作伙伴中心。有关创建包的详尽信息,请参阅WindowsHLK入门。

SYSVAD组件化INF文件

若要查看组件化INF文件的示例,请查看Github上的sysvad/TabletAudioSample。

文件名说明

ComponentizedAudioSample.inf

基本组件化示例音频INF文件。

ComponentizedAudioSampleExtension.inf

具有其他OEM自定义项的sysvad基础的扩充驱动程序。

ComponentizedApoSample.inf

APO示例扩充INF文件。

传统的INF文件在SYSVAD示例中依然可用。

文件名说明

tabletaudiosample.inf

一个桌面整体INF文件,其中包含安装驱动程序所需的所有信息。

APO供应商特定的优化参数和功能配置

所有APO供应商系统特定的设置、参数和优化值都必须通过扩充INF包进行安装。在许多情况下,可以使用INFAddReg指令以简单方法执行此操作。在更复杂的情况下,可以使用优化文件。

基本驱动程序包不得依赖这种自定义项来运行(,其实,)功能可能会降低。

UWP音频设置APP

若要实现最终用户UI,请使用适用于Windows通用音频驱动程序的硬件支持应用(HSA)。有关详尽信息,请参阅硬件支持应用(HSA):驱动程序开发人员的步骤。

以编程方法启动UWP硬件支持应用

若要基于驱动程序风波以编程方法启动UWP硬件支持应用,(比如,当新音频设备)联接时,请使用WindowsShellAPI。Windows10ShellAPI支持基于资源激活或通过IApplicationActivationManager直接启动UWPUI的方式。有关UWP应用程序的手动启动的更多详尽信息,请参阅。

APO和设备驱动程序供应商对AudioModulesAPI的使用

音频模块API/DDI致力标准化通讯传输(而不是将UWP应用程序或用户模式服务之间传递给内核驱动程序模块或DSP处理块的命令的合同)。音频模块须要实现正确的DDI的驱动程序来支持模块枚举和通讯。命令作为二补码文件传递,解释/定义由创建者决定。

音频模块当前并非致力推动UWP应用与音频引擎中运行的SWAPO之间的直接通讯。

有关音频模块的详尽信息,请参阅实现音频模块通讯和配置和查询音频设备模块。

APOHWID字符串构造

APO硬件ID同时包含标准信息和供应商定义的字符串。

它们的构造如下:

SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4) &REV_r(4)
SWC\VEN_v(4)&AID_a(4)&SUBSYS_ n(4)s(4)
SWC\VEN_v(4)&AID_a(4)

其中:

即插即用驱动程序更新的INF版本和日期评估

Windows即插即用系统会评估日期和驱动程序版本,以确定在存在多个驱动程序时要安装的驱动器。有关详尽信息,请参阅Windows怎样对驱动程序进行排行。

视频通用代码是什么_视频通用代码是什么_视频通用代码是什么

若要准许使用最新的驱动程序,请确保并更新每位新版本的驱动程序的日期和版本。

APO驱动程序注册表项

对于第三方定义的音频驱动程序/APO注册表项,请使用HKR。

使用Windows服务推动UWPAPO通讯

管理用户模式组件(如ASO)并非严格要求Windows服务。并且,假如你的设计包括RPC服务器来推动UWPAPO通讯,我们建议在Windows服务中实现该功能,之后控制音频引擎中运行的APO。

生成适用于Windows10Desktop的Sysvad通用音频示例

完成以下步骤,为Windows10桌面生成sysvad示例。

(tabletaudiosample.inf)找到桌面inf文件,并将制造商名称设置为“Contoso”等值

在“解决方案资源管理器”中,选择并按住(或右键单击“)解决方案”sysvad“,之后选择”ConfigurationManager”。假如要布署到64位版本的Windows,请将目标平台设置为x64。确保所有项目的配置和平台设置都相同。

在sysvad解决方案中生成所有项目。

从生成中找到生成的输出目录。诸如,它可以坐落如下所示的目录中:

C:\Program Files (x86)\Windows Kits\10\src\audio\sysvad\x64\Debug\package

将以下文件复制到要安装sysvad驱动程序的系统:

文件说明

TabletAudioSample.sys

驱动程序文件。

tabletaudiosample.inf

一个信息(INF)文件,其中包含安装驱动程序所需的信息。

sysvad.cat

目录文件。

SwapAPO.dll

用于管理ADO的UI的示例驱动程序扩充。

KeywordDetectorAdapter.dll

示例关键字(keyword)测量器。

安装和测试驱动程序

根据以下步骤在目标系统上使用PnpUtil安装驱动程序。

打开管理员命令提示符,并在将驱动程序文件复制到的目录中键入以下内容。

pnputil-i-atabletaudiosample.inf

应完成sysvad驱动程序安装。假如有任何错误,可以检测此文件以获取其他信息:%windir%\inf\setupapi.dev.log

在“设备管理器”的“视图”菜单上,选择“按类型排序的设备”。在设备树中,找到Microsoft虚拟音频设备(WDM)-Sysvad示例。这一般坐落“声音、视频和游戏控制器”节点下。

在目标计算机上,打开控制面板并导航到“硬件和声音>管理音频设备”。在“声音”对话框中视频通用代码是什么,选择标记为“Microsoft虚拟音频设备(WDM)-Sysvad示例”的耳机图标,之后选择“设置默认值”,但不选择“确定”。这会使“声音”对话框保持打开状态。

在目标计算机上找到MP3或其他音频文件,之后双击播放它。之后在“声音”对话框中,验证音量级别指示器中是否存在与Microsoft虚拟音频设备关联的活动(WDM)-Sysvad示例驱动程序。

视频通用代码是什么