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