Freigeben über


WdfUsbInterfaceSelectSetting-Funktion (wdfusb.h)

[Gilt für KMDF und UMDF]

Die WdfUsbInterfaceSelectSetting Methode wählt eine angegebene alternative Einstellung für eine angegebene USB-Schnittstelle aus.

Syntax

NTSTATUS WdfUsbInterfaceSelectSetting(
  [in]           WDFUSBINTERFACE                          UsbInterface,
  [in, optional] PWDF_OBJECT_ATTRIBUTES                   PipesAttributes,
  [in]           PWDF_USB_INTERFACE_SELECT_SETTING_PARAMS Params
);

Parameter

[in] UsbInterface

Ein Handle für ein USB-Schnittstellenobjekt, das durch Aufrufen WdfUsbTargetDeviceGetInterfaceabgerufen wurde.

[in, optional] PipesAttributes

Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES Struktur, die Objektattribute für Pipeobjekte angibt, die das Framework für die Schnittstelle erstellt. Dieser Parameter ist optional und kann WDF_NO_OBJECT_ATTRIBUTES werden.

[in] Params

Ein Zeiger auf eine vom Aufrufer bereitgestellte WDF_USB_INTERFACE_SELECT_SETTING_PARAMS Struktur, die Schnittstellenauswahlparameter enthält.

Rückgabewert

WdfUsbInterfaceSelectSetting gibt den Fertigstellungsstatuswert des E/A-Ziels zurück, wenn der Vorgang erfolgreich ist. Andernfalls kann diese Methode einen der folgenden Werte zurückgeben:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde erkannt.
STATUS_INSUFFICIENT_RESOURCES
Es war nicht genügend Arbeitsspeicher vorhanden, um ein neues Pipeobjekt zu erstellen.
 

Eine Liste mit anderen Rückgabewerten, die von der WdfUsbInterfaceSelectSetting Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.

Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

Nachdem Ihr Treiber WdfUsbTargetDeviceSelectConfig aufgerufen hat, um eine Konfiguration auszuwählen, kann der Treiber WdfUsbInterfaceSelectSetting aufrufen, um eine alternative Einstellung für eine der Geräteschnittstellen auszuwählen.

Der Treiber kann die alternative Einstellung einer Schnittstelle auswählen, indem ein USB-Schnittstellendeskriptor oder ein URB-angegeben wird, oder indem er einfach eine alternative Einstellung für die Schnittstelle bereitstellt. In allen Fällen muss der Treiber ein Handle für ein Schnittstellenobjekt bereitstellen.

Wenn Ihr Treiber nur eine alternative Einstellung bereitstellt, verwendet das Framework das Schnittstellenobjekt, um die Schnittstelle zu bestimmen, zu der die Einstellung gehört.

Wenn Ihr Treiber einen Schnittstellendeskriptor oder eine URB angibt, verwendet das Framework die Schnittstelle, die im Deskriptor oder URB angegeben ist.

Das Framework erstellt ein Framework-USB-Pipe-Objekt für jede Pipe, die der Schnittstelle zugeordnet ist, nachdem alle Pipeobjekte gelöscht wurden, die das Framework zuvor für die Schnittstelle erstellt haben könnte. Um Informationen zu den Pipeobjekten einer Schnittstelle abzurufen, kann Ihr Treiber WdfUsbInterfaceGetNumConfiguredPipes und WdfUsbInterfaceGetConfiguredPipe-aufrufen.

Weitere Informationen zur WdfUsbInterfaceSelectSetting Methode und USB-E/A-Zielen finden Sie unter USB-E/A-Ziele.

Beispiele

Im folgenden Codebeispiel wird eine WDF_OBJECT_ATTRIBUTES Struktur mit Attributen für die Pipeobjekte initialisiert, die das Framework erstellt. Anschließend initialisiert das Beispiel eine WDF_USB_INTERFACE_SELECT_SETTING_PARAMS Struktur, um alternative Einstellung 1 anzugeben. Schließlich ruft das Beispiel WdfUsbInterfaceSelectSetting auf, um die alternative Einstellung auszuwählen und Pipeobjekte für die Rohre der Schnittstelle zu erstellen.

WDF_OBJECT_ATTRIBUTES  pipesAttributes;
WDF_USB_INTERFACE_SELECT_SETTING_PARAMS  selectSettingParams;
NTSTATUS  Status;

WDF_OBJECT_ATTRIBUTES_INIT(&pipesAttributes);
WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(
                                       &pipesAttributes,
                                       MY_PIPE_CONTEXT
                                       );

WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING(
                                      &selectSettingParams,
                                      1
                                      );

Status = WdfUsbInterfaceSelectSetting(
                                      UsbInterface,
                                      &pipesAttributes,
                                      &selectSettingParams
                                      );

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfusb.h (include Wdfusb.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), UsbKmdfIrql(kmdf), UsbKmdfIrql2(kmdf), UsbKmdfIrqlExplicit(kmdf)

Siehe auch

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT

WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE

WDF_USB_INTERFACE_SELECT_SETTING_PARAMS

WDF_USB_INTERFACE_SELECT_SETTING_PARAMS_INIT_SETTING

WdfUsbInterfaceGetConfiguredPipe-

WdfUsbInterfaceGetNumConfiguredPipes

WdfUsbTargetDeviceGetInterface

WdfUsbTargetDeviceSelectConfig