配接器的專屬資料交集處理常式 (迷你埠驅動程式物件的 IMiniport::D ataRangeIntersection 方法) 可以傳回STATUS_NOT_IMPLEMENTED狀態碼,以拒絕執行資料交集檢查。 在此情況下,埠驅動程式的預設數據交集處理程式會代表配接器執行檢查。
您可以將配接器驅動程式的最小資料交集處理常式實作為 DataRangeIntersection 方法,以傳回STATUS_NOT_IMPLEMENTED來拒絕所有資料交集要求。
埠驅動程式預設處理常式目前的實作受限於它可以處理的資料範圍類型:
僅限 PCM 資料格式
僅單聲道和立體聲音訊串流
支援非 PCM 或多通道格式的配接器驅動程式應該實作專屬數據交集處理常式,而不是依賴埠驅動程式來處理這些格式的數據交集。
此外,預設處理常式僅支援可由 KSDATAFORMAT_DSOUND 或 KSDATAFORMAT_WAVEFORMATEX 結構指定的音訊格式。 它不支援任何包含 WAVEFORMATEXTENSIBLE 結構的格式,例如,需要為具有兩個以上通道的格式指定通道遮罩。
從兩個資料範圍之間的交集選擇通用格式時,埠驅動程式的預設處理常式一律會選取每個參數交集區域中的最高值:
如果交集跨越多個有效取樣頻率 (例如,11、22 和 44 kHz) ,預設處理常式會挑選最高頻率。
例如,如果交集跨越一個以上的有效每樣本位數值(例如8位、16位和32位),則默認處理程式會選擇最大值。
如果交集跨越單聲道和立體聲格式,預設處理程式會挑選立體聲。
如果預設處理常式選擇的格式不令人滿意,配接器驅動程式可以選擇拒絕該格式,方法是當 SysAudio 嘗試使用該格式建立接收針腳時使 NewStream 呼叫失敗(例如,請參閱 IMiniportWavePci::NewStream)。 如果呼叫失敗,SysAudio 將不會繼續尋找資料交集。 相反地,它會通過循環查看系統篩選所支援的 PCM 格式清單,以建立連接,例如 KMixer,直到找到配接器的插腳也可以支援的格式為止。 清單會先以較高品質的格式排序。 一如既往,配接器會讓這些格式的 NewStream 呼叫失敗來拒絕清單中不令人滿意的格式。