Интерфейс 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 |