структура KSCLOCK_DISPATCH (ks.h)

Структура KSCLOCK_DISPATCH содержит обратные вызовы, необходимые для закрепления для реализации объекта часов.

Синтаксис

typedef struct _KSCLOCK_DISPATCH {
  PFNKSPINSETTIMER       SetTimer;
  PFNKSPINCANCELTIMER    CancelTimer;
  PFNKSPINCORRELATEDTIME CorrelatedTime;
  PFNKSPINRESOLUTION     Resolution;
} KSCLOCK_DISPATCH, *PKSCLOCK_DISPATCH;

Члены

SetTimer

При необходимости содержит указатель на альтернативную функцию, используемую при создании обратных вызовов таймера DPC на основе времени презентации. Если этот параметр задан, эта функция используется для задания таймеров на основе изменений текущего времени презентации для создания уведомлений о событиях. Если для задания таймеров указана альтернативная функция, необходимо также предоставить соответствующую функцию CancelTimer . Для этого параметра задано значение NULL , если функция KeSetTimerEx по умолчанию используется для приближения времени следующего уведомления. Обычно это значение устанавливается только в том случае, если используется функция KeSetTimerEx . Функция должна иметь те же характеристики, что и функция по умолчанию.

Функция должна быть прообразована следующим образом:

BOOLEAN SetTimer (IN PKSPIN Pin,
    IN PKTIMER Timer,
    IN LARGE_INTEGER DueTime,
    IN PKDPC Dpc);

Дополнительные сведения о реализации этой функции см. в документации по KeSetTimerEx . Любая реализация клиента должна вести себя аналогичным образом.

CancelTimer

При необходимости содержит альтернативную функцию для отмены невыполненных обратных вызовов таймера. Если для отмены таймеров предоставляется альтернативная функция, необходимо также предоставить соответствующую функцию SetTimer . Если используется функция KeCancelTimer по умолчанию, ей присваивается значение NULL. Функция должна иметь те же характеристики, что и функция по умолчанию.

Функция должна быть прообразована следующим образом:

BOOLEAN CancelTimer (IN PKSPIN Pin,
    IN PKTIMER Timer);

Дополнительные сведения о реализации этой функции см. в документации по KeCancelTimer . Любая реализация клиента должна вести себя аналогичным образом.

CorrelatedTime

Указатель на функцию для получения текущего времени и коррелированного системного времени в виде атомарной операции. Функция должна быть прообразована следующим образом:

LONGLONG CorrelatedTime (IN PKSPIN Pin,
    OUT PLONGLONG SystemTime);

Должно быть возвращено текущее время, а текущее системное время должно быть помещено в SystemTime.

Resolution

Указатель на функцию для указания разрешения часов. Соответствует свойству KS KSPROPERTY_CLOCK_RESOLUTION. Эта функция должна сообщать о степени детализации в единицах 100 наносекунд. Дополнительные сведения см. в документации по KS по KSPROPERTY_CLOCK_RESOLUTION.

Функция должна быть прообразована следующим образом:

void Resolution (IN PKSPIN Pin,
        OUT PKSRESOLUTION Resolution);

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также в Microsoft DirectX 8.0 и более поздних версиях.
Верхняя часть ks.h (включая Ks.h)

См. также раздел

KDPC

KSPIN

KSPIN_DISPATCH

KSPROPERTY_CLOCK_RESOLUTION

KSRESOLUTION

KeSetTimerEx