EVT_UDECX_USB_DEVICE_ENDPOINTS_CONFIGURE callback function (udecxusbdevice.h)

The USB device emulation class extension (UdeCx) invokes this callback function to change the configuration by selecting an alternate setting, disabling current endpoints, or adding dynamic endpoints.

Syntax

EVT_UDECX_USB_DEVICE_ENDPOINTS_CONFIGURE EvtUdecxUsbDeviceEndpointsConfigure;

void EvtUdecxUsbDeviceEndpointsConfigure(
  [in] UDECXUSBDEVICE UdecxUsbDevice,
  [in] WDFREQUEST Request,
  [in] PUDECX_ENDPOINTS_CONFIGURE_PARAMS Params
)
{...}

Parameters

[in] UdecxUsbDevice

A handle to UDE device object. The client driver created this object in a previous call to UdecxUsbDeviceCreate.

[in] Request

A handle to a framework request object that represents the request.

[in] Params

A pointer to a UDECX_ENDPOINTS_CONFIGURE_PARAMS structure that describes the configuration options.

Return value

None

Remarks

The client driver registered this callback function in a previous call to UdecxUsbDeviceInitSetStateChangeCallbacks by supplying a function pointer to its implementation.

The class extension invokes this callback function to request the client driver to configure one or more new endpoints into hardware, and/or informs the driver when one or more existing endpoints is no longer being used.

After creating endpoints, for each new endpoint, the client driver must call UdecxUsbEndpointSetWdfIoQueue before completing the request.

After releasing endpoints, the client driver should not use framework queue objects associated with the endpoints. The class extension considers those queues as purged to prevent future requests.

The class extension can also request a new configuration value or an alternate setting through this callback.

This call is asynchronous. The client driver must signals completion with status by completing the request passed by the class extension.

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)

UdecxUsbEndpointSetWdfIoQueue

Write a UDE client driver