MFCLOCK_PROPERTIES結構 (mfidl.h)
定義時鐘的屬性。
語法
typedef struct _MFCLOCK_PROPERTIES {
unsigned __int64 qwCorrelationRate;
GUID guidClockId;
DWORD dwClockFlags;
unsigned __int64 qwClockFrequency;
DWORD dwClockTolerance;
DWORD dwClockJitter;
} MFCLOCK_PROPERTIES;
成員
qwCorrelationRate
時鐘與其系統時間相互關聯的間隔,以 100 奈秒為單位。 如果值為零,每當呼叫 IMFClock::GetCorrelatedTime 方法時,就會建立相互關聯。
guidClockId
提供時間之基礎裝置的唯一識別碼。 如果兩個時鐘具有相同的唯一識別碼,則會以相同的裝置為基礎。 如果基礎裝置未在兩個時鐘之間共用,則可以 GUID_Null值。
dwClockFlags
來自MFCLOCK_RELATIONAL_FLAGS列舉的旗標位OR。
qwClockFrequency
以 Hz 為單位的時鐘頻率。 MFCLOCK_FREQUENCY_HNS值表示時鐘的頻率為 10 MHz (100 奈秒刻度) ,這是媒體基礎的標準MFTIME時間單位。 如果 IMFClock::GetClockCharacteristics 方法傳回 MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ 旗標,則此欄位的值必須 MFCLOCK_FREQUENCY_HNS。
dwClockTolerance
時鐘上可能存在的不透明度,以百億分之一 (ppb) 。 例如,50 ppb 的不精確度表示時鐘可能會每十億秒的即時漂移最多 50 秒。 如果不知道容錯,此值會 MFCLOCK_TOLERANCE_UNKNOWN。 這個常數等於每百萬個 (ppm) 50 個部分。
dwClockJitter
可能存在的抖動數量,以 100 奈秒為單位。 Jitter 是頻率的變化,因為取樣基礎時鐘。 抖動不包含漂移所造成的不透明,這會反映在 dwClockTolerance的值中。
對於以單一裝置為基礎的時鐘,最小抖動是刻度期間長度, (頻率的反轉) 。 例如,如果頻率為 10 Hz,則抖動為 0.1 秒, MFTIME 單位為 1,000,000。 這個值反映時鐘可能在下一個刻度之前取樣的事實,導致一個週期小於實際時間的時鐘時間。 如果頻率大於 10 MHz,則抖動應該設定為 1 (最小值) 。
如果時鐘的基礎硬體裝置未直接時間戳記傳入資料,抖動也會包含分派驅動程式插斷服務常式所需的時間, (ISR) 。 在此情況下,預期的抖動應該包含下列值:
值 | 意義 |
---|---|
|
因設備磁碟機 ISR 期間時間戳記而發生抖動。 |
|
由於延遲程序呼叫期間 (DPC) 處理期間的時間戳記而發生抖動。 |
|
由於在時間戳記之前卸載至一般執行緒執行,因此發生抖動。 |
需求
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
標頭 | mfidl.h |