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 |