PFNAVCINTERSECTHANDLER callback function (avc.h)
The AV/C intersect handler determines if the data ranges are compatible. This is a user-defined function based on the following prototype:
Syntax
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
);
Parameters
[in] Context
An optional value expected by the intersect handler. This value is either provided by the subunit driver (if the subunit driver provides the intersect handler), or by the lower driver providing the intersect handler.
[in] PinId
Specifies the offset (or ID) of the pin for which the intersection is being done.
[in] DataRange
[in] MatchingDataRange
[in] DataBufferSize
The size of the buffer passed by the Data member. If this is nonzero, then the intersect handler should attempt to return the data format resulting from a matching pair of data ranges. If this is zero, then the intersect handler should provide the required buffer size in ReportedDataSize, and return STATUS_BUFFER_OVERFLOW.
[out, optional] Data
An optional buffer to receive the data format resulting from a matching pair of data ranges. This member is ignored if DataBufferSize is zero.
[out] DataSize
Return value
The intersect handler should return STATUS_SUCCESS if the data ranges are compatible, and there was enough buffer space to return the resulting format.
Return code | Description |
---|---|
STATUS_NO_MATCH | The data ranges are not compatible. |
STATUS_INTERNAL_ERROR | There was an unexpected format size mismatch. |
STATUS_BUFFER_OVERFLOW | The intersect handler returns the required buffer size through the ReportedDataSize member. |
STATUS_BUFFER_TOO_SMALL | The intersect handler was not provided with a buffer large enough to hold the resulting format. The intersect handler must be called again with the DataBufferSize set to zero to determine the required buffer size. |
STATUS_INSUFFICIENT_RESOURCES | An internal buffer allocation failed. |
Remarks
The AV/C intersect handler is user-defined, based on the function prototype above.
The handler is used in conjunction with the AVC_FUNCTION_GET_PIN_DESCRIPTOR function code. The purpose of the handler is to match identical pin data formats and return them to the caller.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | avc.h (include Avc.h) |