mfidl.h) (MFCLOCK_PROPERTIES 结构

定义时钟的属性。

语法

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 纳秒为单位。 抖动是基础时钟采样导致的频率变化。 抖动不包括由偏移引起的不准确之处,偏移反映在 dwClockTolerance 的值中。

对于基于单个设备的时钟,最小抖动是刻度周期的长度 (频率) 的反函数。 例如,如果频率为 10 Hz,则抖动为 0.1 秒,即 MFTIME 单位为 1,000,000。 此值反映了以下事实:时钟可能在下一刻度之前采样,导致时钟时间比实际时间少一个周期。 如果频率大于 10 MHz,则抖动应设置为 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

媒体基础结构