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