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 so konfigurieren kann, dass mehrere Schnittstellen verwendet werden.
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
);
[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 Null sein.
[in, optional] SettingPairs
Ein Array von WDF_USB_INTERFACE_SETTING_PAIR Strukturen. Dieser Parameter ist optional und kann NULL-werden.
Nichts
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 zu USB-Schnittstellenobjekten 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 stellt die WDF_USB_DEVICE_SELECT_CONFIG_PARAMS Struktur null und legt das Size-Element auf die Größe der Struktur fest.
Wenn numInterfaces oder SettingPairs-NULL-ist, legt WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACES das element Type auf WdfUsbTargetDeviceSelectConfigTypeMultiInterfacefest. In diesem Fall bestimmt das Framework die Anzahl der Schnittstellen, über die Sie verfügen, und ermöglicht die jeweils alternative Einstellung Null. Verwenden Sie diese Einstellung, wenn Sie standardmäßig "null" für alle Schnittstellen festlegen möchten.
Wenn der parameter numInterfaces und der SettingPairs Parameter nicht NULL-sind, legt diese Funktion das Type Member der WDF_USB_DEVICE_SELECT_CONFIG_PARAMS-Struktur auf WdfUsbTargetDeviceSelectConfigTypeInterfacesPairsfest. In diesem Fall können Sie eine alternative Einstellung für eine 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
Im folgenden Codebeispiel wird entweder WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE oder WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_MULTIPLE_INTERFACESaufgerufen, basierend auf der Anzahl der Schnittstellen, die die Gerätekonfiguration unterstützt. 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;
}
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | wdfusb.h (include Wdfusb.h) |
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