다음을 통해 공유


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 메서드가 반환할 수 있는 다른 반환 값 목록은 프레임워크 개체 만들기 오류를 참조하세요.

이 메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

드라이버가 WdfUsbTargetDeviceSelectConfig 를 호출하여 구성을 선택한 후 드라이버는 WdfUsbInterfaceSelectSetting을 호출하여 디바이스 인터페이스 중 하나에 대한 대체 설정을 선택할 수 있습니다.

드라이버는 USB 인터페이스 설명자 또는 URB를 지정하거나 인터페이스에 대한 대체 설정을 제공하여 인터페이스의 대체 설정을 선택할 수 있습니다. 모든 경우에 드라이버는 인터페이스 개체에 대한 핸들을 제공해야 합니다.

드라이버에서 대체 설정만 제공하는 경우 프레임워크는 인터페이스 개체를 사용하여 설정이 속한 인터페이스를 결정합니다.

드라이버가 인터페이스 설명자 또는 URB를 지정하는 경우 프레임워크는 설명자 또는 URB에 지정된 인터페이스를 사용합니다.

프레임워크는 프레임워크가 이전에 인터페이스에 대해 만들었을 수 있는 파이프 개체를 삭제한 후 인터페이스와 연결된 각 파이프에 대해 프레임워크 USB 파이프 개체를 만듭니다. 인터페이스의 파이프 개체에 대한 정보를 얻기 위해 드라이버는 WdfUsbInterfaceGetNumConfiguredPipesWdfUsbInterfaceGetConfiguredPipe를 호출할 수 있습니다.

WdfUsbInterfaceSelectSetting 메서드 및 USB I/O 대상에 대한 자세한 내용은 USB I/O 대상을 참조하세요.

예제

다음 코드 예제에서는 프레임워크에서 만들 파이프 개체에 대한 특성을 사용하여 WDF_OBJECT_ATTRIBUTES 구조를 초기화합니다. 그런 다음, WDF_USB_INTERFACE_SELECT_SETTING_PARAMS 구조를 초기화하여 대체 설정 1을 지정합니다. 마지막으로 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), KmdfIrqlExplicit(kmdf), 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