共用方式為


StreamClassQueryMasterClock 函式 (strmini.h)

當 minidriver 呼叫 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結構,因此回呼必須儲存minidriver想要維護的任何資訊。 為此, 回呼例程可以在 minidriver 的裝置擴充功能中使用先前配置的空間(TimeContext->HwDeviceExtension),或查詢其主要時鐘之數據流的數據流延伸 (TimeContext->HwStreamObject->HwStreamExtension)。

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

要求

要求 價值
目標平臺 桌面
標頭 strmini.h (包括 Strmini.h)
連結庫 Stream.lib

另請參閱

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync