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
Arahkan ke buffer residen untuk transfer atau NULL jika MDL disediakan di TransferBufferMDL.
TransferBufferMDL
Pointer ke MDL yang menjelaskan buffer residen atau NULL jika buffer disediakan di TransferBuffer. MDL ini harus dialokasikan dari kumpulan yang tidak disebarkan.
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 .
Ketika pemanggil meminta pendeskripsi konfigurasi, driver bus mengembalikan pendeskripsi konfigurasi dalam struktur USB_CONFIGURATION_DESCRIPTOR , diikuti oleh antarmuka dan deskriptor titik akhir untuk konfigurasi tersebut. Driver dapat mengakses antarmuka dan deskriptor titik akhir sebagai struktur USB_INTERFACE_DESCRIPTOR dan USB_ENDPOINT_DESCRIPTOR . Pengemudi bus juga mengembalikan deskriptor khusus kelas atau khusus perangkat. Sistem ini menyediakan rutinitas layanan USBD_ParseConfigurationDescriptorEx dan USBD_ParseDescriptors untuk menemukan deskriptor individu dalam buffer.
Saat pemanggil meminta deskriptor 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 buram dan dicadangkan untuk penggunaan sistem.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | usb.h (termasuk Usb.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk