WinUsb_QueryPipe-Funktion (winusb.h)
Die WinUsb_QueryPipe-Funktion ruft Informationen zum angegebenen Endpunkt und der zugehörigen Pipe für eine Schnittstelle ab.
Syntax
BOOL WinUsb_QueryPipe(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] UCHAR AlternateInterfaceNumber,
[in] UCHAR PipeIndex,
[out] PWINUSB_PIPE_INFORMATION PipeInformation
);
Parameter
[in] InterfaceHandle
Ein undurchsichtiges Handle für eine Schnittstelle, die den Endpunkt enthält, dem die Pipe zugeordnet ist.
Um die Pipe abzufragen, die einem Endpunkt in der ersten Schnittstelle zugeordnet ist, verwenden Sie das von WinUsb_Initialize zurückgegebene Handle. Verwenden Sie für alle anderen Schnittstellen das Handle für die Zielschnittstelle, die von WinUsb_GetAssociatedInterface abgerufen wird.
[in] AlternateInterfaceNumber
Ein Wert, der die alternative Schnittstelle angibt, für die die Informationen zurückgegeben werden sollen.
[in] PipeIndex
Ein Wert, der die Pipe angibt, zu der Informationen zurückgegeben werden sollen. Dieser Wert ist nicht mit dem Feld bEndpointAddress im Endpunktdeskriptor identisch. Ein PipeIndex-Wert von 0 bedeutet den ersten Endpunkt, der der Schnittstelle zugeordnet ist, ein Wert von 1 den zweiten Endpunkt usw. PipeIndex muss kleiner als der Wert im Feld bNumEndpoints des Schnittstellendeskriptors sein.
[out] PipeInformation
Ein Zeiger in der Ausgabe auf eine vom Aufrufer zugewiesene WINUSB_PIPE_INFORMATION Struktur, die Pipeinformationen enthält.
Rückgabewert
WinUsb_QueryPipe gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Funktion FALSE zurück, und der Aufrufer kann den protokollierten Fehler abrufen, indem er GetLastError aufruft.
GetLastError kann den folgenden Fehlercode zurückgeben.
Rückgabecode | Beschreibung |
---|---|
|
Der Aufrufer hat NULL im Parameter InterfaceHandle übergeben. |
|
Der Aufrufer hat NULL im PipeInformation-Parameter übergeben. Der Schnittstellendeskriptor konnte für das in InterfaceHandle angegebene Handle nicht gefunden werden. |
|
Der im PipeIndex-Parameter übergebene Wert ist größer als der bNumEndpoints-Wert des Schnittstellendeskriptors. Endpunktdeskriptor konnte für die angegebene Schnittstelle nicht gefunden werden. |
Hinweise
Die WinUsb_QueryPipe-Funktion ruft keine Informationen zur Steuerungspipe ab.
Jede Schnittstelle auf dem USB-Gerät kann mehrere Endpunkte aufweisen. Um mit jedem dieser Endpunkte zu kommunizieren, erstellt der Bustreiber Pipes für jeden Endpunkt auf der Schnittstelle. Die Pipeindizes sind nullbasiert. Daher werden für die Anzahl der Endpunkte die Indizes der Pipes von n bis 1 festgelegt. WinUsb_QueryPipe analysiert den Konfigurationsdeskriptor, um die vom Aufrufer angegebene Schnittstelle abzurufen. Sie durchsucht den Schnittstellendeskriptor nach dem Endpunktdeskriptor, der der vom Aufrufer angegebenen Pipe zugeordnet ist. Wenn der Endpunkt gefunden wird, füllt die Funktion die vom Aufrufer zugewiesene WINUSB_PIPE_INFORMATION-Struktur mit Informationen aus dem Endpunktdeskriptor auf.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | winusb.h (einschließlich Winusb.h) |
Bibliothek | Winusb.lib |
DLL | Winusb.dll |