Freigeben über


MFCLOCK_PROPERTIES-Struktur (mfidl.h)

Definiert die Eigenschaften einer Uhr.

Syntax

typedef struct _MFCLOCK_PROPERTIES {
  unsigned __int64 qwCorrelationRate;
  GUID             guidClockId;
  DWORD            dwClockFlags;
  unsigned __int64 qwClockFrequency;
  DWORD            dwClockTolerance;
  DWORD            dwClockJitter;
} MFCLOCK_PROPERTIES;

Members

qwCorrelationRate

Das Intervall, in dem die Uhr ihre Uhrzeit mit der Systemzeit in 100 Nanosekundeneinheiten korreliert. Wenn der Wert null ist, wird die Korrelation immer dann hergestellt, wenn die IMFClock::GetCorrelatedTime-Methode aufgerufen wird.

guidClockId

Der eindeutige Bezeichner des zugrunde liegenden Geräts, das die Zeit bereitstellt. Wenn zwei Uhren über denselben eindeutigen Bezeichner verfügen, basieren sie auf demselben Gerät. Wenn das zugrunde liegende Gerät nicht zwischen zwei Uhren gemeinsam genutzt wird, kann der Wert GUID_NULL werden.

dwClockFlags

Ein bitweises OR mit Flags aus der MFCLOCK_RELATIONAL_FLAGS-Enumeration .

qwClockFrequency

Die Taktfrequenz in Hz. Ein Wert von MFCLOCK_FREQUENCY_HNS bedeutet, dass der Takt eine Frequenz von 10 MHz (100 Nanosekunden-Ticks) hat, was die Standard-MFTIME-Zeiteinheit in Media Foundation ist. Wenn die IMFClock::GetClockCharacteristics-Methode das flag MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ zurückgibt, muss der Wert dieses Felds MFCLOCK_FREQUENCY_HNS sein.

dwClockTolerance

Die Menge an Ungenauigkeiten, die auf der Uhr vorhanden sein können, in Teilen pro Milliarde (ppb). Beispielsweise bedeutet eine Ungenauigkeit von 50 ppb, dass die Uhr bis zu 50 Sekunden pro Milliarde Sekunden in Echtzeit driftet. Wenn die Toleranz nicht bekannt ist, wird der Wert MFCLOCK_TOLERANCE_UNKNOWN. Diese Konstante entspricht 50 parts per million (ppm).

dwClockJitter

Die Menge an Jitter, die in 100 Nanosekundeneinheiten vorhanden sein kann. Jitter ist die Variation der Frequenz aufgrund der Stichprobenentnahme der zugrunde liegenden Uhr. Jitter schließt keine Ungenauigkeiten ein, die durch Abweichung verursacht werden, was sich im Wert von dwClockTolerance widerspiegelt.

Bei Uhren, die auf einem einzelnen Gerät basieren, ist der minimale Jitter die Länge der Tick-Periode (die Umgekehrte der Frequenz). Wenn die Frequenz beispielsweise 10 Hz beträgt, beträgt der Jitter 0,1 Sekunden, was in MFTIME-Einheiten 1.000.000 ist. Dieser Wert spiegelt die Tatsache wider, dass die Uhr möglicherweise kurz vor dem nächsten Tick abgetastet wird, was zu einer Uhrzeit führt, die einen Zeitraum kleiner als die tatsächliche Zeit ist. Wenn die Frequenz größer als 10 MHz ist, sollte der Jitter auf 1 (der Mindestwert) festgelegt werden.

Wenn das zugrunde liegende Hardwaregerät einer Uhr die eingehenden Daten nicht direkt zeitstempelt, schließt der Jitter auch die Zeit ein, die zum Senden der Interruptdienstroutine (ISR) des Treibers erforderlich ist. In diesem Fall sollte der erwartete Jitter die folgenden Werte enthalten:

Wert Bedeutung
MFCLOCK_JITTER_ISR
Jitter aufgrund von Zeitstempeln während der ISR des Gerätetreibers.
MFCLOCK_JITTER_DPC
Jitter aufgrund von Zeitstempeln während der Verarbeitung des verzögerten Prozeduraufrufs (DPC).
MFCLOCK_JITTER_PASSIVE
Jitter aufgrund des Löschens auf die normale Threadausführung vor dem Zeitstempeln.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Kopfzeile mfidl.h

Weitere Informationen

IMFClock::GetProperties

MFTIME

Media Foundation-Strukturen