структура 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 .

qwClockFrequency

Тактовая частота в Гц. Значение MFCLOCK_FREQUENCY_HNS означает, что часы имеют частоту 10 МГц (100 наносекундных тактов), которая является стандартной единицей времени MFTIME в Media Foundation. Если метод IMFClock::GetClockCharacteristics возвращает флаг MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ , значение этого поля должно быть MFCLOCK_FREQUENCY_HNS.

dwClockTolerance

Количество неточностей, которые могут присутствовать на часах, в частях на миллиард (ppb). Например, неточность в 50 ppb означает, что часы могут дрейфовать до 50 секунд на миллиард секунд в режиме реального времени. Если погрешность неизвестна, значение будет MFCLOCK_TOLERANCE_UNKNOWN. Эта константа равна 50 частям на миллион (ppm).

dwClockJitter

Возможное количество дрожания в единицах 100 наносекунд. Дрожание — это изменение частоты из-за выборки базовых часов. Дрожание не включает неточности, вызванные смещением, что отражается в значении dwClockTolerance.

Для часов, основанных на одном устройстве, минимальное дрожание — это длина периода деления (обратная частота). Например, если частота составляет 10 Гц, то дрожание составляет 0,1 секунды, что составляет 1 000 000 в единицах MFTIME . Это значение отражает тот факт, что часы могут быть выбраны непосредственно перед следующим тиком, что приводит к тому, что время часов на один период меньше фактического времени. Если частота превышает 10 МГц, то дрожание должно быть равно 1 (минимальное значение).

Если базовое аппаратное устройство часов не устанавливает метку времени для входящих данных напрямую, в дрожание также включается время, необходимое для отправки процедуры обслуживания прерываний драйвера (ISR). В этом случае ожидаемое дрожание должно включать следующие значения:

Значение Значение
MFCLOCK_JITTER_ISR
Дрожание из-за метки времени во время ISR драйвера устройства.
MFCLOCK_JITTER_DPC
Дрожание из-за метки времени во время обработки отложенного вызова процедуры (DPC).
MFCLOCK_JITTER_PASSIVE
Дрожание из-за снижения до нормального выполнения потока до отметки времени.

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Верхняя часть mfidl.h

См. также раздел

IMFClock::GetProperties

MFTIME

Структуры Media Foundation