Share via


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