Поделиться через


Интерфейс IKsReferenceClock (ks.h)

Интерфейс IKsReferenceClock — это интерфейс стиля COM, предоставляемый AVStream на всех закреплениях. Пин-код передает запрос на главные часы.

Наследство

Интерфейс IKsReferenceClock наследует от интерфейса IUnknown.

Методика

Интерфейс IKsReferenceClock имеет эти методы.

 
IKsReferenceClock::GetCorrelatedPhysicalTime

Метод IKsReferenceClock::GetCorrelatedPhysicalTime запрашивает связанные эталонные часы для текущего физического времени и извлекает коррелированное системное время.
IKsReferenceClock::GetCorrelatedTime

Метод IKsReferenceClock::GetCorrelatedTime запрашивает связанные эталонные часы для текущего времени потока и получает коррелированное системное время.
IKsReferenceClock::GetPhysicalTime

Метод IKsReferenceClock::GetPhysicalTime запрашивает связанные эталонные часы для текущего физического времени.
IKsReferenceClock::GetResolution

Метод IKsReferenceClock::GetResolution запрашивает связанные эталонные часы для разрешения.
IKsReferenceClock::GetState

Метод IKsReferenceClock::GetState запрашивает связанные эталонные часы для текущего состояния потоковой передачи.
IKsReferenceClock::GetTime

Метод IKsReferenceClock::GetTime запрашивает связанные эталонные часы в течение текущего времени.

Замечания

Мини-driver может получить интерфейс IKsReferenceClock путем вызова KsPinGetReferenceClockInterface. Так как это интерфейс в стиле COM, KsPinGetReferenceClockInterface вызывает QueryInterface, что, в свою очередь, вызывает AddRef для увеличения указателя интерфейса. Это означает, что при завершении мини-driver с интерфейсом IKsReferenceClock мини-driver должен освободить его путем вызова выпуска.

Клиенты, написанные в C, увидят интерфейс IKsReferenceClock как структуру, содержащую указатель на таблицу функций вместо абстрактного базового класса C++. Клиент, написанный на языке C++, может выполнять следующие действия:

PIKSREFERENCECLOCK RefClock;

if (NT_SUCCESS (
  KsPinGetReferenceClockInterface (
    Pin,
    &RefClock)
) {
    ... RefClock -> GetCorrelatedTime (...);
    RefClock -> Release ();
}

Однако клиент, написанный в C, будет выполнять следующие действия:

PIKSREFERENCECLOCK RefClock;

If (NT_SUCCESS (
  KsPinGetReferenceClockInterface (
    Pin,
    &RefClock)
) {
  ... RefClock -> lpVtbl -> GetCorrelatedTime (...);
  RefClock -> lpVtbl -> Release ();
}

Дополнительные сведения см. в обзоре AVStream.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка ks.h

См. также

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface

KsPinGetReferenceClockInterface