다음을 통해 공유


IKsDataTypeHandler 인터페이스(ksproxy.h)

IKsDataTypeHandler 인터페이스는 미디어 샘플의 선택적 전처리 및 후처리를 수행하는 메서드를 제공합니다. 또한 이 인터페이스는 처리에 필요한 추가 스트림 헤더 정보의 크기를 반환할 수 있으며 특정 미디어 형식이 지정된 커널 스트리밍 데이터 범위 집합 내에 있는지 확인할 수 있습니다.

이 인터페이스의 IID는 IID_IKsDataTypeHandler.

상속

IKsDataTypeHandler 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

메서드

IKsDataTypeHandler 인터페이스에는 이러한 메서드가 있습니다.

 
IKsDataTypeHandler::KsCompleteIoOperation

KsCompleteIoOperation 메서드는 확장 헤더를 정리하고 입력 및 출력(I/O) 작업을 완료합니다.
IKsDataTypeHandler::KsIsMediaTypeInRanges

KsIsMediaTypeInRanges 메서드는 미디어 형식이 제공된 데이터 범위 내에 있는지 확인합니다.
IKsDataTypeHandler::KsPrepareIoOperation

KsPrepareIoOperation 메서드는 확장 헤더를 초기화하고 I/O 작업을 위해 미디어 샘플을 준비합니다.
IKsDataTypeHandler::KsQueryExtendedSize

KsQueryExtendedSize 메서드는 입력 및 출력(I/O) 작업에 필요한 확장 헤더 정보를 검색합니다.
IKsDataTypeHandler::KsSetMediaType

KsSetMediaType 메서드는 데이터 형식 처리기의 미디어 형식을 설정합니다.

설명

프록시 데이터 형식을 중립으로 유지하기 위해 선택적 데이터 형식 처리기를 로드하여 커널 모드 필터를 오가는 데이터 스트림을 마사지할 수 있습니다. 최소한 IKsDataTypeHandler 인터페이스를 지원하는 COM 서버로 데이터 형식 처리기를 구현해야 합니다. 데이터 형식 처리기는 필요에 따라 IKsDataTypeCompletion 인터페이스를 지원할 수 있습니다.

데이터 형식 처리기는 일반적으로 핀 연결 프로세스 중에 로드되고 연결이 끊어지면 언로드됩니다. 그러나 데이터 형식 처리기는 경우에 따라 다른 용도로 간략하게 로드됩니다. instance 경우 애플리케이션이 DirectShow의 IAMStreamConfig::SetFormat 메서드를 사용하는 경우 애플리케이션은 데이터 형식 처리기를 사용하여 메서드로 전송된 부분 미디어 형식 매개 변수를 완료할 수 있습니다.

프록시는 미디어 형식의 GUID를 COM 서버 클래스로 사용하여 로드할 데이터 형식 처리기가 있는지 확인합니다. 데이터 형식 처리기가 프록시가 찾는 예상 GUID 클래스에 따라 COM 서버로 등록되는 한 데이터 형식 처리기가 로드됩니다. 주 형식 형식은 먼저 데이터 형식 처리기 COM 서버를 여는 데 사용되며, 주 형식 형식을 사용하여 데이터 형식 처리기를 열지 못하면 하위 형식 및 형식 지정자가 그 뒤를 잇습니다. 시도가 성공하면 프록시는 IKsDataTypeHandler 인터페이스를 쿼리하고 인터페이스의 KsSetMediaType 메서드를 호출하여 처리기가 여러 형식을 지원하는 경우 처리기와 함께 사용되는 현재 미디어 형식을 설정합니다. 처리기를 찾을 수 없는 경우 프록시는 커널 모드로 스트림을 마샬링하거나 필요한 다른 작업을 수행할 때 필요하지 않은 것으로 가정합니다.

CoCreateInstance를 통해 요청을 만드는 데이터 형식 처리기에서 서버에는 항상 COM 개체를 만들 수 있는 외부 IUnknown이 표시됩니다. 이 IUnknown 은 이 처리기를 로드하는 핀 개체의 인터페이스입니다. IUnknown 인터페이스 포인터를 사용하여 IKsPin 또는 IKsControl 인터페이스와 같은 핀의 정보 또는 인터페이스를 쿼리할 수 있지만 처리기가 로드될 때 커널 모드 핀이 만들어지지 않았을 수 있습니다. 인터페이스를 획득하여 외부 개체에 참조를 남겨서는 안 됩니다. 따라서 순환 참조 수가 발생합니다. 외부 개체가 처리기를 소유하고 정의에 따라 외부 개체의 참조 수가 0에 도달하면 제거되므로 참조 횟수 없이 인터페이스를 사용할 수 있습니다.

IAMStreamConfig::SetFormatCoCreateInstance에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 ksproxy.h

추가 정보

IKsDataTypeCompletion