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 |
---|---|
|
L’appelant a passé la valeur NULL dans le paramètre InterfaceHandle . |
|
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. |
|
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 |