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(status)가 TRUE인 다른 상태 값을 반환해야 합니다. 기능이 지원되지 않는 경우 클라이언트 드라이버는 STATUS_UNSUCCESSFUL 같은 FALSE와 같은 NT_SUCCESS(상태)를 반환할 수 있습니다.
발언
클래스 확장은 클래스 확장이 에뮬레이트된 컨트롤러의 기능을 확인하는 요청을 받을 때 클라이언트 드라이버에 의해 구현된 이 콜백 함수를 호출합니다. 콜백은 일반적으로 EvtDevicePrepareHardwareEvtDriverDeviceAdd 반환된 후에만 호출됩니다. 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 요청에 대한 지원을 결정해야 합니다. 이 기능이 지원되면 URBTransferBufferMdl 멤버에 요청 버퍼가 포함됩니다. 연결된 MDL이 지원되지 않는 경우 클라이언트 드라이버는 연결된 MDL을 가리키는 TransferBufferMdl 값을 수신하지 않습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
대상 플랫폼 | Windows |
최소 KMDF 버전 | 1.15 |
헤더 | udecxwdfdevice.h(Udecx.h 포함) |
IRQL | PASSIVE_LEVEL |