音频的通用 Windows 驱动程序 您所在的位置:网站首页 inf文件怎么下载 音频的通用 Windows 驱动程序

音频的通用 Windows 驱动程序

#音频的通用 Windows 驱动程序| 来源: 网络整理| 查看: 265

音频的通用 Windows 驱动程序 项目 06/15/2023

在Windows 10可以编写可跨多种硬件类型工作的通用音频驱动程序。 本主题讨论此方法的优点以及平台之间的差异。 除了适用于音频的通用 Windows 驱动程序外,Windows 还继续支持以前的音频驱动程序技术,例如 WDM。

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

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

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

Visual Studio 2015:将“目标平台”设置为等于“通用”。 有关设置驱动程序开发环境的详细信息,请参阅使用通用 Windows 驱动程序入门。

APIValidator 工具:可以使用 ApiValidator.exe 工具来验证驱动程序调用的 API 是否对通用 Windows 驱动程序有效。 此工具是适用于Windows 10的 Windows 驱动程序工具包 (WDK) 的一部分,如果使用 Visual Studio 2015,该工具会自动运行。 有关详细信息,请参阅 验证通用 Windows 驱动程序。

DDI 参考文档:DDI 参考文档已更新,以指示哪些 DDI 受通用 Windows 驱动程序支持。 有关详细信息,请参阅 音频设备参考。

创建通用音频驱动程序

有关分步指南,请参阅使用通用 Windows 驱动程序入门。 下面是这些步骤的摘要:

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

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

创建安装包:如果目标是运行Windows 10桌面版 (家庭版、专业版、企业版和教育版) 的设备,请使用可配置的 INF 文件。 如果目标是运行 Windows 10 移动版 的设备,请使用 PkgGen 生成 .spkg 文件。

为桌面版或Windows 10 移动版Windows 10生成、安装、部署和调试驱动程序。

代码示例

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

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

从Windows 10开始,驱动程序编程接口是基于 OneCoreUAP 的 Windows 版本的一部分。 通过使用该通用集,可以编写通用 Windows 驱动程序。 这些驱动程序将在桌面版和Windows 10 移动版的Windows 10以及其他Windows 10版本上运行。

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

音频驱动程序事件集

音频驱动程序接口

音频驱动程序属性集

音频驱动程序结构

音频拓扑节点

高清音频 DDI 参考

端口类音频驱动程序参考

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

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

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

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

使用 ApiValidator.exe 工具验证驱动程序调用的 DDI 是否对通用 Windows 驱动程序有效。 此工具是适用于Windows 10的 Windows 驱动程序工具包 (WDK) 的一部分,如果使用 Visual Studio 2015,该工具会自动运行。 有关详细信息,请参阅 验证通用 Windows 驱动程序。

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

将这些调用替换为备用调用,或者创建代码解决方法,或编写新的驱动程序。

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

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

如果存在) 和编解码器,则 ( 载 脂蛋白 OEM 自定义项

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

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

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

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

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

提交组件化 INF 文件

必须将 APO INF 包与基本驱动程序包分开提交到合作伙伴中心。 有关创建包的详细信息,请参阅 Windows HLK 入门。

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 包进行安装。 在许多情况下,可以使用 INF AddReg 指令以简单方式执行此操作。 在更复杂的情况下,可以使用优化文件。 

基本驱动程序包不得依赖这些自定义项来运行 (,当然,) 功能可能会减少。 

UWP 音频设置 APP

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

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

若要基于驱动程序事件以编程方式启动 UWP 硬件支持应用, (例如,当新音频设备) 连接时,请使用 Windows Shell API。 Windows 10 Shell API 支持基于资源激活或通过 IApplicationActivationManager 直接启动 UWP UI 的方法。 有关 UWP 应用程序的自动启动的更多详细信息,请参阅自动启动Windows 10 UWP 应用。 

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

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

音频模块当前并非旨在促进 UWP 应用与音频引擎中运行的 SW APO 之间的直接通信。

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

APO HWID 字符串构造

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)

其中:

v (4) 是 APO 设备供应商的 4 个字符标识符。 这将由 Microsoft 管理。  (4) 是 APO 供应商定义的 APO 的 4 个字符标识符。  n (4) 是父设备的子系统供应商的 4 个字符 PCI SIG 分配标识符。 这通常是 OEM 标识符。 (4) 是父设备的供应商定义的 4 个字符子系统标识符。 这通常是 OEM 产品标识符。 即插即用驱动程序更新的 INF 版本和日期评估

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

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

APO 驱动程序注册表项

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

使用 Windows 服务促进 UWP APO 通信

管理用户模式组件(如 ASO)并非严格要求 Windows 服务。 但是,如果你的设计包括 RPC 服务器来促进 UWP APO 通信,我们建议在 Windows 服务中实现该功能,然后控制音频引擎中运行的 APO。 

生成适用于 Windows 10 Desktop 的 Sysvad 通用音频示例

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

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

在“解决方案资源管理器”中,选择并按住 (或右键单击“) 解决方案”sysvad“,然后选择”Configuration Manager”。 如果要部署到 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 -a tabletaudiosample.inf

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

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

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

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有