Structure URB (usb.h)
La structure URB est utilisée par les pilotes clients USB pour décrire les blocs de requête USB (URB) qui envoient des requêtes à la pile de pilotes USB. La structure URB définit un format pour toutes les commandes possibles qui peuvent être envoyées à un périphérique USB.
Syntaxe
typedef struct _URB {
union {
#if ...
_URB_HEADER UrbHeader;
#else
struct _URB_HEADER UrbHeader;
#endif
#if ...
_URB_SELECT_INTERFACE UrbSelectInterface;
#else
struct _URB_SELECT_INTERFACE UrbSelectInterface;
#endif
#if ...
_URB_SELECT_CONFIGURATION UrbSelectConfiguration;
#else
struct _URB_SELECT_CONFIGURATION UrbSelectConfiguration;
#endif
#if ...
_URB_PIPE_REQUEST UrbPipeRequest;
#else
struct _URB_PIPE_REQUEST UrbPipeRequest;
#endif
#if ...
_URB_FRAME_LENGTH_CONTROL UrbFrameLengthControl;
#else
struct _URB_FRAME_LENGTH_CONTROL UrbFrameLengthControl;
#endif
#if ...
_URB_GET_FRAME_LENGTH UrbGetFrameLength;
#else
struct _URB_GET_FRAME_LENGTH UrbGetFrameLength;
#endif
#if ...
_URB_SET_FRAME_LENGTH UrbSetFrameLength;
#else
struct _URB_SET_FRAME_LENGTH UrbSetFrameLength;
#endif
#if ...
_URB_GET_CURRENT_FRAME_NUMBER UrbGetCurrentFrameNumber;
#else
struct _URB_GET_CURRENT_FRAME_NUMBER UrbGetCurrentFrameNumber;
#endif
#if ...
_URB_CONTROL_TRANSFER UrbControlTransfer;
#else
struct _URB_CONTROL_TRANSFER UrbControlTransfer;
#endif
#if ...
_URB_CONTROL_TRANSFER_EX UrbControlTransferEx;
#else
struct _URB_CONTROL_TRANSFER_EX UrbControlTransferEx;
#endif
#if ...
_URB_BULK_OR_INTERRUPT_TRANSFER UrbBulkOrInterruptTransfer;
#else
struct _URB_BULK_OR_INTERRUPT_TRANSFER UrbBulkOrInterruptTransfer;
#endif
#if ...
_URB_ISOCH_TRANSFER UrbIsochronousTransfer;
#else
struct _URB_ISOCH_TRANSFER UrbIsochronousTransfer;
#endif
#if ...
_URB_CONTROL_DESCRIPTOR_REQUEST UrbControlDescriptorRequest;
#else
struct _URB_CONTROL_DESCRIPTOR_REQUEST UrbControlDescriptorRequest;
#endif
#if ...
_URB_CONTROL_GET_STATUS_REQUEST UrbControlGetStatusRequest;
#else
struct _URB_CONTROL_GET_STATUS_REQUEST UrbControlGetStatusRequest;
#endif
#if ...
_URB_CONTROL_FEATURE_REQUEST UrbControlFeatureRequest;
#else
struct _URB_CONTROL_FEATURE_REQUEST UrbControlFeatureRequest;
#endif
#if ...
_URB_CONTROL_VENDOR_OR_CLASS_REQUEST UrbControlVendorClassRequest;
#else
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST UrbControlVendorClassRequest;
#endif
#if ...
_URB_CONTROL_GET_INTERFACE_REQUEST UrbControlGetInterfaceRequest;
#else
struct _URB_CONTROL_GET_INTERFACE_REQUEST UrbControlGetInterfaceRequest;
#endif
#if ...
_URB_CONTROL_GET_CONFIGURATION_REQUEST UrbControlGetConfigurationRequest;
#else
struct _URB_CONTROL_GET_CONFIGURATION_REQUEST UrbControlGetConfigurationRequest;
#endif
#if ...
_URB_OS_FEATURE_DESCRIPTOR_REQUEST UrbOSFeatureDescriptorRequest;
#else
struct _URB_OS_FEATURE_DESCRIPTOR_REQUEST UrbOSFeatureDescriptorRequest;
#endif
#if ...
_URB_OPEN_STATIC_STREAMS UrbOpenStaticStreams;
#else
struct _URB_OPEN_STATIC_STREAMS UrbOpenStaticStreams;
#endif
#if ...
_URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
#else
struct _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS UrbGetIsochPipeTransferPathDelays;
#endif
};
} URB, *PURB;
Membres
UrbHeader
Fournit des informations de base sur la demande envoyée au pilote du contrôleur hôte. Pour plus d’informations, consultez _URB_HEADER.
UrbSelectInterface
Définit le format d’une commande select interface pour un périphérique USB. Pour plus d’informations, consultez _URB_SELECT_INTERFACE.
UrbSelectConfiguration
Définit le format d’une commande de configuration select pour un périphérique USB. Pour plus d’informations, consultez _URB_SELECT_CONFIGURATION.
UrbPipeRequest
Définit le format d’une commande pour un canal dans un point de terminaison USB. Pour plus d’informations, consultez _URB_PIPE_REQUEST.
UrbFrameLengthControl
Déconseillé dans les systèmes d’exploitation Windows 2000 et versions ultérieures et n’est pas pris en charge par Microsoft. Ne pas utiliser.
UrbGetFrameLength
Déconseillé dans les systèmes d’exploitation Windows 2000 et versions ultérieures et n’est pas pris en charge par Microsoft. Ne pas utiliser.
UrbSetFrameLength
Déconseillé dans les systèmes d’exploitation Windows 2000 et versions ultérieures et n’est pas pris en charge par Microsoft. Ne pas utiliser.
UrbGetCurrentFrameNumber
Définit le format d’une commande pour obtenir le numéro d’image actuel sur un bus USB. Pour plus d’informations, consultez _URB_GET_CURRENT_FRAME_NUMBER.
UrbControlTransfer
Définit le format d’une commande pour transmettre ou recevoir des données sur un canal de contrôle. Pour plus d’informations, consultez _URB_CONTROL_TRANSFER.
UrbControlTransferEx
Définit le format d’une commande pour transmettre ou recevoir des données sur un canal de contrôle. Pour plus d’informations, consultez _URB_CONTROL_TRANSFER_EX.
Définit le format d’une commande pour transmettre ou recevoir des données sur un canal de contrôle.
UrbBulkOrInterruptTransfer
Définit le format d’une commande pour transmettre ou recevoir des données sur un canal en bloc, ou pour recevoir des données d’un canal d’interruption. Pour plus d’informations, consultez _URB_BULK_OR_INTERRUPT_TRANSFER.
UrbIsochronousTransfer
Définit le format d’un transfert isochronieux vers un périphérique USB. Pour plus d’informations, consultez _URB_ISOCH_TRANSFER.
UrbControlDescriptorRequest
Définit le format d’une commande pour récupérer ou définir un ou plusieurs descripteurs sur un périphérique USB. Pour plus d’informations, consultez _URB_CONTROL_DESCRIPTOR_REQUEST.
UrbControlGetStatusRequest
Définit le format d’une commande pour obtenir status à partir d’un appareil, d’une interface ou d’un point de terminaison. Pour plus d’informations, consultez _URB_CONTROL_GET_STATUS_REQUEST.
UrbControlFeatureRequest
Définit le format d’une commande pour définir ou effacer les fonctionnalités définies par USB sur un appareil, une interface ou un point de terminaison. Pour plus d’informations, consultez _URB_CONTROL_FEATURE_REQUEST.
UrbControlVendorClassRequest
Définit le format d’une commande pour envoyer ou recevoir une demande spécifique à un fournisseur ou à une classe sur un appareil, une interface, un point de terminaison ou une autre cible définie par l’appareil. Pour plus d’informations, consultez _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.
UrbControlGetInterfaceRequest
Définit le format d’une commande pour obtenir le paramètre d’interface de remplacement actuel pour une interface sélectionnée. Pour plus d’informations, consultez _URB_CONTROL_GET_INTERFACE_REQUEST.
UrbControlGetConfigurationRequest
Définit le format d’une commande pour obtenir la configuration actuelle d’un appareil. Pour plus d’informations, consultez _URB_CONTROL_GET_CONFIGURATION_REQUEST.
UrbOSFeatureDescriptorRequest
Définit le format d’une commande pour demander un descripteur de système d’exploitation Microsoft. Pour plus d’informations, consultez _URB_OS_FEATURE_DESCRIPTOR_REQUEST.
UrbOpenStaticStreams
Définit le format d’une commande pour ouvrir des flux dans un point de terminaison en bloc d’un appareil USB 3.0. Pour plus d’informations, consultez _URB_OPEN_STATIC_STREAMS et Comment ouvrir et fermer des flux statiques dans un point de terminaison en bloc USB.
UrbGetIsochPipeTransferPathDelays
Définit le format d’une commande pour récupérer les retards associés à la programmation de transfert isochroneuse dans le contrôleur hôte et l’achèvement du transfert afin que le pilote client puisse s’assurer que l’appareil obtient les paquets isochronieux à temps. Pour plus d’informations, consultez _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.
Remarques
Pour plus d’informations sur les codes de fonction à définir dans chaque structure, consultez _URB_HEADER.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | usb.h (inclure Usb.h) |