다음을 통해 공유


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 함수에 의해 처리되지만 특정 예외에 대한 정리는 속성 처리기에서 처리해야 합니다.

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

요구 사항

요구
대상 플랫폼 보편적
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib

참고 항목

KsFastPropertyHandler

KsPropertyHandlerWithAllocator