默认时钟

内核流式处理微型驱动程序可以调用 KsAllocateDefaultClockEx 来分配和初始化默认时钟结构。 或者,他们可以调用 KsAllocateDefaultClock,这是 KsAllocateDefaultClockEx 的包装器,具有非锁成员的默认参数。 使用 KsAllocateDefaultClockEx 初始化默认时钟后调用 KsCreateDefaultClock

默认时钟支持 KSPROPSETID_Clock,可以像筛选器引脚提供的任何其他时钟一样进行访问。 但是,基础数据结构由筛选器引脚创建,并由该引脚和创建的任何时钟实例共享。 时钟依赖于引脚来更新共享结构中的当前状态和其他元素。 默认时钟处理通知请求和时钟查询。

为筛选器上提供此时钟的引脚分配主时钟时,该引脚拥有此时钟。 引脚应引用时钟文件对象,就像为它分配了其他一些时钟实现一样。 创建实例时,默认时钟不引用引脚的文件对象。 相反,它会根据公共时钟结构的初始分配以及时钟上打开的每个文件对象保留内部引用计数。 即使时钟的所有者释放时钟结构,它也会一直保留到所有文件对象关闭为止。 引脚可以直接访问默认时钟对象,而不是通过标准时钟接口。

微型驱动程序可以支持 KSPROPERTY_CLOCK_FUNCTIONTABLE 属性,为用户模式客户端提供检查引用时钟时间的机制。 此属性使用启用此功能的函数指针填充结构,从而支持精确的速率匹配。

此外,如果指定的引脚允许速率更改,微型驱动程序支持 KSPROPERTY_STREAM_RATE 属性。

使用内核流式处理代理接口的应用程序调用 IKsClockPropertySet 接口中的方法,以获取和设置物理时钟上的时间,这些时钟可在其他位置用于速率匹配。

有关相关信息,请参阅 质量管理