StreamClassQueryMasterClock 函数 (strmini.h)

当微型驱动程序调用 StreamClassQueryMasterClock 例程时,类驱动程序会异步查询主时钟的适当时间值,并将结果传递给 ClockCallbackRoutine 参数中传递的例程。

语法

void StreamClassQueryMasterClock(
  [in] PHW_STREAM_OBJECT       HwStreamObject,
  [in] HANDLE                  MasterClockHandle,
  [in] TIME_FUNCTION           TimeFunction,
  [in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);

参数

[in] HwStreamObject

指向 HW_STREAM_OBJECT 的指针,指示正在查询其主时钟的流。 该流一次只能有一个挂起的查询。 类驱动程序将此值传递到回调的 TimeContext 参数的 HwStreamObject 成员中的回调。

[in] MasterClockHandle

指定正在查询的主时钟的句柄。 类驱动程序在SRB_INDICATE_MASTER_CLOCK请求中将此传递给微型驱动程序的 StrMiniReceiveStreamControlPacket 例程。

[in] TimeFunction

指定要查询主时钟的时间函数。 有关可能的值 ,请参阅HW_TIME_CONTEXT 。 类驱动程序将此值传递给 TimeContext 参数的 Function 成员中的回调。

[in] ClockCallbackRoutine

指定类驱动程序向其传递结果的例程。 函数原型必须是:

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

返回值

备注

类驱动程序查询主时钟,并将结果传递到回调HW_TIME_CONTEXT ) 类型的TimeContext 参数 (。 具体而言,它将此结构的 Time 成员设置为 TimeFunction 参数中请求的时间值、同一结构的 SystemTime 成员中的当前系统时间,以及该结构的 HwDeviceExtension 成员中微型驱动程序的设备扩展。

类驱动程序在时钟回调例程终止后解除分配HW_TIME_CONTEXT结构,因此回调必须存储微型驱动程序想要维护的任何信息。 为此,回调例程可以在微型驱动程序的设备扩展 (TimeContext-HwDeviceExtension >) 或查询其主时钟的流扩展 (TimeContext-HwStreamObject-HwStreamExtension>>) 使用以前分配的空间。

在极少数情况下,图形管理器会切换主时钟。 类驱动程序在处理新的主时钟时公开争用条件。 如果微型驱动程序在收到来自类驱动程序的新时钟后立即调用流类主时钟例程,则类驱动程序可能会产生意外的结果。

要求

要求
目标平台 桌面
标头 strmini.h (包括 Strmini.h)
Library Stream.lib

另请参阅

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync