IMFClock::GetCorrelatedTime-Methode (mfidl.h)

Ruft die letzte Uhrzeit ab, die mit der Systemzeit korreliert wurde.

Syntax

HRESULT GetCorrelatedTime(
  [in]  DWORD    dwReserved,
  [out] LONGLONG *pllClockTime,
  [out] MFTIME   *phnsSystemTime
);

Parameter

[in] dwReserved

Reserviert, muss Null sein.

[out] pllClockTime

Empfängt die letzte bekannte Uhrzeit in Einheiten der Frequenz der Uhr.

[out] phnsSystemTime

Empfängt die Systemzeit, die der in pllClockTime zurückgegebenen Uhrzeit in 100 Nanosekundeneinheiten entspricht.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
MF_E_CLOCK_NO_TIME_SOURCE
Die Uhr verfügt nicht über eine Zeitquelle.

Hinweise

In einem festen Intervall korreliert eine Uhr ihre internen Takte mit der Systemzeit. (Die Systemzeit ist die Zeit, die vom Leistungsindikator mit hoher Auflösung zurückgegeben wird.) Diese Methode gibt Folgendes zurück:

  • Die neueste Uhrzeit, die mit der Systemzeit korreliert wurde.
  • Die Systemzeit, zu der die Korrelation durchgeführt wurde.
Die Uhrzeit wird im pllClockTime-Parameter zurückgegeben und in Einheiten der Taktfrequenz ausgedrückt. Wenn die IMFClock::GetClockCharacteristics-Methode der Uhr das MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ-Flag zurückgibt, beträgt die Frequenz der Uhr 10 MHz (jeder Takttakt beträgt 100 Nanosekunden). Andernfalls können Sie die Frequenz der Uhr abrufen, indem Sie IMFClock::GetProperties aufrufen. Die Häufigkeit wird im qwClockFrequency-Member der MFCLOCK_PROPERTIES-Struktur angegeben, die von dieser Methode zurückgegeben wird.

Die Systemzeit wird im Parameter phnsSystemTime zurückgegeben und immer in Einheiten von 100 Nanosekunden ausgedrückt.

Rufen Sie GetProperties auf, um herauszufinden, wie oft die Uhr ihre Uhrzeit mit der Systemzeit korreliert. Das Korrelationsintervall wird im qwCorrelationRate-Element der MFCLOCK_PROPERTIES-Struktur angegeben. Wenn qwCorrelationRate null ist, bedeutet dies, dass die Uhr die Korrelation immer dann ausführt, wenn GetCorrelatedTime aufgerufen wird. Andernfalls können Sie die aktuelle Uhrzeit berechnen, indem Sie aus der letzten korrelierten Zeit extrapolieren.

Einige Uhren unterstützen Ratenänderungen über die IMFRateControl-Schnittstelle . Wenn dies der Fall ist, wird die Taktzeit mit einer Frequenzgeschwindigkeit × aktuellen Rate erhöht. Wenn eine Uhr die IMFRateControl-Schnittstelle nicht verfügbar macht, beträgt die Rate immer 1,0.

Für die Präsentationsuhr ist die Uhrzeit die Präsentationszeit und immer relativ zur in IMFPresentationClock::Start angegebenen Startzeit. Sie können die Präsentationszeit auch abrufen, indem Sie IMFPresentationClock::GetTime aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile mfidl.h
Bibliothek Mfuuid.lib

Weitere Informationen

IMFClock

MFTIME