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) |