다음을 통해 공유


PFNKSPINSETDATAFORMAT 콜백 함수(ks.h)

AVStream 미니드라이버의 AVStrMiniPinSetDataFormat 루틴은 핀 생성 시 호출되어 이전에 합의된 데이터 형식이 이 KSPIN 구조와 이 KSDATARANGE 구조와 일치하는지 확인합니다. 이 루틴은 특정 유형의 동적 형식 변경(예: KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT 속성 요청 수락)으로 인해 호출됩니다.

구문

PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;

NTSTATUS Pfnkspinsetdataformat(
  [in]           PKSPIN Pin,
  [in, optional] PKSDATAFORMAT OldFormat,
  [in, optional] PKSMULTIPLE_ITEM OldAttributeList,
  [in]           const KSDATARANGE *DataRange,
  [in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}

매개 변수

[in] Pin

데이터 형식이 변경되는 KSPIN 구조체에 대한 포인터입니다.

[in, optional] OldFormat

선택 사항입니다. KSDATAFORMAT 구조체에 대한 포인터입니다. 미니 드라이버는 이 필드를 사용하여 이 호출 전에 핀이 사용했던 데이터 형식을 확인할 수 있습니다. NULL인 경우 는 핀에 대해 데이터 형식이 설정되지 않았으며 핀 만들기 디스패치가 아직 만들어지지 않았다는 것을 나타냅니다. 여기서 NULL 값은 형식 확인을 위해 초기화 시 이 루틴이 호출되었음을 나타냅니다.

[in, optional] OldAttributeList

선택 사항입니다. 이전 형식의 특성을 저장하는 KSMULTIPLE_ITEM 구조체에 대한 포인터입니다.

[in] DataRange

KSDATARANGE 구조체에 대한 포인터입니다. 새 형식의 데이터 범위입니다.

[in, optional] AttributeRange

선택 사항입니다. 새 형식의 특성 범위입니다.

반환 값

PinConnectionFormat 멤버가 이 루틴에 전달된 범위와 일치하는 경우 STATUS_SUCCESS 반환합니다. ConnectionFormat이 전달된 범위와 일치하지 않고 미니드라이버가 다른 범위와 일치하는 항목을 계속 찾으려는 경우 STATUS_NO_MATCH 반환합니다. ConnectionFormat이 전달된 범위와 일치하지 않고 미니드라이버가 다른 범위와 일치하는 항목을 계속 찾으려고 하지 않으려면 선택한 오류 코드를 반환합니다. STATUS_PENDING 반환하지 마세요.

설명

링 3 그래프에서 커널 스트리밍 프록시 모듈(KsProxy)은 합의된 연결 형식 또는 동적 형식 변경에 따라 데이터 형식을 설정합니다. KsProxy는 몇 가지 초기 유효성 검사 후에 미니 드라이버에 대한 이 디스패치 호출로 변환되는 KSPROPERTY_CONNECTION_DATAFORMAT 요청을 실행합니다. 커널 스트리밍 프록시를 참조하세요. 자세한 내용은 AVStream 의 KS 데이터 형식 및 데이터 범위DataRange 교집합을 참조하세요.

미니 드라이버는 해당 KSPIN_DISPATCH 구조체의 SetDataFormat 멤버에서 AVStrMiniPinSetDataFormat의 주소를 지정합니다.

핀이 IRP_MJ_CREATE 받기 전에 이 루틴을 호출할 수 있으며 미니 드라이버는 이 상황을 처리할 준비를 해야 합니다.

OldFormat, OldAttributeListAttributeRange 는 모두 선택적 매개 변수이며 NULL일 수 있습니다.

이 루틴은 선택 사항입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 ks.h(Ks.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH