Freigeben über


USB_ENDPOINT_DESCRIPTOR Struktur (usbspec.h)

Die USB_ENDPOINT_DESCRIPTOR-Struktur wird von USB-Clienttreibern verwendet, um einen USB-definierten Endpunktdeskriptor abzurufen. Die Mitglieder dieser Struktur werden in der Spezifikation universal Serial Bus 3.1 beschrieben, die unter USB-Dokumentbibliothekverfügbar ist. Siehe Abschnitt 9.6.6.

Syntax

typedef struct _USB_ENDPOINT_DESCRIPTOR {
  UCHAR  bLength;
  UCHAR  bDescriptorType;
  UCHAR  bEndpointAddress;
  UCHAR  bmAttributes;
  USHORT wMaxPacketSize;
  UCHAR  bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;

Angehörige

bLength

Gibt die Länge dieses Deskriptors in Bytes an.

bDescriptorType

Gibt den Deskriptortyp an. Muss auf USB_ENDPOINT_DESCRIPTOR_TYPE festgelegt sein.

bEndpointAddress

Gibt die USB-definierte Endpunktadresse an. Die vier Bits mit niedriger Reihenfolge geben die Endpunktnummer an. Das Bit mit hoher Reihenfolge gibt die Richtung des Datenflusses auf diesem Endpunkt an: 1 für "in", "0" für "out".

bmAttributes

Die beiden Bits mit niedriger Reihenfolge geben den Endpunkttyp an, einen von USB_ENDPOINT_TYPE_CONTROL, USB_ENDPOINT_TYPE_ISOCHRONOUS, USB_ENDPOINT_TYPE_BULK oder USB_ENDPOINT_TYPE_INTERRUPT.

wMaxPacketSize

Gibt die maximale Paketgröße an, die von oder an diesen Endpunkt gesendet werden kann.

bInterval

Der wert bInterval enthält das Abrufintervall für Unterbrechungs- und isochrone Endpunkte. Für andere Endpunkttypen sollte dieser Wert ignoriert werden. Dieser Wert spiegelt die Konfiguration des Geräts in der Firmware wider. Treiber können sie nicht ändern.

Das Abrufintervall bestimmt zusammen mit der Geschwindigkeit des Geräts und dem Typ des Hostcontrollers die Häufigkeit, mit der der Treiber einen Interrupt oder eine isochrone Übertragung initiieren soll. Der Wert in bInterval stellt keine feste Zeitspanne dar. Es handelt sich um einen relativen Wert, und die tatsächliche Abruffrequenz hängt auch davon ab, ob das Gerät und der USB-Hostcontroller mit niedriger, voller oder hoher Geschwindigkeit arbeiten.

Wenn entweder der Hostcontroller oder das Gerät mit geringer Geschwindigkeit betrieben wird, wird der Zeitraum zwischen Unterbrechungsübertragungen (auch als "Period" bezeichnet) in Einheiten von 1 Millisekunden-Frames gemessen, und der Zeitraum bezieht sich auf den Wert in bInterval wie in der folgenden Tabelle angegeben:

Wert von bInterval Abfragezeitraum (1-Millisekunden-Frames) Unterbrechen
0 bis 15 8 Abgestützt.
16 bis 35 16 Abgestützt.
36 bis 255 32 Abgestützt.
> 255 Abrufintervalle > 255 sind durch die USB-Spezifikation verboten.
 

Für Geräte und Hostcontroller, die mit voller Geschwindigkeit arbeiten können, wird der Zeitraum in Einheiten von 1 Millisekunden-Frames gemessen, und der Zeitraum bezieht sich auf den Wert in bInterval wie in der folgenden Tabelle angegeben:

Wert von bInterval Abfragezeitraum (1-Millisekunden-Frames) Unterbrechen Isochron
1 1 Abgestützt. Abgestützt.
2 bis 3 2 Abgestützt. Abgestützt.
4 bis 7 4 Abgestützt. Abgestützt.
8 bis 15 8 Abgestützt. Abgestützt.
16 bis 31 16 Abgestützt. Nicht unterstützt.
32 bis 255 32 Abgestützt. Nicht unterstützt.
> 255 Abrufintervalle > 255 sind durch die USB-Spezifikation verboten.
 

Für Geräte und Hostcontroller, die mit hoher Geschwindigkeit arbeiten können, wird der Zeitraum in Einheiten von Mikroframes gemessen. Es gibt acht Mikroframes in jedem 1 Millisekundenrahmen. Der Punkt ist mit dem Wert in bInterval durch die Formel Punkt = 2 ** (bInterval - 1) verknüpft, wie in der folgenden Tabelle angegeben:

Wert von bInterval Abfragezeitraum (Mikroframes) Unterbrechen Isochron
1 1 Abgestützt. Abgestützt.
2 2 Abgestützt. Abgestützt.
3 4 Abgestützt. Abgestützt.
4 8 Abgestützt. Abgestützt.
5 16 Abgestützt. Nicht unterstützt.
6 32 Abgestützt. Nicht unterstützt.
7 bis 255 32 Abgestützt. Nicht unterstützt.
> 255 Abrufintervalle > 255 sind durch die USB-Spezifikation verboten.
 

Die Zuordnungen in den vorherigen Tabellen zwischen Zeiträumen und Abrufintervallen sind in Windows 2000 und höheren Betriebssystemen gültig.

Anforderungen

Anforderung Wert
Header- usbspec.h (enthalten Usb100.h)

Siehe auch

USB-Strukturen

UsbBuildGetDescriptorRequest

_URB_CONTROL_DESCRIPTOR_REQUEST