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