функция WinUsb_GetAssociatedInterface (winusb.h)

Функция WinUsb_GetAssociatedInterface извлекает дескриптор для связанного интерфейса. Это синхронная операция.

Синтаксис

BOOL WinUsb_GetAssociatedInterface(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AssociatedInterfaceIndex,
  [out] PWINUSB_INTERFACE_HANDLE AssociatedInterfaceHandle
);

Параметры

[in] InterfaceHandle

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

[in] AssociatedInterfaceIndex

Индекс, указывающий связанный интерфейс для извлечения. Значение 0 обозначает первый связанный интерфейс, значение 1 — второй связанный интерфейс и т. д.

[out] AssociatedInterfaceHandle

Дескриптор для связанного интерфейса. Вызывающие элементы должны передавать этот дескриптор интерфейса в функции WinUSB , предоставляемые Winusb.dll. Чтобы закрыть этот дескриптор, вызовите WinUsb_Free.

Возвращаемое значение

WinUsb_GetAssociatedInterface возвращает значение TRUE , если операция выполнена успешно. В противном случае эта подпрограмма возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.

Код возврата Описание
ERROR_ALREADY_EXISTS

WinUsb_GetAssociatedInterface уже вернул дескриптор для интерфейса, указанного AssociatedInterfaceIndex .

ERROR_INVALID_HANDLE
Вызывающий объект передал значение NULL в параметре InterfaceHandle .
ERROR_INVALID_PARAMETER
Переданное значение AssociatedInterfaceIndex завершило сбой целочисленного переполнения проверка.
ERROR_NO_MORE_ITEMS
Интерфейс не существует для указанного значения AssociatedInterfaceIndex.
ERROR_NOT_ENOUGH_MEMORY
Указывает, что для выполнения операции недостаточно памяти.

Комментарии

Подпрограмма WinUsb_GetAssociatedInterface извлекает непрозрачный дескриптор.

Первый связанный интерфейс — это интерфейс, который сразу же следует за интерфейсом, дескриптор которого извлекается WinUsb_Initialize подпрограммой.

Дескриптор, возвращаемый WinUsb_GetAssociatedInterface , должен быть освобожден путем вызова WinUsb_Free.

Вызывающие WinUsb_GetAssociatedInterface могут получить только один дескриптор для каждого интерфейса. Если вызывающий объект пытается получить несколько дескрипторов для одного интерфейса, подпрограмма завершится ошибкой ERROR_ALREADY_EXISTS.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть winusb.h (включая Winusb.h)
Библиотека Winusb.lib
DLL Winusb.dll

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

WinUSB

Функции WinUSB

WinUsb_Initialize