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) |