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
선택 사항입니다. 새 형식의 특성 범위입니다.
반환 값
Pin의 ConnectionFormat 멤버가 이 루틴에 전달된 범위와 일치하는 경우 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, OldAttributeList 및 AttributeRange 는 모두 선택적 매개 변수이며 NULL일 수 있습니다.
이 루틴은 선택 사항입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 데스크톱 |
머리글 | ks.h(Ks.h 포함) |
IRQL | PASSIVE_LEVEL |