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 へのポインター。 ストリームには、一度に保留中のクエリが 1 つだけ含まれる場合があります。 クラス ドライバーは、コールバックの TimeContext パラメーターのメンバー HwStreamObject 内のコールバックにこの値を渡します。
[in] MasterClockHandle
クエリを実行するマスター クロックのハンドルを指定します。 クラス ドライバーは、ミニドライバーの StrMiniReceiveStreamControlPacket ルーチンにSRB_INDICATE_MASTER_CLOCK要求でこれを渡します。
[in] TimeFunction
マスター クロックに対してクエリを実行する時間関数を指定します。 使用可能な値については、HW_TIME_CONTEXT を参照してください。 クラス ドライバーは、TimeContext パラメーターのメンバー 関数のコールバックにこの値を渡します。
[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 |
関連項目
StrMiniReceiveStreamControlPacket の