функция WinUsb_QueryPipe (winusb.h)
Функция WinUsb_QueryPipe извлекает сведения об указанной конечной точке и связанном канале для интерфейса.
Синтаксис
BOOL WinUsb_QueryPipe(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] UCHAR AlternateInterfaceNumber,
[in] UCHAR PipeIndex,
[out] PWINUSB_PIPE_INFORMATION PipeInformation
);
Параметры
[in] InterfaceHandle
Непрозрачный дескриптор интерфейса, который содержит конечную точку, с которой связан канал.
Чтобы запросить канал, связанный с конечной точкой в первом интерфейсе, используйте дескриптор, возвращаемый WinUsb_Initialize. Для всех остальных интерфейсов используйте дескриптор целевого интерфейса, полученный WinUsb_GetAssociatedInterface.
[in] AlternateInterfaceNumber
Значение типа , указывающее альтернативный интерфейс для возврата сведений.
[in] PipeIndex
Значение типа , указывающее канал для возврата сведений. Это значение не совпадает с полем bEndpointAddress в дескрипторе конечной точки. Значение PipeIndex , равное 0, означает первую конечную точку, связанную с интерфейсом, значение 1 означает вторую конечную точку и т. д. Значение PipeIndex должно быть меньше значения в поле bNumEndpoints дескриптора интерфейса.
[out] PipeInformation
Указатель на выходе на структуру, выделенную вызывающим объектом WINUSB_PIPE_INFORMATION , содержащую сведения о канале.
Возвращаемое значение
WinUsb_QueryPipe возвращает значение TRUE , если операция выполнена успешно. В противном случае эта функция возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.
GetLastError может вернуть следующий код ошибки.
Код возврата | Описание |
---|---|
|
Вызывающий объект передал значение NULL в параметре InterfaceHandle . |
|
Вызывающий объект передал значение NULL в параметре PipeInformation ; Не удалось найти дескриптор интерфейса для дескриптора, указанного в InterfaceHandle. |
|
Значение, переданное в параметре PipeIndex , больше значения bNumEndpoints дескриптора интерфейса; Не удалось найти дескриптор конечной точки для указанного интерфейса. |
Комментарии
Функция WinUsb_QueryPipe не получает сведения о канале управления.
Каждый интерфейс на USB-устройстве может иметь несколько конечных точек. Для взаимодействия с каждой из этих конечных точек драйвер шины создает каналы для каждой конечной точки в интерфейсе. Индексы канала отсчитываются от нуля. Таким образом, для n числа конечных точек индексы каналов задаются из n–1. WinUsb_QueryPipe анализирует дескриптор конфигурации, чтобы получить интерфейс, заданный вызывающим объектом. Он выполняет поиск дескриптора интерфейса для дескриптора конечной точки, связанного с каналом, указанным вызывающим объектом. Если конечная точка найдена, функция заполняет структуру, выделенную вызывающим объектом, WINUSB_PIPE_INFORMATION сведениями из дескриптора конечной точки.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | winusb.h (включая Winusb.h) |
Библиотека | Winusb.lib |
DLL | Winusb.dll |