다음을 통해 공유


StreamClassQueryMasterClock 함수(strmini.h)

미니드라이버가 StreamClassQueryMasterClock 루틴을 호출하면 클래스 드라이버는 master 클록의 적절한 시간 값을 비동기적으로 쿼리하고 ClockCallbackRoutine 매개 변수에 전달된 루틴에 결과를 전달합니다.

구문

void StreamClassQueryMasterClock(
  [in] PHW_STREAM_OBJECT       HwStreamObject,
  [in] HANDLE                  MasterClockHandle,
  [in] TIME_FUNCTION           TimeFunction,
  [in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);

매개 변수

[in] HwStreamObject

master 클록을 쿼리하는 스트림을 나타내는 HW_STREAM_OBJECT 대한 포인터입니다. 스트림에는 한 번에 하나의 쿼리만 보류할 수 있습니다. 클래스 드라이버는 콜백의 TimeContext 매개 변수의 HwStreamObject 멤버에 있는 콜백에 이 값을 전달합니다.

[in] MasterClockHandle

쿼리되는 master 클록에 대한 핸들을 지정합니다. 클래스 드라이버는 SRB_INDICATE_MASTER_CLOCK 요청에서 이를 미니드라이버의 StrMiniReceiveStreamControlPacket 루틴에 전달합니다.

[in] TimeFunction

master 클록을 쿼리할 시간 함수를 지정합니다. 가능한 값은 HW_TIME_CONTEXT 참조하세요. 클래스 드라이버는 TimeContext 매개 변수의 Function 멤버에 있는 콜백에 이 값을 전달합니다.

[in] ClockCallbackRoutine

클래스 드라이버가 결과를 전달하는 루틴을 지정합니다. 함수 프로토타입은 다음이어야 합니다.

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

반환 값

없음

설명

클래스 드라이버는 master 클록을 쿼리하고 콜백의 TimeContext 매개 변수(HW_TIME_CONTEXT 형식)에 결과를 전달합니다. 특히 이 구조체의 Time 멤버를 TimeFunction 매개 변수에 요청된 시간 값, 동일한 구조체의 SystemTime 멤버에 있는 현재 시스템 시간 및 해당 구조체의 HwDeviceExtension 멤버에 있는 미니드라이버의 디바이스 확장으로 설정합니다.

클래스 드라이버는 클록 콜백 루틴이 종료된 후 HW_TIME_CONTEXT 구조체의 할당을 취소하므로 콜백은 미니드라이버가 유지 관리하려는 정보를 저장해야 합니다. 이를 위해 콜백 루틴은 미니드라이버의 디바이스 확장(TimeContext-HwDeviceExtension>) 또는 master 클록을 쿼리한 스트림의 스트림 확장(TimeContext-HwStreamObject-HwStreamExtension>>)에서 이전에 할당된 공간을 사용할 수 있습니다.

드문 경우지만 그래프 관리자는 master 시계를 전환합니다. 클래스 드라이버는 새 master 클록을 처리하는 경합 상태를 노출합니다. 미니드라이버가 클래스 드라이버에서 새 클록을 받은 직후 스트림 클래스 master 클록 루틴을 호출하면 클래스 드라이버에서 예기치 않은 결과가 발생할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 strmini.h(Strmini.h 포함)
라이브러리 Stream.lib

추가 정보

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync