다음을 통해 공유


PFNKSDEVICEIRP 콜백 함수(ks.h)

AVStream 미니 드라이버의 IRP 처리기 루틴은 디바이스에서 이러한 IRP를 디스패치할 때 호출됩니다.

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_QUERY_INTERFACE

구문

PFNKSDEVICEIRP Pfnksdeviceirp;

NTSTATUS Pfnksdeviceirp(
  [in] PKSDEVICE Device,
  [in] PIRP Irp
)
{...}

매개 변수

[in] Device

IRP를 디스패치한 KSDEVICE 에 대한 포인터입니다.

[in] Irp

디바이스에서 발급한 IRP입니다.

반환 값

작업을 수행하려는 시도에서 반환된 STATUS_SUCCESS 또는 오류 코드를 반환해야 합니다. 그렇지 않은 경우 적절한 오류 코드를 반환합니다.

설명

IRP Description
IRP_MN_QUERY_REMOVE_DEVICE 미니 드라이버는 KSDEVICE_DISPATCH 구조의QueryRemove 멤버에서 이 루틴의 주소를 지정합니다. 이 루틴은 디바이스에서 IRP_MN_QUERY_REMOVE_DEVICE 디스패치될 때 호출됩니다. 일반적으로 디바이스 제거를 방지하려는 미니드라이버 또는 디바이스 제거 작업에 커밋하지 못하게 하는 활동을 허용하지 않아야 하는 미니드라이버에서 제공됩니다. 이 루틴이 제공되지 않으면 AVStream은 디바이스가 제거에 커밋할 수 있다고 가정합니다. 루틴은 IRQL = PASSIVE_LEVEL 호출되며 STATUS_PENDING 반환하지 않을 수 있습니다. 성공 코드는 디바이스가 제거에 커밋할 수 있음을 나타내고 오류 코드는 디바이스를 제거할 수 없음을 나타냅니다. 디바이스를 중단하지 않고 디바이스를 제거할 수 있거나 드라이버를 업데이트할 수 있는 경우 성공을 반환합니다. 이 루틴은 선택 사항입니다.
IRP_MN_QUERY_STOP_DEVICE 미니 드라이버는 KSDEVICE_DISPATCH 구조의QueryStop 멤버에서 이 루틴에 대한 포인터를 지정합니다. AVStrMiniQueryStop을 사용하여 디바이스의 중지를 방지하거나 미니드라이버가 중지 작업에 커밋되지 않도록 하는 활동을 허용하지 않습니다. 이 루틴을 지정하지 않으면 AVStream은 미니드라이버가 중지 작업에 커밋할 수 있다고 가정합니다. 이 루틴은 선택 사항입니다. 성공 은 디바이스가 중지에 커밋할 수 있음을 나타내고 오류 코드는 디바이스를 중지할 수 없음을 나타냅니다. STATUS_PENDING 반환하지 마세요.
IRP_MN_QUERY_INTERFACE 드라이버 또는 시스템 구성 요소는 드라이버에서 내보낸 인터페이스에 대한 정보를 가져오기 위해 이 IRP를 보냅니다. IRP에 대한 자세한 내용은 IRP_MN_QUERY_INTERFACE 참조하세요. 미니 드라이버는 해당 KSDEVICE_DISPATCH 구조의 QueryInterface 멤버에서 이 루틴의 주소를 지정합니다. 이 루틴은 선택 사항입니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ks.h(Ks.h 포함)
IRQL PASSIVE_LEVEL(설명 섹션 참조)

추가 정보

KSDEVICE

KSDEVICE_DISPATCH