struktur _URB_CONTROL_VENDOR_OR_CLASS_REQUEST (usb.h)
Struktur _URB_CONTROL_VENDOR_OR_CLASS_REQUEST digunakan oleh driver klien USB untuk mengeluarkan perintah khusus vendor atau kelas ke perangkat, antarmuka, titik akhir, atau target lain yang ditentukan perangkat.
Sintaks
struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
struct _URB_HEADER Hdr;
PVOID Reserved;
ULONG TransferFlags;
ULONG TransferBufferLength;
PVOID TransferBuffer;
PMDL TransferBufferMDL;
struct _URB *UrbLink;
struct _URB_HCD_AREA hca;
UCHAR RequestTypeReservedBits;
UCHAR Request;
USHORT Value;
USHORT Index;
USHORT Reserved1;
};
Anggota
Hdr
Penunjuk ke struktur _URB_HEADER yang menentukan informasi header URB. Hdr.Function harus salah satu dari URB_FUNCTION_CLASS_XXX atau URB_FUNCTION_VENDOR_XXX GET_STATUS, dan Hdr.Length harus sizeof(_URB_CONTROL_VENDOR_OR_CLASS_REQUEST)
.
Reserved
TransferFlags
Menentukan nol, satu, atau kombinasi bendera berikut:
Nilai | Makna |
---|---|
|
Diatur untuk meminta data dari perangkat. Untuk mentransfer data ke perangkat, bendera ini harus jelas. Bendera harus diatur jika pipa adalah pipa transfer interupsi. |
|
Diatur untuk mengarahkan pengontrol host untuk tidak mengembalikan kesalahan ketika menerima paket dari perangkat yang lebih pendek dari ukuran paket maksimum untuk titik akhir. Ukuran paket maksimum untuk titik akhir dilaporkan di anggota bMaxPacketSize0 dari struktur USB_DEVICE_DESCRIPTOR (deskriptor perangkat) untuk titik akhir kontrol default. Untuk titik akhir kontrol non-default, ukuran paket maksimum diatur dalam anggota wMaxPacketSize dari struktur USB_ENDPOINT_DESCRIPTOR (deskriptor titik akhir).
Ketika pengontrol host menerima paket yang panjangnya lebih pendek dari nilai wMaxPacketSize pada titik akhir kontrol, perilakunya adalah sebagai berikut tergantung pada jenis pengontrol host:
Bendera ini tidak boleh diatur kecuali USBD_TRANSFER_DIRECTION_IN juga diatur. |
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
Pointer ke buffer residen untuk transfer atau NULL jika MDL disediakan di TransferBufferMDL. Isi buffer ini tergantung pada nilai TransferFlags. Jika USBD_TRANSFER_DIRECTION_IN ditentukan, buffer ini akan berisi data yang dibaca dari perangkat saat kembali dari driver pengontrol host. Jika tidak, buffer ini berisi data yang disediakan driver untuk ditransfer ke perangkat.
TransferBufferMDL
Penunjuk ke MDL yang menjelaskan buffer penduduk atau NULL jika buffer disediakan di TransferBuffer. Isi buffer tergantung pada nilai TransferFlags. Jika USBD_TRANSFER_DIRECTION_IN ditentukan, buffer yang dijelaskan akan berisi data yang dibaca dari perangkat saat kembali dari driver pengontrol host. Jika tidak, buffer berisi data yang disediakan driver untuk ditransfer ke perangkat. MDL ini harus dialokasikan dari kumpulan yang tidak dipagasi.
UrbLink
Dicadangkan. Jangan gunakan.
hca
Dicadangkan. Jangan gunakan.
RequestTypeReservedBits
Dicadangkan. Jangan gunakan.
Request
Menentukan kode permintaan USB atau yang ditentukan vendor untuk perangkat, antarmuka, titik akhir, atau target lain yang ditentukan perangkat.
Value
Menentukan nilai, khusus untuk Permintaan, yang menjadi bagian dari paket penyiapan yang ditentukan USB untuk target. Nilai ini ditentukan oleh pembuat kode yang digunakan dalam Permintaan.
Index
Menentukan indeks yang ditentukan perangkat, dikembalikan oleh permintaan konfigurasi yang berhasil, jika permintaannya adalah untuk titik akhir atau antarmuka. Jika tidak, Indeks harus nol.
Reserved1
Dicadangkan. Jangan gunakan.
Keterangan
Driver dapat menggunakan format rutin layanan UsbBuildVendorRequest URB ini.
Anggota yang dicadangkan dari struktur ini harus diperlakukan sebagai buram dan disediakan 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