Partager via


WinUsb_QueryPipe, fonction (winusb.h)

La fonction WinUsb_QueryPipe récupère des informations sur le point de terminaison spécifié et le canal associé pour une interface.

Syntaxe

BOOL WinUsb_QueryPipe(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AlternateInterfaceNumber,
  [in]  UCHAR                    PipeIndex,
  [out] PWINUSB_PIPE_INFORMATION PipeInformation
);

Paramètres

[in] InterfaceHandle

Handle opaque pour une interface qui contient le point de terminaison auquel le canal est associé.

Pour interroger le canal associé à un point de terminaison dans la première interface, utilisez le handle retourné par WinUsb_Initialize. Pour toutes les autres interfaces, utilisez le handle de l’interface cible, récupéré par WinUsb_GetAssociatedInterface.

[in] AlternateInterfaceNumber

Valeur qui spécifie l’autre interface pour laquelle retourner les informations.

[in] PipeIndex

Valeur qui spécifie le canal sur lequel retourner des informations. Cette valeur n’est pas la même que le champ bEndpointAddress dans le descripteur de point de terminaison. Une valeur PipeIndex de 0 signifie le premier point de terminaison associé à l’interface, la valeur 1 indique le deuxième point de terminaison, et ainsi de suite. PipeIndex doit être inférieur à la valeur dans le champ bNumEndpoints du descripteur d’interface.

[out] PipeInformation

Pointeur, en sortie, vers une structure de WINUSB_PIPE_INFORMATION allouée à l’appelant qui contient des informations de canal.

Valeur retournée

WinUsb_QueryPipe retourne TRUE si l’opération réussit. Sinon, cette fonction retourne FALSE et l’appelant peut récupérer l’erreur journalisée en appelant GetLastError.

GetLastError peut retourner le code d’erreur suivant.

Code de retour Description
ERROR_INVALID_HANDLE
L’appelant a passé la valeur NULL dans le paramètre InterfaceHandle .
ERROR_INVALID_PARAMETER
L’appelant a passé la valeur NULL dans le paramètre PipeInformation ; Le descripteur d’interface est introuvable pour le handle spécifié dans InterfaceHandle.
ERROR_NO_MORE_ITEMS
La valeur passée dans le paramètre PipeIndex est supérieure à la valeur bNumEndpoints du descripteur d’interface ; Le descripteur de point de terminaison est introuvable pour l’interface spécifiée.

Remarques

La fonction WinUsb_QueryPipe ne récupère pas d’informations sur le canal de contrôle.

Chaque interface sur le périphérique USB peut avoir plusieurs points de terminaison. Pour communiquer avec chacun de ces points de terminaison, le pilote de bus crée des canaux pour chaque point de terminaison sur l’interface. Les index de canal sont de base zéro. Par conséquent, pour n nombre de points de terminaison, les index des canaux sont définis de n à 1. WinUsb_QueryPipe analyse le descripteur de configuration pour obtenir l’interface spécifiée par l’appelant. Il recherche dans le descripteur d’interface le descripteur de point de terminaison associé au canal spécifié par l’appelant. Si le point de terminaison est trouvé, la fonction remplit la structure de WINUSB_PIPE_INFORMATION allouée à l’appelant avec les informations du descripteur de point de terminaison.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête winusb.h (inclure Winusb.h)
Bibliothèque Winusb.lib
DLL Winusb.dll

Voir aussi

WINUSB_PIPE_INFORMATION

WinUSB

Fonctions WinUSB

WinUsb_Initialize