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

指定特定于 pin 属性的数据。

[in] DescriptorsCount

指定描述符结构的数目。

[in] Descriptor

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

[in] DescriptorSize

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

[in, optional] IntersectHandler

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

[in, optional] HandlerContext

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

返回值

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

言论

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

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

要求

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

另请参阅

KStrIntersectHandlerEx