StreamClassQueryMasterClockSync function (strmini.h)

The minidriver may call the StreamClassQueryMasterClockSync routine to synchronously query a stream's master clock.

Syntax

VOID STREAMAPI StreamClassQueryMasterClockSync(
  [in]      HANDLE           MasterClockHandle,
  [in, out] PHW_TIME_CONTEXT TimeContext
);

Parameters

[in] MasterClockHandle

Specifies the handle for the master clock that is being queried. The class driver passes this in the SRB_INDICATE_MASTER_CLOCK request to the minidriver's StrMiniReceiveStreamControlPacket routine.

[in, out] TimeContext

Specifies the HW_TIME_CONTEXT structure that the class driver passes to the master clock's StrMiniClock routine. Before calling this routine, the minidriver must fill in the HwDeviceExtension, HwStreamObject, and Function members of TimeContext. StreamClassQueryMasterClockSync completes the Time and SystemTime members.

Return value

None

Remarks

The routine must be called at or below DISPATCH_LEVEL. If the caller is running at a raised IRQL, it should use the asynchronous version, StreamClassQueryMasterClock, instead.

The class driver calls the master clock's StrMiniClock routine to query the clock.

On rare occasions, the graph manager switches the master clock. The class driver exposes a race condition in handling the new master clock. If the minidriver calls a stream class master clock routine immediately after it receives a new clock from the class driver, the class driver may produce unexpected results.

Requirements

Requirement Value
Target Platform Desktop
Header strmini.h (include Strmini.h)
Library Stream.lib
IRQL <=DISPATCH_LEVEL (See Remarks section)

See also

HW_TIME_CONTEXT

StrMiniClock

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClock