다음을 통해 공유


PFNKSPINSETDEVICESTATE 콜백 함수(ks.h)

연결 상태 속성 'set' IOCTL이 도착하여 KSPIN 구조의 상태가 변경되면 AVStream 미니드라이버의 AVStrMiniPinSetDeviceState 루틴이 호출됩니다. 일반적으로 하드웨어 상태를 변경해야 하는 미니드라이버에서 제공됩니다.

구문

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

매개 변수

[in] Pin

상태가 변경되는 KSPIN 구조체에 대한 포인터입니다.

[in] ToState

IOCTL을 받은 후 대상 KSSTATE 입니다.

[in] FromState

이전 KSSTATE입니다.

반환 값

상태를 설정하려는 시도에서 반환된 STATUS_SUCCESS 또는 오류 코드를 반환합니다. STATUS_PENDING 반환하지 마세요. 필터 컨트롤 뮤텍스는 이 함수 중에 유지됩니다. AVStream에서 필터 컨트롤 뮤텍스를 참조하세요.

설명

minidriver는 해당 KSPIN_DISPATCH 구조체의 SetDeviceState 멤버에서 이 루틴의 주소를 지정합니다.

미니 드라이버는 핀의 초기 연결 시 중지를 받지 않습니다.

표준 전송 메커니즘(표준 인터페이스/표준 매체 또는 KSPIN_DESCRIPTOR_EX KSPIN_FLAG_USE_STANDARD_TRANSPORT 명시적 사용)을 사용하는 핀은 이 루틴을 통해 소유 파이프를 통해 필터링된 상태 변경을 받습니다. 즉, 전환이 단일 단계 이상일 수 없습니다. 즉, KSSTATE_STOP KSSTATE_ACQUIRE 전환, KSSTATE_PAUSE KSSTATE_ACQUIRE 전환 등이 있습니다. 또한 이 루틴에서 받은 상태 변경은 KSPIN 구조의 DeviceState 멤버에 보고된 핀의 개별 상태가 아니라 전체 파이프 상태를 나타냅니다.

표준 전송 메커니즘(비표준 인터페이스, 비표준 매체 또는 KSPIN_DESCRIPTOR_EX KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT 명시적 사용)을 사용하지 않는 핀은 이 루틴을 통해 필터링되지 않은 상태 변경을 받습니다. 따라서 비표준 전송 핀은 한 단계 이상 점프하는 상태 변경을 처리할 준비가 되어 있어야 합니다. 예를 들어 중간 KSSTATE_PAUSE 없이 KSSTATE_RUN KSSTATE_STOP 이동하는 것이 좋습니다. 또한 이 루틴에 보고된 상태는 관련 KSPIN 구조의 DeviceState 멤버에 보고된 상태와 동일합니다.

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

요구 사항

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

추가 정보

KSPIN_DISPATCH