Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La structure USB_ENDPOINT_DESCRIPTOR est utilisée par les pilotes clients USB pour récupérer un descripteur de point de terminaison défini par USB. Les membres de cette structure sont décrits dans la spécification Universal Serial Bus 3.1 disponible à bibliothèque de documents USB. Consultez la section 9.6.6.
Syntaxe
typedef struct _USB_ENDPOINT_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
UCHAR bEndpointAddress;
UCHAR bmAttributes;
USHORT wMaxPacketSize;
UCHAR bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
Membres
bLength
Spécifie la longueur, en octets, de ce descripteur.
bDescriptorType
Spécifie le type de descripteur. Doit être défini sur USB_ENDPOINT_DESCRIPTOR_TYPE.
bEndpointAddress
Spécifie l’adresse de point de terminaison définie par USB. Les quatre bits de faible ordre spécifient le numéro de point de terminaison. Le bit à ordre élevé spécifie la direction du flux de données sur ce point de terminaison : 1 pour in, 0 pour sortie.
bmAttributes
Les deux bits de faible ordre spécifient le type de point de terminaison, l’un des USB_ENDPOINT_TYPE_CONTROL, les USB_ENDPOINT_TYPE_ISOCHRONOUS, les USB_ENDPOINT_TYPE_BULK ou les USB_ENDPOINT_TYPE_INTERRUPT.
wMaxPacketSize
Spécifie la taille maximale des paquets qui peut être envoyée depuis ou vers ce point de terminaison.
bInterval
La valeur bInterval contient l’intervalle d’interrogation des points de terminaison d’interruption et isochrones. Pour les autres types de point de terminaison, cette valeur doit être ignorée. Cette valeur reflète la configuration de l’appareil dans le microprogramme. Les pilotes ne peuvent pas le modifier.
L’intervalle d’interrogation, ainsi que la vitesse de l’appareil et le type de contrôleur hôte, déterminent la fréquence avec laquelle le pilote doit lancer une interruption ou un transfert isochrone. La valeur de bInterval ne représente pas une durée fixe. Il s’agit d’une valeur relative, et la fréquence d’interrogation réelle dépend également du fonctionnement de l’appareil et du contrôleur hôte USB à faible, pleine ou haute vitesse.
Si le contrôleur hôte ou l’appareil fonctionne à faible vitesse, la période de temps entre les transferts d’interruption (également appelé « période ») est mesurée en unités de 1 millisecondes, et la période est liée à la valeur dans bInterval comme indiqué le tableau suivant :
Valeur de bInterval | Période d’interrogation (images de 1 millisecondes) | Interrompre |
---|---|---|
0 à 15 | 8 | Supporté. |
16 à 35 | 16 | Supporté. |
36 à 255 | 32 | Supporté. |
> 255 | Les intervalles d’interrogation > 255 sont interdits par la spécification USB. |
Pour les appareils et les contrôleurs hôtes qui peuvent fonctionner à pleine vitesse, la période est mesurée en unités de 1 millisecondes et la période est liée à la valeur dans bInterval, comme indiqué dans le tableau suivant :
Valeur de bInterval | Période d’interrogation (images de 1 millisecondes) | Interrompre | Isochrone |
---|---|---|---|
1 | 1 | Supporté. | Supporté. |
2 à 3 | 2 | Supporté. | Supporté. |
4 à 7 | 4 | Supporté. | Supporté. |
8 à 15 | 8 | Supporté. | Supporté. |
16 à 31 | 16 | Supporté. | Non pris en charge. |
32 à 255 | 32 | Supporté. | Non pris en charge. |
> 255 | Les intervalles d’interrogation > 255 sont interdits par la spécification USB. |
Pour les appareils et les contrôleurs hôtes qui peuvent fonctionner à grande vitesse, la période est mesurée en unités de microframes. Il existe huit microframes dans chaque image de 1 milliseconde. La période est liée à la valeur dans bInterval par la formule Period = 2 ** (bInterval - 1), comme indiqué le tableau suivant :
Valeur de bInterval | Période d’interrogation (microframes) | Interrompre | Isochrone |
---|---|---|---|
1 | 1 | Supporté. | Supporté. |
2 | 2 | Supporté. | Supporté. |
3 | 4 | Supporté. | Supporté. |
4 | 8 | Supporté. | Supporté. |
5 | 16 | Supporté. | Non pris en charge. |
6 | 32 | Supporté. | Non pris en charge. |
7 à 255 | 32 | Supporté. | Non pris en charge. |
> 255 | Les intervalles d’interrogation > 255 sont interdits par la spécification USB. |
Les mappages dans les tables précédentes entre les périodes et les intervalles d’interrogation sont valides dans les systèmes d’exploitation Windows 2000 et versions ultérieures.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | usbspec.h (include Usb100.h) |