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要求中將此項目傳遞至minidriver的 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結構,因此回呼必須儲存迷你驅動程式想要維護的任何資訊。 為此,回呼例程可能會在minidriver的裝置擴充功能 (TimeContext-HwDeviceExtension) 中使用先前配置的空間,或查詢其主要時鐘 (TimeContext-HwStreamObject-HwStreamExtension>>>) 的數據流延伸。

在罕見的情況下,圖形管理員會切換主要時鐘。 類別驅動程式會在處理新的主時鐘時公開競爭條件。 如果迷你驅動程式在收到類別驅動程式的新時鐘之後立即呼叫數據流類別主要時鐘例程,類別驅動程式可能會產生非預期的結果。

規格需求

需求
目標平台 桌面
標頭 strmini.h (包含 Strmini.h)
程式庫 Stream.lib

另請參閱

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync