本主題介紹 Microsoft 已新增至其音訊埠類別驅動程式 (PortCls) 的協助程式介面,以簡化支援卸載音訊處理的驅動程式實作。
當您開發與能處理硬體卸載音訊數據流的音訊配接器共同運作的 WaveRT 迷你端口驅動程式時,您的驅動程式會與 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 標頭檔會定義這些介面。 如需如何開發可處理硬體卸載音訊資料流程的驅動程式的詳細資訊,請參閱 硬體卸載音訊驅動程式實作。