資料格式是描述連線某些層面的單一參數集。 例如,音訊資料格式可能會指定每秒 X 個樣本和每個樣本 Y 位的特定音訊格式。
資料範圍指定有效參數的序列。 例如,音訊資料範圍可以指定某種格式的音訊,每秒有 A-B 樣本數量和每個樣本有 C-D 位數。
迷你驅動程式會針對對應KSPIN_DESCRIPTOR結構的 DataRanges 成員中的特定針腳提供支援的資料範圍清單。
在 AVStream 中,迷你驅動程式可以透過在 KSPIN_DESCRIPTOR_EX 的 IntersectHandler 成員中提供一個指向迷你驅動程式提供的回呼常式的指標,來提供自己的資料範圍交集處理常式。 若要讓 AVStream 與範圍相交,請將此成員設定為 NULL。 請參閱 AVStrMiniIntersectHandlerEx ,以瞭解如何定義回呼常式。
如果迷你驅動程式提供相交處理程序,當需要進行相交時,迷你驅動程式會收到兩個在主要類型、子格式和指定元方面匹配的資料範圍。 此外,資料範圍的必要屬性也相符。
如果範圍相交,且在 AVStrMiniIntersectHandlerEx 回呼例程的 Data 參數中提供足夠的緩衝區空間,交集例程會從交集中選擇一種格式,然後將其傳回給 Data 所指向的緩衝區中的呼叫端。
如果兩個資料範圍不相交,處理程式會傳回STATUS_NO_MATCH。
如果迷你驅動程式已指定 AVStrMiniPinSetDataFormat 分派,則 AVStream 會呼叫此分派,以通知迷你驅動程式 AVStream 正在針腳上設定特定格式。 在KSPIN_DISPATCH結構的 SetDataFormat 成員中提供 AVStrMiniPinSetDataFormat 回呼常式的指標。 ( 屬於資料流程類別 用戶端的迷你驅動程式會接收 SRB_SET_DATA_FORMAT ,而不是 AVStrMiniPinSetDataFormat。
迷你驅動程式可以從 AVStrMiniPinSetDataFormat 傳回STATUS_NO_MATCH來拒絕建議的格式。
除了在建立針腳之前對 AVStrMiniPinSetDataFormat 進行初始呼叫之外,您的迷你驅動程式可能會在針腳轉換成 RUN 狀態之前收到第二個 AVStrMiniPinSetDataFormat 呼叫。 如果您的 AVStream 或資料流程類別用戶端是視訊擷取迷你驅動程式,而且您會收到這類通知,則 此分派會包含實際的表面參數。 可能的話,迷你驅動程式不應該讓第二個格式變更失敗。 不要假設會發生第二次調度呼叫。
迷你驅動程式應該擷取包含在上次成功的 AVStrMiniPinSetDataFormat 分派中的任何格式的數據。