用于卸载音频处理的 Portcls 帮助程序接口
本主题介绍 Microsoft 已添加到其音频端口类驱动程序 (PortCls) 的帮助程序接口,以简化支持卸载音频处理的驱动程序的实现。
当你开发的 WaveRT 微型端口驱动程序使用能够处理硬件卸载音频流的音频适配器时,微型端口驱动程序可与 PortCls 配合使用来流式传输和/或处理音频数据。
PortCls 可以处理所有卸载相关的内核流式处理 (KS) 属性,这使得开发 WaveRT 微型端口驱动程序变得简单,以公开对处理硬件卸载音频流的支持。 由于更新,PortCls 仅通过两个新定义的接口调用基础微型端口驱动程序,进行硬件和/或特定于驱动程序的操作:
必须开发两个类才能使用这些接口,每个接口一个。
使用 IMiniportAudioEngineNode
为与 IMiniportAudioEngineNode 一起使用而开发的类还必须继承自 IMiniportWaveRT。 IMiniportAudioEngineNode 中定义的方法允许驱动程序使用通过 KS 筛选器句柄访问音频引擎的 KS 属性。 类/接口层次结构如下所示:
因此,例如,如果开发名为 CYourMiniportWaveRT 的类,则如上图所示,CYourMiniportWaveRT 必须实现为两个父接口定义的所有方法(显示为操作)。
此类的框架模板将包含以下代码:
class CMiniportWaveRT :
public IMiniportWaveRT,
public IMiniportAudioEngineNode,
public CUnknown
{
...
IMP_IMiniportWaveRT;
IMP_IMiniportAudioEngineNode;
...
};
Portcls.h 头文件定义这些接口。
使用 IMiniportStreamAudioEngineNode
为与第二个接口 IMiniportStreamAudioEngineNode 一起使用而开发的类还必须继承自 IMiniportWaveRTStreamNotification。 IMiniportStreamAudioEngineNode 中定义的方法允许驱动程序使用 KS 属性,这些属性通过引脚实例句柄访问音频引擎。 类/接口层次结构如下所示:
因此,例如,如果开发名为 CYourMiniportWaveRTStream 的类,则如上图所示,CYourMiniportWaveRTStream 必须实现为两个父接口定义的所有方法。
此类的框架模板将包含以下代码:
class CMiniportWaveRTStream :
public IMiniportWaveRTStreamNotification,
public IMiniportStreamAudioEngineNode,
public CUnknown
{
...
IMP_IMiniportWaveRTStream;
IMP_IMiniportWaveRTStreamNotification;
IMP_IMiniportStreamAudioEngineNode;
...
};
Portcls.h 头文件定义这些接口。 有关如何开发可处理硬件卸载音频流的驱动程序的详细信息,请参阅硬件卸载音频驱动程序实现。