次の方法で共有


WdfUsbInterfaceSelectSetting 関数 (wdfusb.h)

[KMDF と UMDF に適用]

WdfUsbInterfaceSelectSetting メソッドは、指定された USB インターフェイスの指定した代替設定を選択します。

構文

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

パラメーター

[in] UsbInterface

WdfUsbTargetDeviceGetInterface 呼び出すことによって取得された USB インターフェイス オブジェクトへのハンドル。

[in, optional] PipesAttributes

フレームワークがインターフェイス用に作成するパイプ オブジェクトのオブジェクト属性を指定する WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。

[in] Params

インターフェイス選択パラメーターを含む呼び出し元から提供される WDF_USB_INTERFACE_SELECT_SETTING_PARAMS 構造体へのポインター。

戻り値

WdfUsbInterfaceSelectSetting は、操作が成功した場合に I/O ターゲットの完了状態値を返します。 それ以外の場合、このメソッドは次のいずれかの値を返すことができます。

リターン コード 形容
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INSUFFICIENT_RESOURCES
新しいパイプ オブジェクトを作成するためのメモリが不足していました。
 

WdfUsbInterfaceSelectSetting メソッドが返す可能性があるその他の戻り値の一覧については、「Framework オブジェクト作成エラー」を参照してください。

このメソッドは、他のNTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

備考

ドライバー WdfUsbTargetDeviceSelectConfig を呼び出して構成を選択した後、ドライバーは WdfUsbInterfaceSelectSetting を呼び出して、デバイスのインターフェイスのいずれかの代替設定を選択できます。

ドライバーは、USB インターフェイス記述子または URBを指定するか、インターフェイスの代替設定を指定するだけで、インターフェイスの代替設定を選択できます。 いずれの場合も、ドライバーはインターフェイス オブジェクトへのハンドルを提供する必要があります。

ドライバーが代替設定を提供するだけの場合、フレームワークはインターフェイス オブジェクトを使用して、設定が属するインターフェイスを決定します。

ドライバーがインターフェイス記述子または URB を指定する場合、フレームワークは、記述子または URB で指定されているインターフェイスを使用します。

フレームワークは、フレームワークがインターフェイス用に以前に作成したパイプ オブジェクトを削除した後、インターフェイスに関連付けられている各パイプのフレームワーク USB パイプ オブジェクトを作成します。 インターフェイスのパイプ オブジェクトに関する情報を取得するために、ドライバーは WdfUsbInterfaceGetNumConfiguredPipes を呼び出し、WdfUsbInterfaceGetConfiguredPipe できます。

WdfUsbInterfaceSelectSetting メソッドと USB I/O ターゲットの詳細については、「USB I/O ターゲットを参照してください。

次のコード例では、フレームワークが作成するパイプ オブジェクトの属性を使用して、WDF_OBJECT_ATTRIBUTES 構造体を初期化します。 次に、代替設定 1 を指定する WDF_USB_INTERFACE_SELECT_SETTING_PARAMS 構造体を初期化します。 最後に、この例 WdfUsbInterfaceSelectSetting を呼び出して代替設定を選択し、インターフェイスのパイプのパイプ オブジェクトを作成します。

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
                                      );

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
UMDF の最小バージョン する 2.0
ヘッダー wdfusb.h (Wdfusb.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExp usbKmdfIrql(kmdf) , usbKmdfIrql2(kmdf) , UsbKmdfIrqlExplicit(kmdf)

関連項目

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