WinUsb_GetDescriptor-Funktion (winusb.h)

Die WinUsb_GetDescriptor-Funktion gibt den angeforderten Deskriptor zurück. Dies ist ein synchroner Vorgang.

Syntax

BOOL WinUsb_GetDescriptor(
  [in]  WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in]  UCHAR                   DescriptorType,
  [in]  UCHAR                   Index,
  [in]  USHORT                  LanguageID,
  [out] PUCHAR                  Buffer,
  [in]  ULONG                   BufferLength,
  [out] PULONG                  LengthTransferred
);

Parameter

[in] InterfaceHandle

Ein undurchsichtiges Handle für eine Schnittstelle in der ausgewählten Konfiguration.

Verwenden Sie zum Abrufen des Geräte- oder Konfigurationsdeskriptors das von WinUsb_Initialize zurückgegebene Handle.

Verwenden Sie zum Abrufen des Schnittstellendeskriptors der ersten Schnittstelle das von WinUsb_Initialize zurückgegebene Handle.

Um den Endpunktdeskriptor eines Endpunkts in der ersten Schnittstelle abzurufen, verwenden Sie das von WinUsb_Initialize zurückgegebene Handle.

Um Deskriptoren aller anderen Schnittstellen und deren zugehörige Endpunkte abzurufen, verwenden Sie das Handle für die Zielschnittstelle, die von WinUsb_GetAssociatedInterface abgerufen wird.

[in] DescriptorType

Ein Wert, der den Typ des zurückzugebenden Deskriptors angibt. Dieser Parameter entspricht dem Feld bDescriptorType eines Standardgerätedeskriptors, dessen Werte in der Universal Serial Bus-Spezifikation beschrieben werden. Einige dieser Werte sind in der Beschreibung des DescriptorType-Members der _URB_CONTROL_DESCRIPTOR_REQUEST-Struktur aufgeführt.

[in] Index

Der Deskriptorindex. Eine Erklärung des Deskriptorindex finden Sie in der Spezifikation für universellen seriellen Bus (www.usb.org).

[in] LanguageID

Ein Wert, der den Sprachbezeichner angibt, wenn der angeforderte Deskriptor ein Zeichenfolgendeskriptor ist.

[out] Buffer

Ein vom Aufrufer zugewiesener Puffer, der den angeforderten Deskriptor empfängt.

[in] BufferLength

Die Länge des Puffers in Bytes.

[out] LengthTransferred

Die Anzahl der Bytes, die in Puffer kopiert wurden.

Rückgabewert

WinUsb_GetDescriptor gibt TRUE zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Routine 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.

Hinweise

Wenn der Ausgabepuffer, auf den der Buffer-Parameter verweist, groß genug ist, erstellt WinUsb_GetDescriptor eine Kopie des angegebenen Deskriptors im Ausgabepuffer. Es werden keine Daten kopiert, wenn der Puffer nicht groß genug ist, um Deskriptordaten aufzunehmen. Der Deskriptor wird während des WinUsb_Initialize Aufrufs erstellt oder kann an dieser Stelle vom Gerät abgerufen werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header winusb.h (einschließlich Winusb.h)
Bibliothek Winusb.lib
DLL Winusb.dll

Weitere Informationen

Winusb

WinUSB-Funktionen

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST