Condividi tramite


MFCLOCK_PROPERTIES struttura (mfidl.h)

Definisce le proprietà di un orologio.

Sintassi

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

Members

qwCorrelationRate

Intervallo in cui l'orologio correla l'ora dell'orologio con l'ora di sistema, in unità da 100 nanosecondi. Se il valore è zero, la correlazione viene eseguita ogni volta che viene chiamato il metodo FMClock::GetCorrelatedTime .

guidClockId

Identificatore univoco del dispositivo sottostante che fornisce il tempo. Se due orologi hanno lo stesso identificatore univoco, si basano sullo stesso dispositivo. Se il dispositivo sottostante non è condiviso tra due orologi, il valore può essere GUID_NULL.

dwClockFlags

Or bit per bit dei flag dall'enumerazione MFCLOCK_RELATIONAL_FLAGS.

qwClockFrequency

Frequenza di clock in Hz. Un valore di MFCLOCK_FREQUENCY_HNS indica che l'orologio ha una frequenza di 10 MHz (100-nanosecondi tick), ovvero l'unità temporale MFTIME standard in Media Foundation. Se il metodo IMFClock::GetClockCharacteristics restituisce il flag MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ , il valore di questo campo deve essere MFCLOCK_FREQUENCY_HNS.

dwClockTolerance

Quantità di errori che possono essere presenti sull'orologio, in parti per miliardo (ppb). Ad esempio, un'accuratezza di 50 ppb significa che l'orologio potrebbe derivare fino a 50 secondi per miliardi di secondi di tempo reale. Se la tolleranza non è nota, il valore è MFCLOCK_TOLERANCE_UNKNOWN. Questa costante è uguale a 50 parti per milione (ppm).

dwClockJitter

Quantità di jitter che può essere presente in 100-nanosecondi. Jitter è la variazione della frequenza a causa del campionamento dell'orologio sottostante. Il jitter non include errori causati dalla deriva, che si riflette nel valore di dwClockTolerance.

Per gli orologi basati su un singolo dispositivo, il jitter minimo è la lunghezza del periodo di tick (l'inverso della frequenza). Ad esempio, se la frequenza è 10 Hz, il jitter è 0,1 secondo, ovvero 1.000.000 in unità MFTIME . Questo valore riflette il fatto che l'orologio potrebbe essere campione appena prima del segno di spunta successivo, causando un'ora di orologio minore del tempo effettivo. Se la frequenza è maggiore di 10 MHz, il jitter deve essere impostato su 1 (valore minimo).

Se il dispositivo hardware sottostante di un orologio non contrassegna direttamente i dati in ingresso, il jitter include anche il tempo necessario per inviare la routine del servizio di interruzione del driver (ISR). In tal caso, il jitter previsto deve includere i valori seguenti:

Valore Significato
MFCLOCK_JITTER_ISR
Jitter a causa del timestamp durante l'ISR del driver del dispositivo.
MFCLOCK_JITTER_DPC
Jitter a causa del timestamp durante l'elaborazione della chiamata di procedura posticipata (DPC).
MFCLOCK_JITTER_PASSIVE
Jitter a causa dell'eliminazione della normale esecuzione del thread prima del timestamp.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Intestazione mfidl.h

Vedi anche

IMFClock::GetProperties

MFTIME

Strutture di Media Foundation