Поделиться через


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

Необязательное значение, ожидаемое обработчиком взаимодействия. Это значение предоставляется драйвером subunit (если драйвер subunit предоставляет обработчик межсектового взаимодействия) или более низким драйвером, предоставляющим обработчик взаимодействия.

[in] PinId

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

[in] DataRange

[in] MatchingDataRange

[in] DataBufferSize

Размер буфера, передаваемого элементом данных. Если это ненулевое значение, обработчик интерсект должен попытаться вернуть формат данных, полученный из пары соответствующих диапазонов данных. Если это равно нулю, обработчик интерсект должен указать требуемый размер буфера в ОтчетDataSizeи возвращать 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 (include Avc.h)

См. также