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 的指针。 流一次只能有一个查询挂起。 类驱动程序将此值传递给回调 HwStreamObject 回调的 TimeContext 参数的成员。

[in] MasterClockHandle

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

[in] TimeFunction

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

[in] ClockCallbackRoutine

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

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

返回值

没有

言论

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

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

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

要求

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

另请参阅

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync