Função WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES (wdfusb.h)
[Aplica-se a KMDF e UMDF]
A função WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES inicializa uma estrutura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS para que um driver possa configurar um dispositivo para usar várias interfaces.
Sintaxe
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
Um ponteiro para uma estrutura de WDF_USB_DEVICE_SELECT_CONFIG_PARAMS alocada por driver.
[in, optional] NumberInterfaces
O número de elementos na matriz SettingPairs . Se SettingPairs não for NULL, esse parâmetro deverá ser maior que zero.
[in, optional] SettingPairs
Uma matriz de estruturas WDF_USB_INTERFACE_SETTING_PAIR . Esse parâmetro é opcional e pode ser NULL.
Retornar valor
Nenhum
Comentários
O driver pode usar a função WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES para selecionar uma configuração se as interfaces do dispositivo forem especificadas por identificadores para objetos de interface USB.
O driver poderá usar essa função se o dispositivo tiver uma ou mais interfaces USB.
A função WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES zeros a estrutura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS e define o membro Size como o tamanho da estrutura.
Se numInterfaces ou SettingPairs for NULL, WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES definirá o membro Type como WdfUsbTargetDeviceSelectConfigTypeMultiInterface. Nesse caso, a estrutura determina o número de interfaces que você tem e habilita a configuração alternativa zero em cada uma. Use essa configuração se quiser usar como padrão a configuração alternativa zero em todas as interfaces.
Se o parâmetro numInterfaces e o parâmetro SettingPairs não forem NULL, essa função definirá o membro Type da estrutura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS como WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs. Nesse caso, você pode especificar uma configuração alternativa em qualquer uma das interfaces.
Para inicializar uma estrutura WDF_USB_DEVICE_SELECT_CONFIG_PARAMS , o driver deve chamar uma das seguintes funções:
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Exemplos
O exemplo de código a seguir chama WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE ou WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES, com base no número de interfaces compatíveis com a configuração do dispositivo. Em seguida, o exemplo chama WdfUsbTargetDeviceSelectConfig para selecionar uma configuração.
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 | Valor |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfusb.h (include Wdfusb.h) |
Confira também
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