Поделиться через


функция обратного вызова EVT_UDECX_USB_DEVICE_SET_FUNCTION_SUSPEND_AND_WAKE (udecxusbdevice.h)

Расширение класса эмуляции USB-устройства (UdeCx) вызывает эту функцию обратного вызова, когда получает запрос на изменение состояния функции указанного интерфейса виртуального устройства USB 3.0.

Синтаксис

EVT_UDECX_USB_DEVICE_SET_FUNCTION_SUSPEND_AND_WAKE EvtUdecxUsbDeviceSetFunctionSuspendAndWake;

NTSTATUS EvtUdecxUsbDeviceSetFunctionSuspendAndWake(
  [in] WDFDEVICE UdecxWdfDevice,
  [in] UDECXUSBDEVICE UdecxUsbDevice,
  [in] ULONG Interface,
  [in] UDECX_USB_DEVICE_FUNCTION_POWER FunctionPower
)
{...}

Параметры

[in] UdecxWdfDevice

Дескриптор объекта устройства платформы, представляющий контроллер, к которому подключено USB-устройство. Драйвер клиента инициализировал этот объект в предыдущем вызове UdecxWdfDeviceAddUsbDeviceEmulation.

[in] UdecxUsbDevice

Дескриптор объекта устройства UDE. Драйвер клиента создал этот объект при предыдущем вызове UdecxUsbDeviceCreate.

[in] Interface

Это значение является значением bInterfaceNumber интерфейса, который просыпается.

[in] FunctionPower

Значение типа UDECX_USB_DEVICE_FUNCTION_POWER, указывающее, может ли интерфейс приостановить работу контроллера узла и отправить сигнал пробуждения.

Возвращаемое значение

Если операция выполнена успешно, функция обратного вызова должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE.

Комментарии

Драйвер клиента зарегистрировал функцию в предыдущем вызове UdecxUsbDeviceInitSetStateChangeCallbacks , указав указатель функции на ее реализацию.

В реализации обратного вызова драйвер клиента для USB-устройства должен выполнить действия по переходу в рабочее состояние.

Эта функция обратного вызова события применяется к устройствам USB 3.0 и более поздних версий. UdeCx вызывает эту функцию, чтобы уведомить драйвер клиента о запросе на изменение состояния питания конкретной функции. Он также сообщает драйверу, может ли функция выйти из нового состояния.

Запрос power может быть выполнен асинхронно, возвращая STATUS_PENDING, а затем завершив его путем вызова UdecxUsbDeviceSetFunctionSuspendAndWakeComplete с фактическим кодом завершения.

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Windows
Минимальная версия KMDF 1.15
Верхняя часть udecxusbdevice.h (включая Udecx.h)
IRQL <=DISPATCH_LEVEL

См. также раздел

Архитектура: эмуляция USB-устройств (UDE)

Написание драйвера клиента UDE