funzione WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES (wdfusb.h)
[Si applica a KMDF e UMDF]
La funzione WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES inizializza una struttura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS in modo che un driver possa configurare un dispositivo per l'uso di più interfacce.
Sintassi
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
);
Parametri
[in, out] Params
Puntatore a una struttura di WDF_USB_DEVICE_SELECT_CONFIG_PARAMS allocata dal driver.
[in, optional] NumberInterfaces
Numero di elementi nella matrice SettingPairs . Se SettingPairs non è NULL, questo parametro deve essere maggiore di zero.
[in, optional] SettingPairs
Matrice di strutture WDF_USB_INTERFACE_SETTING_PAIR . Questo parametro è facoltativo e può essere NULL.
Valore restituito
nessuno
Osservazioni
Il driver può usare la funzione WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES per selezionare una configurazione se le interfacce del dispositivo vengono specificate dagli handle agli oggetti interfaccia USB.
Il driver può usare questa funzione se il dispositivo ha una o più interfacce USB.
La funzione WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES zero la struttura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS e imposta il membro Size sulla dimensione della struttura.
Se numInterfaces o SettingPairs è NULL, WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES imposta il membro Type su WdfUsbTargetDeviceSelectConfigTypeMultiInterface. In questo caso, il framework determina il numero di interfacce disponibili e abilita l'impostazione alternativa zero su ogni. Usare questa impostazione se si vuole impostare per impostazione predefinita zero su tutte le interfacce.
Se il parametro numInterfaces e il parametro SettingPairs non sono null, questa funzione imposta il membro Type della struttura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS su WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs. In questo caso, è possibile specificare un'impostazione alternativa in una qualsiasi delle interfacce.
Per inizializzare una struttura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS , il driver deve chiamare una delle funzioni seguenti:
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Esempio
Nell'esempio di codice seguente viene chiamato WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE o WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES, in base al numero di interfacce supportate dalla configurazione del dispositivo. L'esempio chiama quindi WdfUsbTargetDeviceSelectConfig per selezionare una configurazione.
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;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfusb.h (include Wdfusb.h) |
Vedi anche
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