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) |