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