KsPinDataIntersectionEx 函数 (ks.h)

KsPinDataIntersectionEx 函数通过回调函数处理KSPROPERTY_PIN_DATAINTERSECTION

语法

KSDDKAPI NTSTATUS KsPinDataIntersectionEx(
  [in]           PIRP                    Irp,
  [in]           PKSP_PIN                Pin,
  [out]          PVOID                   Data,
  [in]           ULONG                   DescriptorsCount,
  [in]           const KSPIN_DESCRIPTOR  *Descriptor,
  [in]           ULONG                   DescriptorSize,
  [in, optional] PFNKSINTERSECTHANDLEREX IntersectHandler,
  [in, optional] PVOID                   HandlerContext
);

参数

[in] Irp

指定描述属性请求的 IRP。

[in] Pin

指定要查询的特定属性。

[out] Data

指定特定于引脚属性的数据。

[in] DescriptorsCount

指定描述符结构的数目。

[in] Descriptor

指定指向引脚信息结构列表的指针。

[in] DescriptorSize

描述符结构的大小(以字节为单位)。

[in, optional] IntersectHandler

包含可选的微型驱动程序定义的 KStrIntersectHandlerEx 回调函数,用于比较数据范围。

[in, optional] HandlerContext

提供给处理程序的可选上下文。

返回值

返回STATUS_SUCCESS;否则为特定于正在处理的属性的错误。

注解

KsPinDataIntersectionExKsPinDataIntersection 非常相似,但以下一些细微差异除外:

  • KsPinDataIntersectionEx 中,传递描述符的大小,这是允许扩展描述符的功能。
  • 在扩展版本中,数据交集回调函数的原型不同, (NTSTATUS 回调 (ContextIrpPinDataRangeMatchingDataRangeDataBufferSizeData、DataSize) ) 与 KsPinDataIntersection (NTSTATUS 回调 (IrpPinDataRangeData) ) 。
  • (数据) 长度的输出缓冲区作为参数传递给 DataBufferSize () 的数据交集回调函数,而不是从当前 I/O 堆栈位置提取。
  • 向数据交集回调函数传递一个 Context 参数 (传递给 KsPinDataIntersectionEx) 的相同 Context 参数。
  • 生成的格式的大小在 DataSize 中传递回,而不是 Irp->IoStatus.Information。
这些差异除外, KsPinDataIntersectionKsPinDataIntersectionEx 的运行方式类似。

要求

要求
目标平台 桌面
标头 ks.h (包括 Ks.h)

另请参阅

KStrIntersectHandlerEx