Share via


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)

Voir aussi

IOCTL_INTERNAL_USB_SUBMIT_URB

USB Structures