EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY 콜백 함수(udecxwdfdevice.h)
에뮬레이트된 USB 호스트 컨트롤러에서 지원하는 기능을 결정하는 UDE 클라이언트 드라이버의 구현입니다.
구문
EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY EvtUdecxWdfDeviceQueryUsbCapability;
NTSTATUS EvtUdecxWdfDeviceQueryUsbCapability(
[in] WDFDEVICE UdecxWdfDevice,
[in] PGUID CapabilityType,
[in] ULONG OutputBufferLength,
[out, optional] PVOID OutputBuffer,
[out] PULONG ResultLength
)
{...}
매개 변수
[in] UdecxWdfDevice
컨트롤러를 나타내는 프레임워크 디바이스 개체에 대한 핸들입니다. 클라이언트 드라이버는 UdecxWdfDeviceAddUsbDeviceEmulation에 대한 이전 호출에서 이 개체를 초기화했습니다.
[in] CapabilityType
요청된 기능을 지정하는 GUID에 대한 포인터입니다. 가능한 PGUID 값은 다음과 같습니다.
- GUID_USB_CAPABILITY_CHAINED_MDLS
- 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] OutputBufferLength
출력 버퍼를 사용할 수 있는 경우 요청 출력 버퍼의 길이(바이트)입니다.
[out, optional] OutputBuffer
버퍼의 주소를 받는 위치에 대한 포인터입니다. 특정 기능은 이 버퍼의 USB 디바이스 에뮬레이션 클래스 확장(UdeCx)에 추가 정보를 제공해야 할 수 있습니다.
[out] ResultLength
반환 시 콜백 함수가 OutputBuffer에 저장한 정보의 크기(바이트)를 포함하는 위치입니다.
반환 값
작업이 성공하면 콜백 함수는 STATUS_SUCCESS 반환하거나 NT_SUCCESS(상태)이 TRUE인 다른 상태 값을 반환해야 합니다. 기능이 지원되지 않는 경우 클라이언트 드라이버는 STATUS_UNSUCCESSFUL 같은 NT_SUCCESS(상태)가 FALSE와 같으면 반환할 수 있습니다.
설명
클래스 확장은 클래스 확장이 에뮬레이트된 컨트롤러의 기능을 확인하는 요청을 받을 때 클라이언트 드라이버에서 구현한 이 콜백 함수를 호출합니다. 콜백은 일반적으로 EvtDevicePrepareHardware에서 EvtDriverDeviceAdd 가 반환 된 후에만 호출됩니다. EvtDeviceReleaseHardware가 반환된 후에는 이 콜백을 호출할 수 없습니다.
클래스 확장은 지원되지 않는 대로 이러한 기능 GUID를 보고합니다.
- GUID_USB_CAPABILITY_STATIC_STREAMS
- GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL
다른 GUID의 경우 클래스 확장은 클라이언트 드라이버의 구현(예: GUID_USB_CAPABILITY_CHAINED_MDLS)을 호출합니다. 클라이언트 드라이버는 연결된 MDL을 사용하는 I/O 요청에 대한 지원을 결정해야 합니다. 이 기능이 지원되면 URB의 TransferBufferMdl 멤버에 요청 버퍼가 포함됩니다. 연결된 MDL이 지원되지 않는 경우 클라이언트 드라이버는 연결된 MDL을 가리키는 TransferBufferMdl 값을 받지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
대상 플랫폼 | Windows |
최소 KMDF 버전 | 1.15 |
머리글 | udecxwdfdevice.h(Udecx.h 포함) |
IRQL | PASSIVE_LEVEL |