KSJACK_DESCRIPTION3 結構

在 22H2 版和更新版本的 Windows 作業系統中 KSJACK_DESCRIPTION3 ,結構可用來指定和變更插孔的目前組態。

語法

typedef struct _tagKSJACK_DESCRIPTION3
{
  ULONG              ConfigId; 

} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;

成員

ConfigId

驅動程式定義了描述目前組態的位掩碼或列舉,變更此值會導致 audioendpointbuilder 重新整理快取,以確保已發佈的端點符合目前的組態。

備註

使用KSJACK_DESCRIPTION3通訊音訊裝置變更

Windows 音訊系統會在音訊端點建立期間快取音訊裝置功能。 這些快取值適用於 HW 音訊引擎、格式支援、容器標識碼、緩衝區大小特性等功能。這些快取值會在 Windows 安裝期間保留。 只有在音訊驅動程式更新或操作系統升級期間,才會重新整理它們。

透過 KSJACK_DESCRIPTION3,Windows 音訊系統提供一種機制,讓音訊驅動程式要求捨棄並重新整理所有快取的值。 要求可以透過音訊裝置功能的變更來觸發,例如資源條件約束。

每當驅動程式在運行時間變更 KSJACK_DESCRIPTION3 的內容時,驅動程式就會觸發現有的 KSEVENT_PINCAPS_JACKINFOCHANGE 事件。

Windows 音訊系統會維護在音訊端點上快取的最後一個回報 的 ConfigId 值。 擷取 ConfigId 值,以回應 KSEVENT_PINCAPS_JACKINFOCHANGE 事件,以及在系統開機時正常處理音訊端點期間,音訊端點產生器服務重新啟動、音訊驅動程式更新或端點的介面狀態變更。

如果擷取的 ConfigId 值與先前儲存的值不同,Windows 音訊系統會捨棄所有先前快取的端點功能,並重新整理它們。

建議的使用方式是在驅動程式中定義多個音訊端點組態,此組態是由 ConfigId (位掩碼或列舉) 值所控制。 例如, ConfigId 為 1 可能表示音訊引擎節點存在, 而 ConfigId 2 則不會報告音訊引擎節點。 驅動程式所使用的 ConfigId 會透過 KSPROPERTY_JACK_DESCRIPTION3 與 Windows 音訊系統共用,並作用以與 Windows 音訊系統快取的功能同步處理端點。

ConfigId 的值對 Windows 不透明。 音訊驅動程式可以使用在運行時間選擇的時間戳或遞增值,取代上述的位掩碼或列舉。 不建議使用此策略,因為它可能會導致啟動期間不必要的端點重新整理,或介面變更時,將最後儲存 的 ConfigId 值同步處理至新報告的值,即使端點功能未變更也一樣。 這種方法也可能會增加驅動程式和 Windows 同步的機率,這可能會導致音訊播放失敗。

ConfigId 變更時,用來重新整理端點上快取值的機制與操作系統升級和驅動程式 匯報 相同。 系統會建立具有不同標識元的新端點,其中包含符合端點新 ConfigId 設定的重新整理快取值,然後使用者設定會從舊端點複製到新的端點,最後刪除舊的端點。 如需詳細資訊,請參閱作業系統升級中的音訊端點移轉程式。請參閱 操作系統升級

規格需求

版本

可在 22H2 版和更新版本的 Windows 作業系統中使用。

標頭

Ksmedia.h (包含 Ksmedia.h)

另請參閱

KSJACK_DESCRIPTION

KSPROPERTY_JACK_DESCRIPTION3

IKsJackDescription2::GetJackDescription2

動態格式變更

操作系統升級