다음을 통해 공유


KsPropertyHandler 함수(ks.h)

드라이버는 IRP 처리를 위해 KsPropertyHandler 함수를 호출합니다.

구문

KSDDKAPI NTSTATUS KsPropertyHandler(
  [in] PIRP                 Irp,
  [in] ULONG                PropertySetsCount,
  [in] const KSPROPERTY_SET *PropertySet
);

매개 변수

[in] Irp

처리 중인 속성 요청이 있는 IRP를 지정합니다.

[in] PropertySetsCount

전달되는 속성 집합의 수를 지정합니다.

[in] PropertySet

KSPROPERTY_SET 구조체의 배열을 가리킵니다. 드라이버는 KsPropertyHandler가 처리하려는 각 속성 집합에 대해 하나의 구조를 제공해야 합니다.

반환 값

KsPropertyHandler 함수는 성공하면 STATUS_SUCCESS 반환하거나, 실패한 경우 처리 중인 속성과 관련된 오류를 반환합니다. 함수는 IRP IO_STATUS_BLOCK>설정합니다. 내부 오류로 인해 0으로 설정하거나 속성 처리기 설정을 통해 정보 멤버입니다. 함수는 lrp-IoStatus.Status> 멤버를 설정하지 않으며 IRP를 완료하지도 않습니다.

설명

KsPropertyHandler 는 집합에 정의된 모든 속성 식별자에 응답하며 PASSIVE_LEVEL 호출할 수 있습니다.

KSPROPERTY_SET 항목에는 PropertyItem 멤버의 KSPROPERTY_ITEM 구조 배열에 대한 포인터가 포함됩니다. 드라이버별 처리를 위해 KsPropertyHandler는 PropertyItem 내에서 드라이버 제공 콜백 중 하나에 각 요청을 제공합니다. KsPropertyHandler는 필요한 모든 IRP 처리를 처리합니다.

KsPropertyHandler는 KSPROPERTY_SET 구조체의 FastIoTable 멤버를 사용하지 않습니다. 드라이버가 요청의 빠른 I/O 처리를 지원해야 하는 경우 동일한 KSPROPERTY_SET 구조를 KsFastPropertyHandler 루틴에 전달해야 합니다.

속성 집합의 소유자는 속성 처리의 사전 필터링 또는 사후 필터링을 수행할 수 있습니다. 기본 속성 구조 액세스 예외는 KsPropertyHandler 함수에 의해 처리되지만 특정 예외에 대한 정리는 속성 처리기에서 다루어야 합니다.

KsPropertyHandlerIRP의 Irp-Tail.Overlay.DriverContext> 매개 변수에서 관련 KSPROPERTY_SET 구조체에 대한 포인터를 배치합니다. 미니 드라이버는 ks.h에 정의된 KSPROPERTY_SET_IRP_STORAGE 매크로를 사용하여 이 포인터에 액세스할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib

추가 정보

KsFastPropertyHandler

KsPropertyHandlerWithAllocator