USBD_CreateConfigurationRequestEx (usbdlib.h)

USBD_CreateConfigurationRequestEx rutin mengalokasikan dan memformat URB untuk memilih konfigurasi untuk perangkat USB.

USBD_CreateConfigurationRequestEx menggantikan USBD_CreateConfigurationRequest.

Sintaks

PURB USBD_CreateConfigurationRequestEx(
  [in] PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
  [in] PUSBD_INTERFACE_LIST_ENTRY    InterfaceList
);

Parameter

[in] ConfigurationDescriptor

Penunjuk ke struktur USB_CONFIGURATION_DESCRIPTOR yang dialokasikan pemanggil yang berisi deskriptor konfigurasi untuk konfigurasi yang akan dipilih. Biasanya, driver klien mengirimkan URB jenis URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE (lihat _URB_CONTROL_DESCRIPTOR_REQUEST) untuk mengambil informasi tentang konfigurasi, antarmuka, titik akhir, vendor, dan deskriptor khusus kelas dari perangkat USB. Ketika driver klien menentukan USB_CONFIGURATION_DESCRIPTOR_TYPE sebagai jenis deskriptor, permintaan mengambil semua informasi perangkat dalam struktur USB_CONFIGURATION_DESCRIPTOR . Driver kemudian meneruskan pointer yang diterima ke struktur USB_CONFIGURATION_DESCRIPTOR dalam parameter ConfigurationDescriptor .

[in] InterfaceList

Arahkan ke elemen pertama dari array struktur USBD_INTERFACE_LIST_ENTRY yang dialokasikan pemanggil. Panjang array tergantung pada jumlah antarmuka dalam deskriptor konfigurasi. Jumlah elemen dalam array harus satu lebih dari jumlah antarmuka dalam konfigurasi. Inisialisasi array dengan memanggil RtlZeroMemory. Anggota InterfaceDescriptor dari elemen terakhir dalam array harus diatur ke NULL.

Menampilkan nilai

USBD_CreateConfigurationRequestEx mengalokasikan struktur URB , memformatnya untuk permintaan URB_FUNCTION_SELECT_CONFIGURATION (permintaan konfigurasi pilih), dan mengembalikan penunjuk ke URB. Driver klien kemudian dapat menggunakan URB yang dikembalikan untuk mengirim permintaan konfigurasi-pilih ke driver pengontrol host untuk mengatur konfigurasi. Anda harus membebaskan URB setelah selesai menggunakannya.

Keterangan

Untuk informasi tentang cara membuat permintaan konfigurasi tertentu dan contoh kode, lihat Cara Memilih Konfigurasi untuk Perangkat USB.

Nilai yang dikembalikan adalah penunjuk ke struktur URB yang dapat Anda gunakan untuk mengirimkan permintaan konfigurasi-pilih ke driver pengontrol host untuk mengatur konfigurasi yang ditentukan.

Setelah tumpukan driver USB menyelesaikan permintaan konfigurasi pilih, Anda dapat memeriksa struktur USBD_INTERFACE_INFORMATION . Anggota PipaUSBD_INTERFACE_INFORMATION menunjuk ke array struktur USBD_PIPE_INFORMATION . Driver bus USB mengisi array struktur USBD_PIPE_INFORMATION dengan informasi tentang pipa yang terkait dengan titik akhir antarmuka. Driver klien dapat memperoleh handel pipa dari Pipes[i].PipeHandle dan menggunakannya untuk mengirim permintaan I/O ke pipa tertentu.

Setelah Anda menyelesaikan semua operasi dengan URB yang dikembalikan, Anda harus membebaskan URB dengan memanggil ExFreePool.

Anda dapat mengalokasikan deskriptor konfigurasi dan array dari kumpulan yang tidak di-halaman atau tidak di-halaman. Penelepon rutin ini dapat berjalan di IRQL <= DISPATCH_LEVEL jika memori yang ditujukan oleh ConfigurationDescriptor dan InterfaceList dialokasikan dari kumpulan yang tidak disebarkan. Jika tidak, penelepon harus berjalan di DISPATCH_LEVEL IRQL < .

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header usbdlib.h (termasuk Usbdlib.h)
Pustaka Usbd.lib
IRQL DISPATCH_LEVEL (Lihat Keterangan)

Lihat juga

Cara Memilih Konfigurasi untuk Perangkat USB

Referensi pemrograman driver perangkat USB

USBD_INTERFACE_INFORMATION

_URB_SELECT_CONFIGURATION