共用方式為


主時鐘

迷你驅動程式可以將流同步到由其他迷你驅動程式所建立的時鐘,並且多個流可以同步到同一個時鐘。 如果管腳使用或產生這類 主要時鐘,迷你驅動程式應該支援 KSPROPERTY_STREAM_MASTERCLOCK。 客戶也可以使用這個屬性來設定引腳的主時鐘。 執行渲染和擷取作業的接腳經常使用主時鐘。 迷你驅動程式負責在終止時釋放時鐘參照。

主時鐘的介面是支援方法、屬性和事件的檔案物件。

針對檔案物件的所有查詢僅在PASSIVE_LEVEL上可用。 不過,時鐘位置查詢也會透過 DISPATCH_LEVEL 處可用的直接函式呼叫指標來支援,只要檔案物件有效,該指標就有效。 此直接呼叫必須傳遞至時鐘的檔案物件做為內容參數。

文件控制碼是透過篩選器插針實例上的建立請求來獲取的,就像插針的創建是由 IRP_MJ_CREATE 完成一樣。 該請求會導致檔案控制碼的建立,就像建立針腳的檔案控制碼一樣,並具有自己的上下文資訊。 然後,此檔案控制碼會傳回呼叫端,並可用來設定核心模式篩選的主要時鐘。 在篩選器被指定為圖形的主時鐘時,pin 實例可以查詢父檔案物件,以確定它是否擁有主時鐘。

當篩選器獲得此主要時鐘的檔案控制碼時,它就可以用來查詢屬性。 如果主要時鐘是以核心模式篩選為基礎,它必須支援介面,以查詢主要時鐘核心模式部分的檔案控制碼。 如果不支援介面,則會假設時鐘是以使用者模式為基礎,且核心模式篩選無法與之同步。

然後,要求主要時鐘句柄的 DirectShow Proxy 篩選會將它傳遞至其基礎核心模式篩選檔案句柄。 核心模式篩選會參考基礎檔案物件。 如果篩選器已經有主要時鐘,它會取消參考檔案物件並使用新的控制碼。 若要這樣做,篩選器必須處於 停止狀態

主時鐘物件上的實體時間通常是以硬體為基礎。 如果呈現主要時鐘的過濾器沒有實體時鐘,則串流時間會根據所呈現資料的時間戳記進行。 在這種情況下,時間戳記可能會因缺乏資料而停止。

主時鐘背後的物理時間可能是遠程的,在這種情況下,本地代理有責任提供準確的讀數。 例如,Proxy 負責補償 1394 連線的延遲,或平均網路上的延遲。 此外,如果某個其他核心過濾器充當相同 1394 匯流排上第二個設備的代理,則這兩個設備可能會協商一種與主時鐘介面接合的專用方法。 在這種情況下,裝置必須使用專用介面來確定時鐘型別,以驗證相容性。