Bagikan melalui


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:

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(&params);
}
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(
                    &params,
                    numInterfaces,
                    settingPairs
                    );
}
status = WdfUsbTargetDeviceSelectConfig(
                                        UsbDevice,
                                        NULL,
                                        &params
                                        );
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

WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_URB

WDF_USB_INTERFACE_SETTING_PAIR