默认时钟

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

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

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

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

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

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

有关相关信息,请参阅 质量控制