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

另请参阅

KsFastPropertyHandler

KsPropertyHandlerWithAllocator