KsAllocateDefaultClockEx 함수(ks.h)
KsAllocateDefaultClockEx 함수는 기본 클록 구조를 할당하고 초기화합니다.
구문
KSDDKAPI NTSTATUS KsAllocateDefaultClockEx(
[out] PKSDEFAULTCLOCK *DefaultClock,
[in, optional] PVOID Context,
[in, optional] PFNKSSETTIMER SetTimer,
[in, optional] PFNKSCANCELTIMER CancelTimer,
[in, optional] PFNKSCORRELATEDTIME CorrelatedTime,
[in, optional] const KSRESOLUTION *Resolution,
[in] ULONG Flags
);
매개 변수
[out] DefaultClock
호출자가 할당한 공유 기본 클록 구조를 지정합니다. 현재 시간은 0으로 설정되고 상태는 KSSTATE_STOP. 이 루틴이 성공적으로 완료되면 이 포인터로 표시된 구조체에 기본 클록에 대한 참조가 포함됩니다. 반환된 데이터는 불투명한 것으로 처리되고 시스템 사용을 위해 예약되어야 합니다.
[in, optional] Context
필요에 따라 대체 시간 기능의 컨텍스트를 포함합니다. 타이머 또는 상관 관계 시간 함수를 사용하는 경우 설정해야 합니다.
[in, optional] SetTimer
필요에 따라 프레젠테이션 시간을 기반으로 DPC 타이머 콜백을 생성하는 데 사용할 드라이버 정의 KStrSetTimer 함수에 대한 포인터를 포함합니다. 이 설정을 사용하면 이벤트 알림을 생성하기 위해 델타를 기반으로 타이머를 현재 프레젠테이션 시간으로 설정하는 데 함수가 사용됩니다. KStrSetTimer 함수를 제공하여 타이머를 설정하는 경우 해당 KStrCancelTimer 함수도 제공해야 합니다. 기본 KeSetTimerEx 함수를 사용하여 다음 알림 시간을 근사하는 경우 이 매개 변수에 NULL을 전달합니다. 이 매개 변수는 일반적으로 KStrCorrelatedTime 함수도 사용되는 경우에만 설정됩니다. KStrSetTimer 함수는 KeSetTimerEx와 동일한 특성을 가져야 합니다.
[in, optional] CancelTimer
필요에 따라 드라이버 정의 KStrCancelTimer 함수에 대한 포인터를 포함하여 미해결 타이머 콜백을 취소하는 데 사용합니다. 타이머를 취소하는 KStrCancelTimer 함수를 제공하는 경우 해당 KStrSetTimer 함수도 제공해야 합니다. 기본 KeCancelTimer 함수를 사용하여 타이머를 취소하는 경우 이 매개 변수에 NULL을 전달합니다. KStrCancelTimer 함수는 KeCancelTimer와 동일한 특성을 가져야 합니다.
[in, optional] CorrelatedTime
필요에 따라 드라이버 정의 KStrCorrelatedTime 함수에 대한 포인터를 포함하여 프레젠테이션과 물리적 시간을 상관 관계가 있는 방식으로 검색합니다. 이렇게 하면 클록 소유자가 현재 시간을 완전히 확인할 수 있습니다. 기본 KeQueryPerformanceCounter 함수를 사용하여 시간 진행을 조절하는 경우 NULL을 전달합니다.
[in, optional] Resolution
필요에 따라 클록에 대한 대체 세분성 및/또는 오류 요소가 포함됩니다. 대체 타이머 또는 상관 관계 시간 함수가 제공되는 경우에만 사용할 수 있습니다. 대체 상관 관계가 있는 시간을 사용하는 경우 대체 세분성을 지정할 수 있습니다. 그렇지 않으면 structure 요소는 0이어야 합니다. 대체 타이머를 사용하는 경우 대체 오류를 지정할 수 있습니다. 그렇지 않으면 structure 요소는 0이어야 합니다.
[in] Flags
예약되어 있으며 0으로 설정됩니다.
반환 값
KsAllocateDefaultClockEx 함수는 성공하면 STATUS_SUCCESS 반환하고, 성공하지 못하면 메모리 오류를 반환합니다.
설명
내부 DefaultClock.ReferenceCount 요소는 KsAllocateDefaultClock 함수에 의해 하나로 초기화됩니다. 각 알림 DPC가 큐에 대기되고 완료되면 요소가 증가 및 감소됩니다. 구조체를 해제할 때 요소는 클록의 소유자가 구조를 해제해야 하는지 또는 보류 중인 DPC가 비동기적으로 해제해야 하는지 여부를 결정하는 데 사용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | PASSIVE_LEVEL |