Struktur URB (usb.h)

Struktur URB digunakan oleh driver klien USB untuk menjelaskan blok permintaan USB (URL) yang mengirim permintaan ke tumpukan driver USB. Struktur URB mendefinisikan format untuk semua kemungkinan perintah yang dapat dikirim ke perangkat USB.

Sintaks

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;

Anggota

UrbHeader

Menyediakan informasi dasar tentang permintaan yang dikirim ke driver pengontrol host. Untuk informasi selengkapnya, lihat _URB_HEADER.

UrbSelectInterface

Menentukan format perintah antarmuka tertentu untuk perangkat USB. Untuk informasi selengkapnya, lihat _URB_SELECT_INTERFACE.

UrbSelectConfiguration

Menentukan format perintah konfigurasi tertentu untuk perangkat USB. Untuk informasi selengkapnya, lihat _URB_SELECT_CONFIGURATION.

UrbPipeRequest

Menentukan format untuk perintah untuk pipa di titik akhir USB. Untuk informasi selengkapnya, lihat _URB_PIPE_REQUEST.

UrbFrameLengthControl

Tidak digunakan lagi di Windows 2000 dan sistem operasi yang lebih baru dan tidak didukung oleh Microsoft. Jangan gunakan.

UrbGetFrameLength

Tidak digunakan lagi di Windows 2000 dan sistem operasi yang lebih baru dan tidak didukung oleh Microsoft. Jangan gunakan.

UrbSetFrameLength

Tidak digunakan lagi di Windows 2000 dan sistem operasi yang lebih baru dan tidak didukung oleh Microsoft. Jangan gunakan.

UrbGetCurrentFrameNumber

Menentukan format untuk perintah untuk mendapatkan nomor bingkai saat ini pada bus USB. Untuk informasi selengkapnya, lihat _URB_GET_CURRENT_FRAME_NUMBER.

UrbControlTransfer

Menentukan format untuk perintah untuk mengirimkan atau menerima data pada pipa kontrol. Untuk informasi selengkapnya, lihat _URB_CONTROL_TRANSFER.

UrbControlTransferEx

Menentukan format untuk perintah untuk mengirimkan atau menerima data pada pipa kontrol. Untuk informasi selengkapnya, lihat _URB_CONTROL_TRANSFER_EX.

Menentukan format untuk perintah untuk mengirimkan atau menerima data pada pipa kontrol.

UrbBulkOrInterruptTransfer

Menentukan format untuk perintah untuk mengirimkan atau menerima data pada pipa massal, atau untuk menerima data dari pipa interupsi. Untuk informasi selengkapnya, lihat _URB_BULK_OR_INTERRUPT_TRANSFER.

UrbIsochronousTransfer

Menentukan format transfer isochronous ke perangkat USB. Untuk informasi selengkapnya, lihat _URB_ISOCH_TRANSFER.

UrbControlDescriptorRequest

Menentukan format untuk perintah untuk mengambil atau mengatur deskriptor pada perangkat USB. Untuk informasi selengkapnya, lihat _URB_CONTROL_DESCRIPTOR_REQUEST.

UrbControlGetStatusRequest

Menentukan format perintah untuk mendapatkan status dari perangkat, antarmuka, atau titik akhir. Untuk informasi selengkapnya, lihat _URB_CONTROL_GET_STATUS_REQUEST.

UrbControlFeatureRequest

Menentukan format untuk perintah untuk mengatur atau menghapus fitur yang ditentukan USB pada perangkat, antarmuka, atau titik akhir. Untuk informasi selengkapnya, lihat _URB_CONTROL_FEATURE_REQUEST.

UrbControlVendorClassRequest

Menentukan format untuk perintah untuk mengirim atau menerima permintaan khusus vendor atau kelas pada perangkat, antarmuka, titik akhir, atau target lain yang ditentukan perangkat. Untuk informasi selengkapnya, lihat _URB_CONTROL_VENDOR_OR_CLASS_REQUEST.

UrbControlGetInterfaceRequest

Menentukan format untuk perintah guna mendapatkan pengaturan antarmuka alternatif saat ini untuk antarmuka yang dipilih. Untuk informasi selengkapnya, lihat _URB_CONTROL_GET_INTERFACE_REQUEST.

UrbControlGetConfigurationRequest

Menentukan format untuk perintah guna mendapatkan konfigurasi saat ini untuk perangkat. Untuk informasi selengkapnya, lihat _URB_CONTROL_GET_CONFIGURATION_REQUEST.

UrbOSFeatureDescriptorRequest

Menentukan format untuk perintah untuk meminta Microsoft OS Descriptor. Untuk informasi selengkapnya, lihat _URB_OS_FEATURE_DESCRIPTOR_REQUEST.

UrbOpenStaticStreams

Menentukan format untuk perintah untuk membuka aliran di titik akhir massal perangkat USB 3.0. Untuk informasi selengkapnya, lihat _URB_OPEN_STATIC_STREAMS dan Cara Membuka dan Menutup Aliran Statis di Titik Akhir Massal USB.

UrbGetIsochPipeTransferPathDelays

Menentukan format untuk perintah untuk mengambil penundaan yang terkait dengan pemrograman transfer isochronous di pengontrol host dan transfer penyelesaian sehingga driver klien dapat memastikan bahwa perangkat mendapatkan paket isochronous pada waktunya. Untuk informasi selengkapnya, lihat _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS.

Keterangan

Untuk informasi tentang kode fungsi yang akan diatur di setiap struktur, lihat _URB_HEADER.

Persyaratan

   
Header usb.h (termasuk Usb.h)

Lihat juga

IOCTL_INTERNAL_USB_SUBMIT_URB

Struktur USB