PFNAVCINTERSECTHANDLER 回调函数 (avc.h)

AV/C 相交处理程序确定数据范围是否兼容。 这是基于以下原型的用户定义函数:

语法

typedef NTSTATUS ( *PFNAVCINTERSECTHANDLER)(
  _In_      PVOID        Context,
  _In_      ULONG        PinId,
  _In_      PKSDATARANGE CallerDataRange,
  _In_      PKSDATARANGE DescriptorDataRange,
  _In_      ULONG        DataBufferSize,
  _Out_opt_ PVOID        Data,
  _Out_     PULONG       ReportedDataSize
);

参数

[in] Context

相交处理程序预期的可选值。 如果子单元驱动程序) 提供相交处理程序,则由子单元驱动程序 (或者由提供相交处理程序的较低驱动程序提供此值。

[in] PinId

指定要为其执行交集的引脚的偏移量 (或 ID) 。

[in] DataRange

[in] MatchingDataRange

[in] DataBufferSize

Data 成员传递的缓冲区的大小。 如果这是非零值,则相交处理程序应尝试返回由匹配的数据范围对生成的数据格式。 如果为零,则相交处理程序应在 ReportedDataSize 中提供所需的缓冲区大小,并返回STATUS_BUFFER_OVERFLOW。

[out, optional] Data

一个可选缓冲区,用于接收由匹配的数据范围对生成的数据格式。 如果 DataBufferSize 为零,则忽略此成员。

[out] DataSize

返回值

如果数据范围兼容,并且有足够的缓冲区空间返回生成的格式,则相交处理程序应返回STATUS_SUCCESS。

返回代码 说明
STATUS_NO_MATCH 数据范围不兼容。
STATUS_INTERNAL_ERROR 出现意外的格式大小不匹配。
STATUS_BUFFER_OVERFLOW 相交处理程序通过 ReportedDataSize 成员返回所需的缓冲区大小。
STATUS_BUFFER_TOO_SMALL 没有为相交处理程序提供足够大的缓冲区来容纳生成的格式。 必须再次调用相交处理程序,并将 DataBufferSize 设置为零,以确定所需的缓冲区大小。
STATUS_INSUFFICIENT_RESOURCES 内部缓冲区分配失败。

注解

AV/C 相交处理程序是用户定义的,基于上述函数原型。

处理程序与 AVC_FUNCTION_GET_PIN_DESCRIPTOR 函数代码结合使用。 处理程序的目的是匹配相同的引脚数据格式,并将其返回给调用方。

要求

要求
目标平台 桌面
标头 avc.h (包括 Avc.h)

另请参阅