función WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES (wdfusb.h)
[Se aplica a KMDF y UMDF]
La función WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES inicializa una estructura de WDF_USB_DEVICE_SELECT_CONFIG_PARAMS para que un controlador pueda configurar un dispositivo para que use varias interfaces.
Sintaxis
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
);
Parámetros
[in, out] Params
Puntero a una estructura de WDF_USB_DEVICE_SELECT_CONFIG_PARAMS asignada por el controlador.
[in, optional] NumberInterfaces
Número de elementos de la matriz SettingPairs . Si SettingPairs no es NULL, este parámetro debe ser mayor que cero.
[in, optional] SettingPairs
Matriz de estructuras de WDF_USB_INTERFACE_SETTING_PAIR . Este parámetro es opcional y puede ser NULL.
Valor devuelto
None
Observaciones
El controlador puede usar la función WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES para seleccionar una configuración si las interfaces del dispositivo se especifican mediante identificadores para objetos de interfaz USB.
El controlador puede usar esta función si el dispositivo tiene una o varias interfaces USB.
La función WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES cero la estructura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS y establece el miembro Size en el tamaño de la estructura.
Si numInterfaces o SettingPairs es NULL, WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES establece el miembro Type en WdfUsbTargetDeviceSelectConfigTypeMultiInterface. En este caso, el marco determina el número de interfaces que tiene y habilita la configuración alternativa cero en cada una. Use esta configuración si desea establecer de forma predeterminada cero en todas las interfaces.
Si el parámetro numInterfaces y el parámetro SettingPairs no son NULL, esta función establece el miembro Type de la estructura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS en WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs. En este caso, puede especificar una configuración alternativa en cualquiera de las interfaces.
Para inicializar una estructura de WDF_USB_DEVICE_SELECT_CONFIG_PARAMS , el controlador debe llamar a una de las siguientes funciones:
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Ejemplos
En el ejemplo de código siguiente se llama a WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE o WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES, en función del número de interfaces que admite la configuración del dispositivo. A continuación, el ejemplo llama a WdfUsbTargetDeviceSelectConfig para seleccionar una configuración.
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;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfusb.h (incluya Wdfusb.h) |
Consulte también
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