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 函数。 如果使用默认的 KeSetTimerEx 函数来估计下一个通知时间,则此设置设置为 NULL。 仅当使用 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 纳秒单位报告粒度。 有关详细信息,请参阅有关KSPROPERTY_CLOCK_RESOLUTION的 KS 文档。

函数的原型应如下所示:

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