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 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
USB 디바이스 개체 핸들이 잘못되었습니다. |
|
메모리가 부족했습니다. |
|
호출자가 잘못된 매개 변수 값을 전달했습니다.
|
|
지정된 기능은 기본 USB 드라이버 스택에서 지원되지 않습니다. |
|
지정된 기능은 호스트 컨트롤러 하드웨어에서 지원되지 않습니다. |
이 메서드는 다른 NTSTATUS 값을 반환할 수도 있습니다.
설명
WdfUsbTargetDeviceQueryUsbCapability를 호출하기 전에 드라이버는 WdfUsbTargetDeviceCreateWithParameters를 호출하여 기본 USB 드라이버 스택에 등록해야 합니다.
드라이버의 EvtDevicePrepareHardware 콜백 함수가 호출된 후 WdfUsbTargetDeviceQueryUsbCapability를 호출해야 합니다.
다음 표에서는 KMDF 기반 USB 클라이언트 드라이버가 WdfUsbTargetDeviceQueryUsbCapability 호출을 통해 쿼리할 수 있는 USB 관련 기능에 대해 설명합니다.
기능 GUID | Description |
---|---|
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) |