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 |