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