USBD_GET_BESCHREIBUNGSORS

Zweck

Ruft Standard-USB-Deskriptoren (Universal Serial Bus) für eine logische Einheit ab.

Syntax

int ioctl (file, USBD_GET_DESCRIPTORS, arg)

Parameter

Element Beschreibung
Datei Dateideskriptor, der beim Öffnen der Gerätedatei des USB-Systemtreibers (USBD) abgerufen wird.
Arg Adresse der USBDGD -Struktur, die an einer 4-Byte-Grenze ausgerichtet ist.

Beschreibung

Nach einer erfolgreichen Rückgabe von der Operation ioctl wird eine DESCIDX -Struktur am Anfang des angegebenen Puffers platziert, auf die der Standardeinheitendeskriptor, der Konfigurationsdeskriptor, der Schnittstellendeskriptor, die Endpunktdeskriptoren, der HID-Deskriptor (HID-Human Interface Device) (bei Verwendung einer HID-Einheit), der Hubdeskriptor (bei Verwendung einer Hubeinheit) und die Zeichenfolgedeskriptoren der angegebenen logischen USB-Einheit folgen. Die Struktur DESCIDX bietet direkte Adressierbarkeit für die einzelnen Deskriptoren. Zeichenfolgedeskriptoren werden zur Vereinfachung in auf null endende ASCII-Zeichenfolgen (ASCII = American Standard Code for Information Interchange) reformiert. Alle anderen Deskriptoren entsprechen dem Standard-USB-Format. Da die Größe der zurückgegebenen Daten normalerweise unbekannt ist, muss die Operation ioctl zweimal aufgerufen werden. Wenn Sie die Operation ioctl zum ersten Mal aufrufen, setzen Sie das Feld bufferLength auf null und das Pufferfeld auf null. Die Operation ioctl schlägt möglicherweise mit dem Fehler ENOSPC fehl, jedoch wird der Wert minBuffLength zurückgegeben, der die erforderliche Größe des Puffers angibt. Der Aufrufende kann dann den Puffer zuordnen und die Operation ioctl erneut aufrufen, wobei das Feld bufferLength auf den richtigen Wert gesetzt ist.

Ausführungsumgebung

Diese Funktion kann nur von der Benutzerprozessumgebung aufgerufen werden.

Rückgabewerte

Wert Beschreibung
0 Erfolg.
-1 Fehler. Überprüfen Sie den Wert für errno auf bestimmte Fehlerursachen.