fungsi WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES (wdfusb.h)
[Berlaku untuk KMDF dan UMDF]
Fungsi WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES menginisialisasi struktur WDF_USB_DEVICE_SELECT_CONFIG_PARAMS sehingga driver dapat mengonfigurasi perangkat untuk menggunakan beberapa antarmuka.
Sintaks
void WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES(
[in, out] PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS Params,
[in, optional] UCHAR NumberInterfaces,
[in, optional] PWDF_USB_INTERFACE_SETTING_PAIR SettingPairs
);
Parameter
[in, out] Params
Penunjuk ke struktur WDF_USB_DEVICE_SELECT_CONFIG_PARAMS yang dialokasikan driver.
[in, optional] NumberInterfaces
Jumlah elemen dalam array SettingPairs . Jika SettingPairs bukan NULL, parameter ini harus lebih besar dari nol.
[in, optional] SettingPairs
Array struktur WDF_USB_INTERFACE_SETTING_PAIR . Parameter ini bersifat opsional dan dapat berupa NULL.
Nilai kembali
Tidak ada
Keterangan
Driver Anda dapat menggunakan fungsi WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES untuk memilih konfigurasi jika antarmuka perangkat ditentukan oleh handel ke objek antarmuka USB.
Driver Anda dapat menggunakan fungsi ini jika perangkat Anda memiliki satu atau beberapa antarmuka USB.
Fungsi WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES nol struktur WDF_USB_DEVICE_SELECT_CONFIG_PARAMS dan mengatur anggota Ukuran ke ukuran struktur.
Jika numInterfaces atau SettingPairsNULL, WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACESmengatur jenis anggota ke WdfUsbTargetDeviceSelectConfigTypeMultiInterface. Dalam hal ini, kerangka kerja menentukan jumlah antarmuka yang Anda miliki dan memungkinkan pengaturan alternatif nol pada masing-masing antarmuka. Gunakan pengaturan ini jika Anda ingin default ke pengaturan alternatif nol pada semua antarmuka.
Jika parameter numInterfaces dan parameter SettingPairs keduanya bukan NULL, fungsi ini mengatur anggota Jenis dari struktur WDF_USB_DEVICE_SELECT_CONFIG_PARAMS ke WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs. Dalam hal ini, Anda dapat menentukan pengaturan alternatif pada salah satu antarmuka.
Untuk menginisialisasi struktur WDF_USB_DEVICE_SELECT_CONFIG_PARAMS , driver harus memanggil salah satu fungsi berikut:
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Contoh
Contoh kode berikut memanggil WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE atau WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES, berdasarkan jumlah antarmuka yang didukung konfigurasi perangkat. Kemudian, contoh memanggil WdfUsbTargetDeviceSelectConfig untuk memilih konfigurasi.
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS params;
PWDF_USB_INTERFACE_SETTING_PAIR settingPairs;
UCHAR numInterfaces;
numInterfaces = WdfUsbTargetDeviceGetNumInterfaces(UsbDevice);
if (numInterfaces == 1){
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(¶ms);
}
else {
settingPairs = ExAllocatePoolWithTag(
PagedPool,
sizeof(WDF_USB_INTERFACE_SETTING_PAIR) * numInterfaces,
MEM_TAG
);
if (settingPairs == NULL){
return STATUS_INSUFFICIENT_RESOURCES;
}
//
// Call driver-defined routine to populate the
// WDF_USB_INTERFACE_SETTING_PAIR structures
// that ExAllocatePoolWithTag allocated.
//
InitSettingPairs(
UsbDevice,
settingPairs,
numInterfaces
);
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES(
¶ms,
numInterfaces,
settingPairs
);
}
status = WdfUsbTargetDeviceSelectConfig(
UsbDevice,
NULL,
¶ms
);
if (!NT_SUCCESS(status)) {
return status;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | wdfusb.h (termasuk Wdfusb.h) |
Lihat juga
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_DECONFIG
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE