функция обратного вызова 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(состояние) равно TRUE.

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
целевая платформа Виндоус
минимальная версия KMDF 1.15
заголовка udecxusbdevice.h (include Udecx.h)
IRQL <=DISPATCH_LEVEL

См. также

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

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