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
ERROR_INVALID_HANDLE
Der Aufrufer hat NULL im Parameter InterfaceHandle übergeben.
ERROR_INVALID_PARAMETER
Der Aufrufer hat NULL im PipeInformation-Parameter übergeben. Der Schnittstellendeskriptor konnte für das in InterfaceHandle angegebene Handle nicht gefunden werden.
ERROR_NO_MORE_ITEMS
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

Weitere Informationen

WINUSB_PIPE_INFORMATION

Winusb

WinUSB-Funktionen

WinUsb_Initialize