EVT_UDECX_USB_DEVICE_D0_EXIT callback function (udecxusbdevice.h)
The USB device emulation class extension (UdeCx) invokes this callback function when it gets a request to send the virtual USB device to a low power state.
Syntax
EVT_UDECX_USB_DEVICE_D0_EXIT EvtUdecxUsbDeviceD0Exit;
NTSTATUS EvtUdecxUsbDeviceD0Exit(
[in] WDFDEVICE UdecxWdfDevice,
[in] UDECXUSBDEVICE UdecxUsbDevice,
[in] UDECX_USB_DEVICE_WAKE_SETTING WakeSetting
)
{...}
Parameters
[in] UdecxWdfDevice
A handle to a framework device object that represents the controller to which the USB device is attached. The client driver initialized this object in a previous call to UdecxWdfDeviceAddUsbDeviceEmulation.
[in] UdecxUsbDevice
A handle to UDE device object. The client driver created this object in a previous call to UdecxUsbDeviceCreate.
[in] WakeSetting
A UDECX_USB_DEVICE_WAKE_SETTING-type value that indicates remote wake capability of the USB device.
Return value
If the operation is successful, the callback function must return STATUS_SUCCESS, or another status value for which NT_SUCCESS(status) equals TRUE.
Remarks
The client driver registered the function in a previous call to UdecxUsbDeviceInitSetStateChangeCallbacks by supplying a function pointer to its implementation.
In the callback implementation, the client driver for the USB device is expected to perform steps to send the device to a low power state. In this function, the driver can initiate its wake-up from a low link power state, function suspend, or both. To do so, the driver for a USB 2.0 device must call the UdecxUsbDeviceSignalWake method. USB 3.0 devices must use UdecxUsbDeviceSignalFunctionWake.
The power request may be completed asynchronously by returning STATUS_PENDING, and then later calling UdecxUsbDeviceLinkPowerExitComplete with the actual completion code.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Minimum supported server | Windows Server 2016 |
Target Platform | Windows |
Minimum KMDF version | 1.15 |
Header | udecxusbdevice.h (include Udecx.h) |
IRQL | <=DISPATCH_LEVEL |
See also
Architecture: USB Device Emulation (UDE)