KS 資料格式和資料範圍
KS 針腳會使用 KSDATAFORMAT 和 KSDATARANGE 結構來指定資料格式和範圍。 資料格式會指定資料流程的單一屬性,例如音訊取樣大小為 16 位。 資料範圍指定多種格式,例如 16-24 位的音訊取樣範圍。
迷你驅動程式包含每個 KSPIN_DESCRIPTOR 結構中 KSDATARANGE 結構的陣列。 Microsoft 提供的格式會在 ksmedia.h中列舉。
KSDATARANGE 結構與 KSDATAFORMAT 結構具有相同的成員;不過,minidriver 可以為 KSDATARANGE 的主要格式、子格式和規範成員指定萬用字元值。
迷你驅動程式會使用這些結構的擴充版本來定義媒體特定值。 若要瞭解如何在音訊和視訊擷取中運作,請參閱: 音訊資料格式和資料範圍 和 選取資料流程格式。
用戶端會使用下列屬性來查詢篩選上由指定針腳處理站具現化的針腳資料格式支援:
KSPROPERTY_PIN_DATARANGES。 KS 篩選會報告針腳處理站具現化之針腳所支援的所有資料範圍。 這包括釘選 可 支援的每個資料格式。
KSPROPERTY_PIN_CONSTRAINEDDATARANGES。 KS 篩選會根據目前的內部驅動程式狀態,報告由針腳處理站具現化之針腳所支援的所有資料範圍。
KSPROPERTY_PIN_PROPOSEDATAFORMAT。 用戶端可以使用這個屬性來查詢針腳處理站所具現化的針腳是否支援特定的資料格式。
KSPROPERTY_PIN_DATAINTERSECTION。 用戶端可以使用這個屬性來提供一系列的資料格式。
一旦具現化針腳,使用者模式用戶端就可以透過 KSPROPSETID_Connection 屬性要求來判斷目前的資料格式或要求資料格式的變更。 例如,用戶端會使用 KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT 來判斷針腳是否支援指定的資料格式。 用戶端會使用 KSPROPERTY_CONNECTION_DATAFORMAT 來變更資料格式。
KS 迷你驅動程式和用戶端可以動態交涉資料格式。 當資料流程的資料格式變更時,minidriver 會在KSSTREAM_HEADER 的 OptionsFlags 成員中指定KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY旗標。 迷你驅動程式會在對應的資料緩衝區中傳遞 KSDATAFORMAT 結構中所述的新資料格式本身。