Freigeben über


URB-Struktur (usb.h)

Die URB-Struktur wird von USB-Clienttreibern verwendet, um USB-Anforderungsblöcke (URBs) zu beschreiben, die Anforderungen an den USB-Treiberstapel senden. Die URB-Struktur definiert ein Format für alle möglichen Befehle, die an ein USB-Gerät gesendet werden können.

Syntax

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;

Member

UrbHeader

Stellt grundlegende Informationen zur Anforderung bereit, die an den Hostcontrollertreiber gesendet wird. Weitere Informationen finden Sie unter _URB_HEADER.

UrbSelectInterface

Definiert das Format eines Befehls "Select Interface" für ein USB-Gerät. Weitere Informationen finden Sie unter _URB_SELECT_INTERFACE.

UrbSelectConfiguration

Definiert das Format eines Select-Konfigurationsbefehls für ein USB-Gerät. Weitere Informationen finden Sie unter _URB_SELECT_CONFIGURATION.

UrbPipeRequest

Definiert das Format für einen Befehl für eine Pipe in einem USB-Endpunkt. Weitere Informationen finden Sie unter _URB_PIPE_REQUEST.

UrbFrameLengthControl

In Windows 2000 und höheren Betriebssystemen veraltet und wird von Microsoft nicht unterstützt. Nicht verwenden.

UrbGetFrameLength

In Windows 2000 und höheren Betriebssystemen veraltet und wird von Microsoft nicht unterstützt. Nicht verwenden.

UrbSetFrameLength

In Windows 2000 und höheren Betriebssystemen veraltet und wird von Microsoft nicht unterstützt. Nicht verwenden.

UrbGetCurrentFrameNumber

Definiert das Format für einen Befehl zum Abrufen der aktuellen Framenummer auf einem USB-Bus. Weitere Informationen finden Sie unter _URB_GET_CURRENT_FRAME_NUMBER.

UrbControlTransfer

Definiert das Format für einen Befehl zum Übertragen oder Empfangen von Daten in einer Steuerelementpipeline. Weitere Informationen finden Sie unter _URB_CONTROL_TRANSFER.

UrbControlTransferEx

Definiert das Format für einen Befehl zum Übertragen oder Empfangen von Daten in einer Steuerelementpipeline. Weitere Informationen finden Sie unter _URB_CONTROL_TRANSFER_EX.

Definiert das Format für einen Befehl zum Übertragen oder Empfangen von Daten in einer Steuerelementpipeline.

UrbBulkOrInterruptTransfer

Definiert das Format für einen Befehl zum Übertragen oder Empfangen von Daten in einer Massenpipe oder zum Empfangen von Daten aus einer Interruptpipe. Weitere Informationen finden Sie unter _URB_BULK_OR_INTERRUPT_TRANSFER.

UrbIsochronousTransfer

Definiert das Format einer isochronen Übertragung auf ein USB-Gerät. Weitere Informationen finden Sie unter _URB_ISOCH_TRANSFER.

UrbControlDescriptorRequest

Definiert das Format für einen Befehl zum Abrufen oder Festlegen von Deskriptoren auf einem USB-Gerät. Weitere Informationen finden Sie unter _URB_CONTROL_DESCRIPTOR_REQUEST.

UrbControlGetStatusRequest

Definiert das Format für einen Befehl, um status von einem Gerät, einer Schnittstelle oder einem Endpunkt abzurufen. Weitere Informationen finden Sie unter _URB_CONTROL_GET_STATUS_REQUEST.

UrbControlFeatureRequest

Definiert das Format für einen Befehl zum Festlegen oder Löschen von USB-definierten Features auf einem Gerät, einer Schnittstelle oder einem Endpunkt. Weitere Informationen finden Sie unter _URB_CONTROL_FEATURE_REQUEST.

UrbControlVendorClassRequest

Definiert das Format für einen Befehl zum Senden oder Empfangen einer anbieter- oder klassenspezifischen Anforderung für ein Gerät, eine Schnittstelle, einen Endpunkt oder ein anderes gerätedefiniertes Ziel. Weitere Informationen finden Sie unter _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.

UrbControlGetInterfaceRequest

Definiert das Format für einen Befehl, um die aktuelle alternative Schnittstelleneinstellung für eine ausgewählte Schnittstelle abzurufen. Weitere Informationen finden Sie unter _URB_CONTROL_GET_INTERFACE_REQUEST.

UrbControlGetConfigurationRequest

Definiert das Format für einen Befehl, um die aktuelle Konfiguration für ein Gerät abzurufen. Weitere Informationen finden Sie unter _URB_CONTROL_GET_CONFIGURATION_REQUEST.

UrbOSFeatureDescriptorRequest

Definiert das Format für einen Befehl zum Anfordern eines Microsoft-Betriebssystemdeskriptors. Weitere Informationen finden Sie unter _URB_OS_FEATURE_DESCRIPTOR_REQUEST.

UrbOpenStaticStreams

Definiert das Format für einen Befehl zum Öffnen von Streams in einem Massenendpunkt eines USB 3.0-Geräts. Weitere Informationen finden Sie unter _URB_OPEN_STATIC_STREAMS und Öffnen und Schließen statischer Streams in einem USB-Massenendpunkt.

UrbGetIsochPipeTransferPathDelays

Definiert das Format für einen Befehl zum Abrufen von Verzögerungen, die mit der isochronen Übertragungsprogrammierung im Hostcontroller und der Vervollständigung der Übertragung verbunden sind, damit der Clienttreiber sicherstellen kann, dass das Gerät die isochronen Pakete rechtzeitig erhält. Weitere Informationen finden Sie unter _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.

Hinweise

Informationen zu den Funktionscodes, die in jeder Struktur festgelegt werden sollen, finden Sie unter _URB_HEADER.

Anforderungen

Anforderung Wert
Header usb.h (einschließlich Usb.h)

Weitere Informationen

IOCTL_INTERNAL_USB_SUBMIT_URB

USB-Strukturen