共用方式為


卸載音訊處理的 Portcls 協助程式介面

本主題提供 Microsoft 在其音訊埠類別驅動程式 (PortCls) 新增的協助程式介面,以簡化支援卸載音訊處理的驅動程式實作。

當您開發將搭配能夠處理硬體卸載音訊串流的音訊配接器時,迷你埠驅動程式會使用 PortCls 來串流和/或處理音訊資料。

PortCls 可以處理所有卸載相關的核心串流 (KS) 屬性,而這就是開發 WaveRT 迷你埠驅動程式以公開處理硬體卸載音訊串流支援的功能。 由於更新的結果,PortCls 只會透過兩個新定義的介面,針對硬體和/或驅動程式特定作業呼叫基礎迷你埠驅動程式:

您必須開發兩個類別來處理這些介面,每個介面各一個。

使用 IMiniportAudioEngineNode

您開發以使用 IMiniportAudioEngineNode的類別也必須繼承自 IMiniportWaveRTIMiniportAudioEngineNode中定義的方法可讓您的驅動程式使用 KS 屬性,透過 KS 篩選控制碼存取音訊引擎。 類別/介面階層如下所示:

此圖顯示繼承自 IMiniportWaveRT 和 IMiniportAudioEngineNode 的自訂 WaveRT 迷你埠類別。

因此,例如,如果您開發名為 CYourMiniportWaveRT 的類別,則如上圖所示,CYourMiniportWaveRT 必須實作所有方法, (顯示為針對兩個父介面定義的 Operations) 。

這類類別的基本架構範本會包含下列程式碼:

class CMiniportWaveRT : 
    public IMiniportWaveRT,
    public IMiniportAudioEngineNode,
    public CUnknown
{
...

    IMP_IMiniportWaveRT;
    IMP_IMiniportAudioEngineNode;
...

};

Portcls.h標頭檔會定義這些介面。

使用 IMiniportStreamAudioEngineNode

您開發以使用第二個介面 IMiniportStreamAudioEngineNode的類別也必須繼承自 IMiniportWaveRTStreamNotificationIMiniportStreamAudioEngineNode中定義的方法可讓您的驅動程式使用 KS 屬性,透過釘選實例控制碼存取音訊引擎。 類別/介面階層如下所示:

此圖顯示繼承自 IMiniportWaveRTStreamNotification 和 IMiniportStreamAudioEngineNode 的自訂 WaveRT 資料流程迷你埠類別。

因此,例如,如果您開發名為 CYourMiniportWaveRTStream 的類別,則如上圖所示,CYourMiniportWaveRTStream 必須實作兩個父介面定義的所有方法。

這類類別的基本架構範本會包含下列程式碼:

class CMiniportWaveRTStream : 
    public IMiniportWaveRTStreamNotification,
    public IMiniportStreamAudioEngineNode,
    public CUnknown
{
...
    IMP_IMiniportWaveRTStream;
    IMP_IMiniportWaveRTStreamNotification;
    IMP_IMiniportStreamAudioEngineNode;
...

};

Portcls.h標頭檔會定義這些介面。 如需如何開發可處理硬體卸載音訊串流之驅動程式的詳細資訊,請參閱 硬體卸載音訊驅動程式實作