共用方式為


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

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

當您開發與能處理硬體卸載音訊數據流的音訊配接器共同運作的 WaveRT 迷你端口驅動程式時,您的驅動程式會與 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 屬性,透過針腳實例控制碼存取音訊引擎。 類別/介面階層如下:

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

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

這類的基本範本將包含以下程式碼:

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

};

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