KsPropertyHandler 函数 (ks.h)
驱动程序调用 KsPropertyHandler 函数进行 IRP 处理。
语法
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>。信息成员,无论是通过内部错误将其设置为零,还是通过属性处理程序对其进行设置。 函数不会设置 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-Tail.Overlay.DriverContext> 参数中的相关KSPROPERTY_SET结构的指针。 微型驱动程序可以使用 ks.h 中定义的 KSPROPERTY_SET_IRP_STORAGE 宏来访问此指针。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |