KsFilterGenerateEvents 함수(ks.h)
KsFilterGenerateEvents 함수는 필터의 이벤트 목록에 있는 표시된 형식의 이벤트를 생성합니다.
구문
void KsFilterGenerateEvents(
[in] PKSFILTER Filter,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
매개 변수
[in] Filter
이벤트를 생성할 KSFILTER 구조체에 대한 포인터입니다.
[in, optional] EventSet
생성할 이벤트를 결정하는 데 일치하는 이벤트 집합 GUID에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 이벤트 집합 GUID는 일치하는 이벤트를 결정하는 데 고려되지 않습니다.
[in] EventId
생성할 이벤트를 결정하기 위해 일치시킬 이벤트 ID입니다.
[in] DataSize
데이터 크기(바이트)입니다.
[in] Data
데이터 버퍼에 대한 포인터입니다. 데이터 이벤트를 생성하는지 지정합니다.
[in, optional] CallBack
지정된 이벤트를 생성해야 하는지 여부를 결정하기 위해 호출된 호출자 지정 함수에 대한 포인터입니다. NULL인 경우 이벤트를 생성해야 하는지 여부를 확인하기 위해 콜백 확인이 수행되지 않습니다(*EventSet *및 EventId만 사용됨). 자세한 내용은 아래 설명 섹션을 참조하세요.
[in, optional] CallBackContext
콜백 함수 CallBack에 전달되는 호출자 지정 컨텍스트에 대한 선택적 포인터입니다. 자세한 내용은 아래 설명 섹션을 참조하세요.
반환 값
없음
설명
이 함수를 호출할 때 미니드라이버가 Data 및 CallBackContext 를 고정되고 페이지가 없는 데이터 세그먼트에 배치해야 합니다. 또한 콜백 은 DISPATCH_LEVEL. 콜백 함수는 잠긴 세그먼트에 있어야 하며 IRQL = DISPATCH_LEVEL 실행할 준비를 해야 합니다. DX8에 만 추가 문제가 있습니다. EventSet 은 잠긴 데이터 세그먼트에 있어야 합니다.
필요한 형식 캐스팅을 수행하는 KsGenerateEvents 에 대한 인라인 함수 호출입니다. 미니 드라이버는 일반적으로 KsGenerateEvents를 직접 호출하는 대신 이 버전을 호출해야 합니다.
다음 조건이 유지되면 이벤트가 생성됩니다.
이벤트는 필터의 이벤트 목록에 있고 EventId 는 이벤트의 ID와 일치합니다.
EventSet 은 이벤트의 집합 GUID와 일치하거나 NULL입니다.
CallBack 이 NULL 이거나 일치 항목에 권한을 부여합니다.
CallBack 은 추가 일치 결정에 사용되는 호출자 지정 콜백입니다. 프로토타입은 다음과 같습니다.
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream은 이 콜백의 Context 매개 변수에서 KsFilterGenerateEvents 루틴의 매개 변수 CallBackContext의 내용을 전달합니다. EventEntry 는 생성될 이벤트를 지정하는 KSEVENT_ENTRY 구조체에 대한 포인터입니다. 이 이벤트를 생성해야 하는 경우 콜백 함수는 TRUE 를 반환해야 합니다.
자세한 내용은 AVStream 및 KS이벤트의 이벤트 처리를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ks.h(Ks.h 포함) |
라이브러리 | Ks.lib |
IRQL | <=DISPATCH_LEVEL(설명 섹션 참조) |