fonction WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES (wdfusb.h)
[S’applique à KMDF et UMDF]
La fonction WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES initialise une structure WDF_USB_DEVICE_SELECT_CONFIG_PARAMS afin qu’un pilote puisse configurer un appareil pour utiliser plusieurs interfaces.
Syntaxe
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
);
Paramètres
[in, out] Params
Pointeur vers une structure de WDF_USB_DEVICE_SELECT_CONFIG_PARAMS allouée par le pilote.
[in, optional] NumberInterfaces
Nombre d’éléments dans le tableau SettingPairs . Si SettingPairs n’a pas la valeur NULL, ce paramètre doit être supérieur à zéro.
[in, optional] SettingPairs
Tableau de structures WDF_USB_INTERFACE_SETTING_PAIR . Ce paramètre est facultatif et peut être NULL.
Valeur de retour
None
Remarques
Votre pilote peut utiliser la fonction WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES pour sélectionner une configuration si les interfaces de périphérique sont spécifiées par des handles vers des objets d’interface USB.
Votre pilote peut utiliser cette fonction si votre appareil possède une ou plusieurs interfaces USB.
La fonction WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES zéro la structure WDF_USB_DEVICE_SELECT_CONFIG_PARAMS et définit le membre Size sur la taille de la structure.
Si numInterfaces ou SettingPairs a la valeur NULL, WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES définit le membre Type sur WdfUsbTargetDeviceSelectConfigTypeMultiInterface. Dans ce cas, l’infrastructure détermine le nombre d’interfaces dont vous disposez et active un autre paramètre zéro sur chacune d’elles. Utilisez ce paramètre si vous souhaitez utiliser par défaut un paramètre de remplacement zéro sur toutes les interfaces.
Si le paramètre numInterfaces et le paramètre SettingPairs ne sont pas NULL, cette fonction définit le membre Type de la structure WDF_USB_DEVICE_SELECT_CONFIG_PARAMSsur WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs. Dans ce cas, vous pouvez spécifier un autre paramètre sur l’une des interfaces.
Pour initialiser une structure WDF_USB_DEVICE_SELECT_CONFIG_PARAMS , le pilote doit appeler l’une des fonctions suivantes :
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Exemples
L’exemple de code suivant appelle WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE ou WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES, en fonction du nombre d’interfaces prises en charge par la configuration de l’appareil. Ensuite, l’exemple appelle WdfUsbTargetDeviceSelectConfig pour sélectionner une configuration.
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfusb.h (inclure Wdfusb.h) |
Voir aussi
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