Функция обратного вызова 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

Указывает смещение (или идентификатор) контакта, для которого выполняется пересечение.

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

См. также раздел