WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES-Funktion (wdfusb.h)
[Gilt für KMDF und UMDF]
Die WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES-Funktion initialisiert eine WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur , sodass ein Treiber ein Gerät für die Verwendung mehrerer Schnittstellen konfigurieren kann.
Syntax
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
Ein Zeiger auf eine vom Treiber zugewiesene WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur .
[in, optional] NumberInterfaces
Die Anzahl der Elemente im SettingPairs-Array . Wenn SettingPairs nicht NULL ist, muss dieser Parameter größer als 0 sein.
[in, optional] SettingPairs
Ein Array von WDF_USB_INTERFACE_SETTING_PAIR Strukturen. Dieser Parameter ist optional und kann NULL sein.
Rückgabewert
Keine
Bemerkungen
Ihr Treiber kann die WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES-Funktion verwenden, um eine Konfiguration auszuwählen, wenn die Geräteschnittstellen durch Handles für USB-Schnittstellenobjekte angegeben werden.
Ihr Treiber kann diese Funktion verwenden, wenn Ihr Gerät über eine oder mehrere USB-Schnittstellen verfügt.
Die WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES-Funktion nullt die WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur und legt das Element Size auf die Größe der Struktur fest.
Wenn numInterfaces oder SettingPairsNULL ist, legt WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES das Type-Element auf WdfUsbTargetDeviceSelectConfigTypeMultiInterface fest. In diesem Fall bestimmt das Framework die Anzahl der Schnittstellen, über die Sie verfügen, und aktiviert die alternative Einstellung 0 für jede. Verwenden Sie diese Einstellung, wenn Sie standardmäßig die alternative Einstellung null für alle Schnittstellen verwenden möchten.
Wenn der numInterfaces-Parameter und der Parameter SettingPairs nicht NULL sind, legt diese Funktion den Type-Member der WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur auf WdfUsbTargetDeviceSelectConfigTypeInterfacesPairs fest. In diesem Fall können Sie eine alternative Einstellung für jede der Schnittstellen angeben.
Um eine WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur zu initialisieren, muss der Treiber eine der folgenden Funktionen aufrufen:
- WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES
-
WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_INTERFACES_DESCRIPTORS
Beispiele
Im folgenden Codebeispiel wird entweder WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE oder WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES aufgerufen, basierend auf der Anzahl von Schnittstellen, die von der Gerätekonfiguration unterstützt werden. Anschließend ruft das Beispiel WdfUsbTargetDeviceSelectConfig auf, um eine Konfiguration auszuwählen.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfusb.h (einschließlich Wdfusb.h) |
Weitere Informationen
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