Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реализация драйвера клиента UDE для определения возможностей, поддерживаемых эмулированным usb-контроллером узла.
Синтаксис
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. Если возможность не поддерживается, драйвер клиента может возвращать NT_SUCCESS значение false, например STATUS_UNSUCCESSFUL.
Замечания
Расширение класса вызывает эту функцию обратного вызова, реализованную драйвером клиента, когда расширение класса получает запрос на определение возможностей эмулированного контроллера. Обратный вызов вызывается только после возврата EvtDriverDeviceAdd, как правило, в EvtDevicePrepareHardware. Этот обратный вызов нельзя вызвать после возврата EvtDeviceReleaseHardware.
Расширение класса сообщает об этих идентификаторах GUID возможностей, так как не поддерживается:
- GUID_USB_CAPABILITY_STATIC_STREAMS
- GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL
Для других графических идентификаторов расширение класса вызывает реализацию драйвера клиента, например GUID_USB_CAPABILITY_CHAINED_MDLS. Ожидается, что драйвер клиента определяет поддержку запросов ввода-вывода, использующих цепочки MDL. Если эта возможность поддерживается, TransferBufferMdl член URB содержит буфер запроса. Если цепочки MDL не поддерживаются, драйвер клиента не получает Значения TransferBufferMdl, указывающие на цепочки многомерных выражений.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 10 |
| минимальный поддерживаемый сервер | Windows Server 2016 |
| целевая платформа | Виндоус |
| минимальная версия KMDF | 1.15 |
| заголовка | udecxwdfdevice.h (include Udecx.h) |
| IRQL | PASSIVE_LEVEL |
См. также
архитектура : эмуляция USB-устройств (UDE)