次の方法で共有


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 ナノ秒単位で、そのクロック時間とシステム時刻を関連付ける間隔。 値が 0 の場合、 IMFClock::GetCorrelatedTime メソッドが呼び出されるたびに関連付けが行われます。

guidClockId

時間を提供する基になるデバイスの一意識別子。 2 つのクロックが同じ一意識別子を持つ場合、それらは同じデバイスに基づいています。 基になるデバイスが 2 つのクロック間で共有されていない場合は、値を GUID_NULLできます。

dwClockFlags

MFCLOCK_RELATIONAL_FLAGS列挙からのフラグのビットごとの OR

qwClockFrequency

Hz 単位のクロック周波数。 MFCLOCK_FREQUENCY_HNSの値は、クロックの周波数が 10 MHz (100 ナノ秒ティック) であることを意味します。これは、Media Foundation の標準的な MFTIME 時間単位です。 IMFClock::GetClockCharacteristics メソッドが MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ フラグを返す場合、このフィールドの値はMFCLOCK_FREQUENCY_HNSする必要があります。

dwClockTolerance

クロック上に存在する可能性がある不正確さの量 (10 億分の 1 (ppb) 単位)。 たとえば、50 ppb の不正確さは、クロックがリアルタイムの 10 億秒あたり最大 50 秒ドリフトする可能性を意味します。 許容範囲が不明な場合、値は MFCLOCK_TOLERANCE_UNKNOWN。 この定数は、100 万分の 50 の部分 (ppm) に等しくなります。

dwClockJitter

存在する可能性があるジッターの量 (100 ナノ秒単位)。 ジッターは、基になるクロックのサンプリングによる周波数の変動です。 ジッターには、 dwClockTolerance の値に反映されるドリフトに起因する不正確さは含まれません。

1 つのデバイスに基づくクロックの場合、最小ジッターはティック期間の長さ (周波数の逆数) です。 たとえば、周波数が 10 Hz の場合、ジッターは 0.1 秒で、 MFTIME 単位では 1,000,000 になります。 この値は、クロックが次のティックの直前にサンプリングされ、実際の時刻より 1 期間短いクロック時間になる可能性があることを反映しています。 周波数が 10 MHz を超える場合は、ジッターを 1 (最小値) に設定する必要があります。

クロックの基になるハードウェア デバイスが受信データに直接タイムスタンプを設定しない場合、ジッターにはドライバーの割り込みサービス ルーチン (ISR) をディスパッチするために必要な時間も含まれます。 その場合、予想されるジッターには次の値を含める必要があります。

説明
MFCLOCK_JITTER_ISR
デバイス ドライバーの ISR 中のタイム スタンプによるジッター。
MFCLOCK_JITTER_DPC
遅延プロシージャ コール (DPC) 処理中のタイム スタンプによるジッター。
MFCLOCK_JITTER_PASSIVE
タイム スタンプの前に通常のスレッド実行へのドロップによるジッター。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリ | UWP アプリ]
Header mfidl.h

関連項目

IMFClock::GetProperties

MFTIME

Media Foundation Structures