卸載音訊處理的 Portcls 協助程式介面
本主題提供 Microsoft 在其音訊埠類別驅動程式 (PortCls) 新增的協助程式介面,以簡化支援卸載音訊處理的驅動程式實作。
當您開發將搭配能夠處理硬體卸載音訊串流的音訊配接器時,迷你埠驅動程式會使用 PortCls 來串流和/或處理音訊資料。
PortCls 可以處理所有卸載相關的核心串流 (KS) 屬性,而這就是開發 WaveRT 迷你埠驅動程式以公開處理硬體卸載音訊串流支援的功能。 由於更新的結果,PortCls 只會透過兩個新定義的介面,針對硬體和/或驅動程式特定作業呼叫基礎迷你埠驅動程式:
您必須開發兩個類別來處理這些介面,每個介面各一個。
使用 IMiniportAudioEngineNode
您開發以使用 IMiniportAudioEngineNode的類別也必須繼承自 IMiniportWaveRT。 IMiniportAudioEngineNode中定義的方法可讓您的驅動程式使用 KS 屬性,透過 KS 篩選控制碼存取音訊引擎。 類別/介面階層如下所示:
因此,例如,如果您開發名為 CYourMiniportWaveRT 的類別,則如上圖所示,CYourMiniportWaveRT 必須實作所有方法, (顯示為針對兩個父介面定義的 Operations) 。
這類類別的基本架構範本會包含下列程式碼:
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標頭檔會定義這些介面。 如需如何開發可處理硬體卸載音訊串流之驅動程式的詳細資訊,請參閱 硬體卸載音訊驅動程式實作。