다음을 통해 공유


WdfUsbTargetDeviceQueryUsbCapability 함수(wdfusb.h)

[KMDF 및 UMDF에 적용]

WdfUsbTargetDeviceQueryUsbCapability 메서드는 호스트 컨트롤러와 USB 드라이버 스택이 특정 기능을 지원하는지 여부를 결정합니다.

통사론

NTSTATUS WdfUsbTargetDeviceQueryUsbCapability(
  [in]            WDFUSBDEVICE UsbDevice,
  [in]            const GUID   *CapabilityType,
  [in]            ULONG        CapabilityBufferLength,
  [out, optional] PVOID        CapabilityBuffer,
  [out, optional] PULONG       ResultLength
);

매개 변수

[in] UsbDevice

USB 디바이스 개체에 대한 핸들입니다.

[in] CapabilityType

클라이언트 드라이버가 정보를 검색하려는 기능을 나타내는 GUID에 대한 포인터입니다. 가능한 PGUID 값은 다음과 같습니다.

  • GUID_USB_CAPABILITY_CHAINED_MDLS
  • GUID_USB_CAPABILITY_STATIC_STREAMS
  • GUID_USB_CAPABILITY_SELECTIVE_SUSPEND
  • GUID_USB_CAPABILITY_FUNCTION_SUSPEND
  • GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
  • GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
주의에서 자세한 내용을 참조하세요.

[in] CapabilityBufferLength

CapabilityBuffer가리키는 버퍼의 길이(바이트)입니다.

[out, optional] CapabilityBuffer

요청된 USB 기능을 수신하기 위해 호출자가 할당한 버퍼에 대한 포인터입니다. 이 매개 변수는 선택 사항입니다. CapabilityBufferLength 0이면 이 매개 변수는 NULL이어야 합니다. 마찬가지로 CapabilityBufferLength 0이 아니면 이 매개 변수를 제공해야 합니다. 이 매개 변수는 USBD_QueryUsbCapability 루틴의 OutputBuffer 매개 변수에 해당합니다.

[out, optional] ResultLength

반환된 기능의 크기(바이트)를 포함하는 위치에 대한 포인터입니다. 이 매개 변수는 선택 사항입니다.

반환 값

WdfUsbTargetDeviceQueryUsbCapability 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 묘사
STATUS_INVALID_DEVICE_STATE
USB 디바이스 개체 핸들이 잘못되었습니다.
STATUS_INSUFFICIENT_RESOURCES
메모리가 부족했습니다.
STATUS_INVALID_PARAMETER
호출자가 잘못된 매개 변수 값을 전달했습니다.
  • UsbDevice 또는 CapabilityType NULL입니다.
  • CapabilityBuffer NULL이지만 CapabilityBufferLength 0이 아닌 값이 포함됩니다. 반대로 호출자는 CapabilityBuffer 제공했지만 CapabilityBufferLength 0입니다.
STATUS_NOT_IMPLEMENTED
지정된 기능은 기본 USB 드라이버 스택에서 지원되지 않습니다.
STATUS_NOT_SUPPORTED
지정된 기능은 호스트 컨트롤러 하드웨어에서 지원되지 않습니다.
 

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

발언

WdfUsbTargetDeviceQueryUsbCapability호출하기 전에 드라이버는 WdfUsbTargetDeviceCreateWithParameters 호출하여 기본 USB 드라이버 스택에 등록해야 합니다.

WdfUsbTargetDeviceQueryUsbCapability 드라이버의 EvtDevicePrepareHardware 콜백 함수가 호출된 후에 호출되어야 합니다.

다음 표에서는 KMDF 기반 USB 클라이언트 드라이버가 WdfUsbTargetDeviceQueryUsbCapability 호출을 통해 쿼리할 수 있는 USB 관련 기능에 대해 설명합니다.

기능 GUID 묘사
GUID_USB_CAPABILITY_CHAINED_MDLS Windows 8의 새 USB 드라이버 스택은 KMDF 기반 USB 클라이언트 드라이버에서 연결된 MDL(MDL참조)을 수락할 수 있습니다.

USB 드라이버 스택의 연결된 MDL 기능에 대한 자세한 내용은 연결된 MDL보내는 방법을 참조하세요.

이 GUID는 KMDF 드라이버에만 적용됩니다.

GUID_USB_CAPABILITY_STATIC_STREAMS USB 2.0 및 이전 버전에서는 대량 엔드포인트를 통해 단일 데이터 스트림만 보낼 수 있지만 USB 3.0에서는 대량 엔드포인트를 통해 여러 데이터 스트림을 보내고 받을 수 있습니다.

스트림 열기에 대한 자세한 내용은 USB 대량 엔드포인트정적 스트림을 열고 닫는 방법을 참조하세요.

이 GUID는 KMDF 드라이버에만 적용됩니다.

GUID_USB_CAPABILITY_FUNCTION_SUSPEND USB(유니버설 직렬 버스) 3.0 사양은 함수 일시 중단이라는 새로운 기능을 정의합니다. 이 기능을 사용하면 복합 디바이스의 개별 함수가 다른 함수와 독립적으로 저전력 상태로 진입할 수 있습니다.

함수 일시 중단에 대한 자세한 내용은 복합 드라이버 함수 일시 중단을 구현하는 방법참조하세요.

이 GUID는 KMDF 드라이버에만 적용됩니다.

GUID_USB_CAPABILITY_SELECTIVE_SUSPEND 선택적 일시 중단에 대한 자세한 내용은 USB 선택적 일시 중단참조하세요.

이 GUID는 KMDF 드라이버에만 적용됩니다.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE 버스가 고속 또는 그 이상으로 운행되는지 여부를 결정합니다.

이 GUID는 KMDF 및 UMDF 드라이버에 적용됩니다.

GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE 버스가 SuperSpeed 이상에서 운행되는지 여부를 결정합니다.

이 GUID는 KMDF 및 UMDF 드라이버에 적용됩니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 보편적
최소 KMDF 버전 1.11
최소 UMDF 버전 2.0
헤더 wdfusb.h(Wdfusb.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf)

참고 항목

USBD_QueryUsbCapability

WdfUsbTargetDeviceRetrieveInformation