struktur _URB_CONTROL_DESCRIPTOR_REQUEST (usb.h)

Struktur _URB_CONTROL_DESCRIPTOR_REQUEST digunakan oleh driver klien USB untuk mendapatkan atau mengatur deskriptor pada perangkat USB.

Sintaks

struct _URB_CONTROL_DESCRIPTOR_REQUEST {
  struct _URB_HEADER   Hdr;
  PVOID                Reserved;
  ULONG                Reserved0;
  ULONG                TransferBufferLength;
  PVOID                TransferBuffer;
  PMDL                 TransferBufferMDL;
  struct _URB          *UrbLink;
  struct _URB_HCD_AREA hca;
  USHORT               Reserved1;
  UCHAR                Index;
  UCHAR                DescriptorType;
  USHORT               LanguageId;
  USHORT               Reserved2;
};

Anggota

Hdr

Penunjuk ke struktur _URB_HEADER yang menentukan informasi header URB. Hdr.Function harus salah satu dari berikut ini:

Hdr.Length harus sama dengan sizeof(_URB_CONTROL_DESCRIPTOR_REQUEST).

Reserved

Dicadangkan. Jangan gunakan.

Reserved0

Dicadangkan. Jangan gunakan.

TransferBufferLength

Menentukan panjang, dalam byte, dari buffer yang ditentukan dalam TransferBuffer atau dijelaskan dalam TransferBufferMDL. Driver pengontrol host mengembalikan jumlah byte yang dikirim ke atau dibaca dari pipa di anggota ini.

TransferBuffer

Penunjuk ke buffer penduduk untuk transfer atau NULL jika MDL disediakan di TransferBufferMDL.

TransferBufferMDL

Penunjuk ke MDL yang menjelaskan buffer penduduk atau NULL jika buffer disediakan di TransferBuffer. MDL ini harus dialokasikan dari kumpulan yang tidak dipagasi.

UrbLink

Dicadangkan. Jangan gunakan.

hca

Dicadangkan. Jangan gunakan.

Reserved1

Dicadangkan. Jangan gunakan.

Index

Menentukan indeks deskriptor yang ditentukan perangkat yang sedang diambil atau diatur.

DescriptorType

Menunjukkan jenis deskriptor apa yang sedang diambil atau diatur. Salah satu nilai berikut harus ditentukan:

konstanta usbspec.h Nilai Versi USB
USB_DEVICE_DESCRIPTOR_TYPE 0x01 USB 1.1
USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 USB 1.1
USB_STRING_DESCRIPTOR_TYPE 0x03 USB 1.1
USB_INTERFACE_DESCRIPTOR_TYPE 0x04 USB 1.1
USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 USB 1.1
USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06 USB 2.0
USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE 0x07 USB 2.0
USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08 USB 2.0
USB_OTG_DESCRIPTOR_TYPE 0x09 USB 3.0
USB_DEBUG_DESCRIPTOR_TYPE 0x0a USB 3.0
USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0b USB 3.0
USB_BOS_DESCRIPTOR_TYPE 0x0f USB 3.0
USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE 0x10 USB 3.0
USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x30 USB 3.0
USB_20_HUB_DESCRIPTOR_TYPE 0x29 USB 1.1
USB 2.0
USB_30_HUB_DESCRIPTOR_TYPE 0x2a USB 3.0
USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x31 USB 3.1

LanguageId

Menentukan ID bahasa deskriptor yang akan diambil saat USB_STRING_DESCRIPTOR_TYPE diatur dalam DescriptorType. Anggota ini harus diatur ke nol untuk nilai lain dalam DescriptorType.

Reserved2

Dicadangkan. Jangan gunakan.

Keterangan

Driver dapat menggunakan rutinitas layanan UsbBuildGetDescriptorRequest untuk memformat URB ini. Jika pemanggil melewati buffer terlalu kecil untuk menyimpan semua data, driver bus memotong data agar pas di buffer tanpa kesalahan.

Saat pemanggil meminta pendeskripsi perangkat, driver bus mengembalikan struktur data USB_DEVICE_DESCRIPTOR .

Saat pemanggil meminta pendeskripsi konfigurasi, driver bus mengembalikan pendeskripsi konfigurasi dalam struktur USB_CONFIGURATION_DESCRIPTOR , diikuti oleh deskriptor antarmuka dan titik akhir untuk konfigurasi tersebut. Driver dapat mengakses deskriptor antarmuka dan titik akhir sebagai struktur USB_INTERFACE_DESCRIPTOR dan USB_ENDPOINT_DESCRIPTOR . Driver bus juga mengembalikan deskriptor khusus kelas atau khusus perangkat. Sistem ini menyediakan rutinitas layanan USBD_ParseConfigurationDescriptorEx dan USBD_ParseDescriptors untuk menemukan deskriptor individual dalam buffer.

Saat penelepon meminta pendeskripsi string, driver bus mengembalikan struktur USB_STRING_DESCRIPTOR . String itu sendiri ditemukan di anggota bString panjang variabel dari deskriptor string.

Anggota yang dicadangkan dari struktur ini harus diperlakukan sebagai buram dan disediakan untuk penggunaan sistem.

Persyaratan

   
Header usb.h (termasuk Usb.h)

Lihat juga

URB

Struktur USB

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR

USB_ENDPOINT_DESCRIPTOR

USB_INTERFACE_DESCRIPTOR

USB_STRING_DESCRIPTOR

_URB_HEADER