Universal Serial Bus (USB)

This reference section describes the driver programming interfaces that are included in the Windows Driver Kit (WDK). The programming interfaces are used for developing drivers that interact with USB devices, host controllers, connectors. These include export functions that the drivers can call, callback routines that the driver can implement, I/O requests that the driver can send to the Microsoft-provided USB driver stack, and various data structures that are used in those requests.

For the programming guide, see Universal Serial Bus (USB).

Common USB client driver reference

A Windows Driver Model (WDM)-based USB client driver can call functions to communicate with the Microsoft-provided USB driver stack. These functions are defined in Usbdlib.h and the client driver requires the Usbdex.lib library. The library gets loaded and statically linked to the client driver module when it is built. A client driver that calls these routines can run on Windows Vista and later versions of Windows.

Programming Guide

Developing Windows client drivers for USB devices.

Headers

Deprecated functions, IOCTL requests for all USB drivers

These functions have been deprecated.

Do not use.

  • USBD_CalculateUsbBandwidth
  • USBD_CreateConfigurationRequest
  • USBD_Debug_LogEntry
  • USBD_GetUSBDIVersion
  • USBD_ParseConfigurationDescriptor
  • USBD_QueryBusTime
  • USBD_RegisterHcFilter

These I/O requests have been deprecated or reserved for internal use.

USB client drivers must not use these I/O requests:

  • IOCTL_USB_DIAG_IGNORE_HUBS_OFF
  • IOCTL_USB_DIAG_IGNORE_HUBS_ON
  • IOCTL_USB_DIAGNOSTIC_MODE_OFF
  • IOCTL_USB_DIAGNOSTIC_MODE_ON
  • IOCTL_USB_GET_HUB_CAPABILITIES
  • IOCTL_USB_HCD_DISABLE_PORT
  • IOCTL_USB_HCD_ENABLE_PORT
  • IOCTL_USB_HCD_GET_STATS_1
  • IOCTL_USB_HCD_GET_STATS_2
  • IOCTL_USB_RESET_HUB

Dual-role controller driver reference

A USB driver for a dual-role controller can behave as a host controller or a function controller depending on the hardware to which it is connected. These controllers are common on mobile devices and allow for connections to PCs, as well as USB peripherals like keyboards and mice. A mobile device can behave as a peripheral when it is connected to a PC, allowing you to transfer files between your PC and the mobile device. In that scenario, the controller on the device operates in the function role. Conversely, the controller can operate in the host role when connected to USB peripherals like storage drives, keyboard, mice.

One of the main responsibilities of a driver for a dual-role controller is to switch between those two roles, tearing down the previous role's device node and loading the device node for the new role. When writing the driver, use the WDF class extension-client driver model. For more information about the WDF class extension-client driver model, see Ursdevice.h.

Programming Guide

For information about enabling a Windows system for USB dual-role support, see USB Dual Role Driver Stack Architecture.

Headers

Emulated host controller driver reference

Windows drivers can present non-USB devices as emulated USB devices. By using the WDF class extension-client driver model, you can write a driver that translates USB-level constructs (reset, data transfers) to the actual underlying bus by using the hardware’s interface. The class extension and the client driver represent an emulated host controller with a root hub that is capable of presenting an attached device to the system as an USB device.

  • USB device emulation class extension (UdeCx). This is an in-box driver included Windows 10.
  • The client driver is written by an IHV/OEM. This driver is referred to as the UDE client driver.

The driver pair loads as the FDO in the host controller device stack. The UDE client driver communicates with Udecx by using a set of methods and event callback functions to handle device requests and notify the class extension about various events.

Programming Guide

Developing Windows drivers for emulated USB devices (UDE).

Headers

Function class driver reference

A USB function class driver implements the functionality of a specific interface (or group of interfaces) on the USB device. The class driver handle requests issued by user mode services, or it can forwards requests to USB function class extension (UFX) and its function client driver. Certain class drivers are included in Windows, such as MTP and IpOverUsb. Windows also provides a generic kernel-mode class driver, Generic USBFN (GenericUSBFn.sys). If a particular interface or functionality is not provided by a system-supplied driver, you might need write a function class driver. The class driver may be implemented as a kernel-mode driver by using Windows Driver Frameworks (WDF). Alternatively, you may implement it as a user-mode service. In that case, your class driver must be paired with the system-supplied class driver, Generic USBFN. For example, the MTP class driver runs as a user-mode service that transferring files to and from the device.

Headers

USB function controller client driver reference

The USB function client driver is responsible for implementing a function controller-specific operations. The client driver communicates with the USB function class extension (UFX) module to handle endpoint data transfers, USB device state changes (reset, suspend, resume), attach/detach detection, port/charger detection. The client driver is also responsible for handling power management, and PnP events.

Programming Guide

Write a USB function controller client driver

Headers

Filter driver for supporting USB chargers

Write a filter driver that supports detection of chargers, if the function controller uses the in-box Synopsys and ChipIdea drivers. If you are writing a client driver for a proprietary function controller, charger/attach detection is integrated in the client driver by implementing EVT_UFX_DEVICE_PROPRIETARY_CHARGER_SET_PROPERTY, EVT_UFX_DEVICE_PROPRIETARY_CHARGER_RESET, and EVT_UFX_DEVICE_DETECT_PROPRIETARY_CHARGER.

Programming Guide

USB filter driver for supporting USB chargers

Headers

Host controller driver reference

The USB host controller extension is a system-supplied extension to the Kernel-Mode Driver Framework (KMDF). Within the Microsoft USB Driver Stack Architecture, UCX provides functionality to assist a host controller client driver in managing a USB host controller device. The client driver handles hardware operations and events, power management, and PnP events. UCX serves as an abstracted interface to the rest of the Microsoft USB 3.0 stack, queues requests to the client driver, and performs other tasks.

If you are developing an xHCI host controller that is not compliant with the specification or developing a custom non-xHCI hardware (such as a virtual host controller), you can write a host controller driver that communicates with the UCX class extension.

Programming Guide

Developing Windows drivers for USB host controllers

Headers

Type-C driver reference

Windows 10 introduces support for the new USB connector: USB Type-C. You can write a driver for these scenarios:

Scenario Headers Programming Guide
If your USB Type-C hardware has the capability of handling the power delivery (PD) state machine.

ucmcx.h

ucmfuncenum.h

ucmglobals.h

ucmmanager.h

Write a USB Type-C connector driver
If your driver wants to participate in the policy decisions for USB Type-C connectors. Usbpmapi.h Write a USB Type-C Policy Manager client driver
If your hardware does not support PD.

ucmtcpcicx.h

ucmtcpcidevice.h

ucmtcpcifuncenum.h

ucmtcpciglobals.h

ucmtcpciportcontroller.h

ucmtcpciportcontrollerrequests.h

ucmtcpcispec.h

ucmtypes.h

Write a USB Type-C port controller driver.
If your embedded controller is connected over non-ACPI transport

Ucmucsicx.h

Ucmucsidevice.h

Ucmucsifuncenum.h

Ucmucsiglobals.h

Ucmucsippm.h

Ucmucsippmrequests.h

Ucmucsispec.h

Write a UCSI client driver

IOCTLs

Title Description
IOCTL_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_ENTERED Notifies the client driver that an alternate mode is entered so that the driver can perform additional tasks.
IOCTL_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_EXITED Notifies the client driver that an alternate mode is exited so that the driver can perform additional tasks.
IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_CONFIGURED Notifies the client driver that the DisplayPort alternate mode on the partner device has been configured with pin assignment so that the driver can perform additional tasks.
IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED Notifies the client driver that the display out status of the DisplayPort connection has changed so that the driver can perform additional tasks.
IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_HPD_STATUS_CHANGED Notifies the client driver that the hot-plug detect status of the DisplayPort connection has changed so that the driver can perform additional tasks.
IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL Gets the values of all control registers defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_STATUS Gets values of all status registers as per the Universal Serial Bus Type-C Port Controller Interface Specification. The client driver must retrieve the values of the CC_STATUS, POWER_STATUS, and FAULT_STATUS registers.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_COMMAND Sets the value of a command register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONFIG_STANDARD_OUTPUT Sets the CONFIG_STANDARD_OUTPUT Register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONTROL Sets the value of a control register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_MESSAGE_HEADER_INFO Sets the value of the MESSAGE_HEADER_INFO Register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_RECEIVE_DETECT Sets the RECEIVE_DETECT Register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT Sets the TRANSMIT Register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT_BUFFER Sets the TRANSMIT_BUFER Register defined as per the Universal Serial Bus Type-C Port Controller Interface Specification.
IOCTL_INTERNAL_USBFN_DESCRIPTOR_UPDATE The USB function class extension sends this request to the client driver to update to the endpoint descriptor for the specified endpoint.
IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS The USB class driver sends this request to activate the bus so that the driver can prepare to process bus events and handle traffic.
IOCTL_INTERNAL_USBFN_BUS_EVENT_NOTIFICATION The USB class driver sends this request to prepare for notifications received from the USB function class extension (UFX) in response to an event on the bus, such as a change in the port type or a receipt of a non-standard setup packet.
IOCTL_INTERNAL_USBFN_CONTROL_STATUS_HANDSHAKE_IN The class driver sends this request to send a zero-length control status handshake on endpoint 0 in the IN direction.
IOCTL_INTERNAL_USBFN_CONTROL_STATUS_HANDSHAKE_OUT The class driver sends this request to send a zero-length control status handshake on endpoint 0 in the OUT direction.
IOCTL_INTERNAL_USBFN_DEACTIVATE_USB_BUS Do not use.
IOCTL_INTERNAL_USBFN_GET_CLASS_INFO The class driver sends this request IO control code to retrieve information about the available pipes for a device, as configured in the registry.
IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET The class driver sends this request to get the entire USB interface descriptor set for a function on the device.
IOCTL_INTERNAL_USBFN_GET_PIPE_STATE The class driver sends this request to get the stall state of the specified pipe.
IOCTL_INTERNAL_USBFN_REGISTER_USB_STRING The class driver sends this request to register a USB string descriptor.
IOCTL_INTERNAL_USBFN_RESERVED Do not use.
IOCTL_INTERNAL_USBFN_SET_PIPE_STATE The class driver sends this request to set the stall state of the specified USB pipe.
IOCTL_INTERNAL_USBFN_SET_POWER_FILTER_EXIT_LPM Do not use.
IOCTL_INTERNAL_USBFN_SET_POWER_FILTER_STATE Do not use.
IOCTL_INTERNAL_USBFN_SIGNAL_REMOTE_WAKEUP The class driver sends this request to get remote wake-up notifications from endpoints.
IOCTL_INTERNAL_USBFN_TRANSFER_IN The class driver sends this request to initiate a data transfer to the host on the specified pipe.
IOCTL_INTERNAL_USBFN_TRANSFER_IN_APPEND_ZERO_PKT The class driver sends this request to initiate an IN transfer to the specified pipe and appends a zero-length packet to indicate the end of the transfer.
IOCTL_INTERNAL_USBFN_TRANSFER_OUT The class driver sends this request to initiate a data transfer from the host on the specified pipe.
IOCTL_GET_HCD_DRIVERKEY_NAME The IOCTL_GET_HCD_DRIVERKEY_NAME I/O control request retrieves the driver key name in the registry for a USB host controller driver.
IOCTL_INTERNAL_USB_CYCLE_PORT The IOCTL_INTERNAL_USB_CYCLE_PORT I/O request simulates a device unplug and replug on the port associated with the PDO.
IOCTL_INTERNAL_USB_ENABLE_PORT The IOCTL_INTERNAL_USB_ENABLE_PORT IOCTL has been deprecated. Do not use.
IOCTL_INTERNAL_USB_GET_BUS_INFO The IOCTL_INTERNAL_USB_GET_BUS_INFO I/O request queries the bus driver for certain bus information.
IOCTL_INTERNAL_USB_GET_BUSGUID_INFO The IOCTL_INTERNAL_USB_GET_BUSGUID_INFO IOCTL has been deprecated. Do not use.
IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME The IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME I/O request queries the bus driver for the device name of the USB host controller.
IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO The IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO I/O request returns information about a USB device and the hub it is attached to.
IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE The IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX The IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_GET_HUB_COUNT The IOCTL_INTERNAL_USB_GET_HUB_COUNT IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_GET_HUB_NAME The IOCTL_INTERNAL_USB_GET_HUB_NAME I/O request is used by drivers to retrieve the UNICODE symbolic name for the target PDO if the PDO is for a hub.
IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO The IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_GET_PORT_STATUS The IOCTL_INTERNAL_USB_GET_PORT_STATUS I/O request queries the status of the PDO. IOCTL_INTERNAL_USB_GET_PORT_STATUS is a kernel-mode I/O control request. This request targets the USB hub PDO. This IOCTL must be sent at IRQL = PASSIVE_LEVEL.
IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO The IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS The IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS I/O request returns information about the host controller the USB device is attached to, and the device's location in the USB device tree.
IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE The IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY The IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_RECORD_FAILURE The IOCTL_INTERNAL_USB_RECORD_FAILURE IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE The IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE I/O request registers the driver of a USB multi-function device (composite driver) with the underlying USB driver stack.
IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME The IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND The IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND IOCTL is used by the USB hub driver. Do not use.
IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION The IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION I/O request is sent by the driver of a Universal Serial Bus (USB) multi-function device (composite driver) to request remote wake-up notifications from a specific function in the device.
IOCTL_INTERNAL_USB_RESET_PORT The IOCTL_INTERNAL_USB_RESET_PORT I/O control request is used by a driver to reset the upstream port of the device it manages.
IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION The IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION I/O request is used by drivers to inform the USB bus driver that a device is idle and can be suspended.
IOCTL_INTERNAL_USB_SUBMIT_URB The IOCTL_INTERNAL_USB_SUBMIT_URB I/O control request is used by drivers to submit an URB to the bus driver. IOCTL_INTERNAL_USB_SUBMIT_URB is a kernel-mode I/O control request. This request targets the USB hub PDO.
IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE The IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE I/O request unregisters the driver of a USB multi-function device (composite driver) and releases all resources that are associated with registration.
IOCTL_USB_DIAG_IGNORE_HUBS_OFF The IOCTL_USB_DIAG_IGNORE_HUBS_OFF I/O control has been deprecated. Do not use.
IOCTL_USB_DIAG_IGNORE_HUBS_ON The IOCTL_USB_DIAG_IGNORE_HUBS_ON I/O control has been deprecated. Do not use.
IOCTL_USB_DIAGNOSTIC_MODE_OFF The IOCTL_USB_DIAGNOSTIC_MODE_OFF I/O control has been deprecated. Do not use.
IOCTL_USB_DIAGNOSTIC_MODE_ON The IOCTL_USB_DIAGNOSTIC_MODE_ON I/O control has been deprecated. Do not use.
IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION The IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O control request retrieves one or more descriptors for the device that is associated with the indicated port index.IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION is a user-mode I/O control request.
IOCTL_USB_GET_DEVICE_CHARACTERISTICS The client driver sends this request to determine general characteristics about a USB device, such as maximum send and receive delays for any request.
IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC "."
IOCTL_USB_GET_HUB_CAPABILITIES The IOCTL_USB_GET_HUB_CAPABILITIES I/O control request retrieves the capabilities of a USB hub.
IOCTL_USB_GET_HUB_CAPABILITIES_EX The IOCTL_USB_GET_HUB_CAPABILITIES_EX I/O control request retrieves the capabilities of a USB hub.IOCTL_USB_GET_HUB_CAPABILITIES_EX is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB).
IOCTL_USB_GET_HUB_INFORMATION_EX The IOCTL_USB_GET_HUB_INFORMATION_EX I/O control request is sent by an application to retrieve information about a USB hub in a USB_HUB_INFORMATION_EX structure.The request retrieves the highest port number on the hub.
IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES The IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES I/O control request retrieves the Microsoft-extended port attributes for a specific port.
IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME The IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME I/O control request retrieves the driver registry key name that is associated with the device that is connected to the indicated port.
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION The IOCTL_USB_GET_NODE_CONNECTION_INFORMATION request retrieves information about the indicated USB port and the device that is attached to the port, if there is one.Client drivers must send this IOCTL at an IRQL of PASSIVE_LEVEL.IOCTL_USB_GET_NODE_CONNECTION_INFORMATION is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB). Do not send this request to the root hub.
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX The IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX request retrieves information about a USB port and the device that is attached to the port, if there is one.Client drivers must send this IOCTL at an IRQL of PASSIVE_LEVEL.IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB). Do not send this request to the root hub.
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 The IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O control is sent by an application to retrieve information about the protocols that are supported by a particular USB port on a hub. The request also retrieves the speed capability of the port.
IOCTL_USB_GET_NODE_CONNECTION_NAME The IOCTL_USB_GET_NODE_CONNECTION_NAME I/O control request is used with the USB_NODE_CONNECTION_NAME structure to retrieve the symbolic link name of the hub that is attached to the downstream port.IOCTL_USB_GET_NODE_CONNECTION_NAME is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB).
IOCTL_USB_GET_NODE_INFORMATION The IOCTL_USB_GET_NODE_INFORMATION I/O control request is used with the USB_NODE_INFORMATION structure to retrieve information about a parent device.IOCTL_USB_GET_NODE_INFORMATION is a user-mode I/O control request.
IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES The IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O control request is sent by an application to retrieve information about a specific port on a USB hub.
IOCTL_USB_GET_ROOT_HUB_NAME The IOCTL_USB_GET_ROOT_HUB_NAME I/O control request is used with the USB_ROOT_HUB_NAME structure to retrieve the symbolic link name of the root hub.IOCTL_USB_GET_ROOT_HUB_NAME is a user-mode I/O control request.
IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS The client driver sends this request to retrieve the transport characteristics.
IOCTL_USB_HCD_DISABLE_PORT The IOCTL_USB_HCD_DISABLE_PORT IOCTL has been deprecated. Do not use.
IOCTL_USB_HCD_ENABLE_PORT The IOCTL_USB_HCD_ENABLE_PORT IOCTL has been deprecated. Do not use.
IOCTL_USB_HCD_GET_STATS_1 The IOCTL_USB_HCD_GET_STATS_1 IOCTL has been deprecated. Do not use.
IOCTL_USB_HCD_GET_STATS_2 The IOCTL_USB_HCD_GET_STATS_2 IOCTL has been deprecated. Do not use.
IOCTL_USB_HUB_CYCLE_PORT The IOCTL_USB_HUB_CYCLE_PORT I/O control request power-cycles the port that is associated with the PDO that receives the request.
IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE This request notifies the caller of change in transport characteristics.
IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE This request registers for notifications about the changes in transport characteristics.
IOCTL_USB_RESET_HUB The IOCTL_USB_RESET_HUB IOCTL is used by the USB driver stack. Do not use.
IOCTL_USB_START_TRACKING_FOR_TIME_SYNC This request registers the caller with USB driver stack for time sync services.
IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC This request unegisters the caller with USB driver stack for time sync services.
IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE This request unregisters the caller from getting notifications about transport characteristics changes.
IOCTL_UCMUCSI_PPM_GET_UCSI_DATA_BLOCK
IOCTL_UCMUCSI_PPM_SEND_UCSI_DATA_BLOCK Sends a UCSI data block to the client driver.

Enumerations

Title Description
_UCMTCPCI_PORT_CONTROLLER_ALERT_TYPE Defines generic alert values that are used to indicate the type of hardware alert received on the port controller.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS Defines values to determine whether a display out status for a DisplayPort device is enabled.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_HPD_STATUS Defines values to determine whether a DisplayPort device is plugged in.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_PIN_ASSIGNMENT
_UCMTCPCI_PORT_CONTROLLER_IOCTL Defines the various device I/O control requests that are sent to the client driver for the port controller. This indicates the type of IOCTL in WPP.
_UCM_CHARGING_STATE Defines the charging state of a Type-C connector.
_UCM_PD_CONN_STATE Defines power delivery (PD) negotiation states of a Type-C port.
_UCM_PD_POWER_DATA_OBJECT_TYPE Defines Power Data Object types.
_UCM_POWER_ROLE Defines power roles of USB Type-C connected devices.
_UCM_TYPEC_CURRENT Defines different Type-C current levels, as defined in the Type-C specification.
_UCM_TYPEC_OPERATING_MODE Defines operating modes of a USB Type-C connector.
_UCM_TYPEC_PARTNER Defines the state of the Type-C connector.
_UCX_CONTROLLER_PARENT_BUS_TYPE The UCX_CONTROLLER_PARENT_BUS_TYPE enumeration defines the parent bus type.
_UCX_CONTROLLER_STATE This enumeration provides values to specify the UCX controller state after a reset.
_ENDPOINT_RESET_FLAGS Defines parameters for a request to reset an endpoint.
_UCX_ENDPOINT_CHARACTERISTIC_PRIORITY Indicates the priority of endpoints.
_UCX_ENDPOINT_CHARACTERISTIC_TYPE Defines values that indicates the type of endpoint characteristic.
_CONTROLLER_TYPE This enumeration specifies if the USB host controller is an eXtensible Host Controller Interface (xHCI) controller.
_TRISTATE The TRISTATE enumeration indicates generic state values for true or false.
_UCX_USBDEVICE_CHARACTERISTIC_TYPE Defines values that indicates the type of device characteristic.
_UDECX_ENDPOINT_TYPE Defines values for endpoint types supported by a virtual USB device.
_UDECX_ENDPOINTS_CONFIGURE_TYPE Defines values for endpoint configuration options.
_UDECX_USB_DEVICE_FUNCTION_POWER Defines values for function wake capability of a virtual USB 3.0 device.
_UDECX_USB_DEVICE_SPEED Defines values for USB device speeds.
_UDECX_USB_DEVICE_WAKE_SETTING Defines values for remote wake capability of a virtual USB device.
_UDECX_WDF_DEVICE_RESET_ACTION Defines values that indicate the types of reset operation supported by an emulated USB host controller.
_USBFN_ACTION Defines special actions UFX should take when the client driver calls the UfxDevicePortDetectCompleteEx function.
_URS_HARDWARE_EVENT Defines values for the hardware events that a client driver for a USB dual-role controller can report.
_URS_HOST_INTERFACE_TYPE Defines values for the various types of USB host controllers.
_URS_ROLE Defines values for roles supported by a USB dual-role controller.
_USB_CONTROLLER_FLAVOR The USB_CONTROLLER_FLAVOR enumeration specifies the type of USB host controller.
_USBD_ENDPOINT_OFFLOAD_MODE Defines values for endpoint offloading options in the USB device or host controller.
_USBD_PIPE_TYPE The USBD_PIPE_TYPE enumerator indicates the type of pipe.
_USBFN_ATTACH_ACTION Defines the actions that the Universal Serial Bus (USB) function stack takes when a device is attached to a USB port.
_USBFN_BUS_SPEED The USBFN_BUS_SPEED enumeration defines possible bus speeds.
_USBFN_DEVICE_STATE Defines the Universal Serial Bus (USB) device states for the device/controller. These states correspond to the USB device states as defined in section 9.1 of the USB 2.0 Specification.
_USBFN_DIRECTION Defines the USB data transfer direction types.
_USBFN_EVENT Defines notifications sent to class drivers.
_USBFN_PORT_TYPE Defines the possible port types that can be returned by the client driver during port detection.
_USB_CONNECTION_STATUS The USB_CONNECTION_STATUS enumerator indicates the status of the connection to a device on a USB hub port.
_USB_HUB_NODE The USB_HUB_NODE enumerator indicates whether a device is a hub or a composite device.
_USB_HUB_TYPE The USB_HUB_TYPE enumeration defines constants that indicate the type of USB hub. The hub type is retrieved by the IOCTL_USB_GET_HUB_INFORMATION_EX I/O control request.
_USB_DEVICE_SPEED The USB_DEVICE_SPEED enumeration defines constants for USB device speeds.
_USBPM_ACCESS_TYPE Defines the access types for calling Policy Manager functions.
_USBPM_ASSIGN_POWER_LEVEL_PARAMS_FORMAT Defines format values used in USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS.
_USBPM_EVENT_TYPE Defines values for types of events.
_UCMUCSIFUNCENUM Defines values for all export functions called by a client driver of a UcmUcsiCx class extension.
_UCMUCSI_PPM_IOCTL Defines I/O control codes handled by the client driver.
_UCSI_BATTERY_CHARGING_STATUS See Table 4-42, Offset 64.
_UCSI_COMMAND See Table 4-51, Command Code.
_UCSI_CONNECTOR_PARTNER_FLAGS Used in the GET_CONNECTOR_STATUS command. See Table 4-42, Offset 21.
_UCSI_CONNECTOR_PARTNER_TYPE Used in the GET_CONNECTOR_STATUS command. See Table 4-42, Offset 29.
_UCSI_GET_ALTERNATE_MODES_RECIPIENT Used in the GET_ALTERNATE_MODES command. See Table 4-24, Offset 16.
_UCSI_GET_PDOS_SOURCE_CAPABILITIES_TYPE Used in the GET_PDOS command. See Table 4-34, Offset 35.
_UCSI_GET_PDOS_TYPE Used in the GET_PDOS command. See Table 4-34, Offset 34.
_UCSI_POWER_DIRECTION Used in the GET_CONNECTOR_STATUS command. See Table 4-42, Offset 20.
_UCSI_POWER_DIRECTION_MODE Used in the GET_CONNECTOR_STATUS command. See Table 4-42, Offset 20.
_UCSI_POWER_DIRECTION_ROLE Used in the SET_PDR command. See Table 4-22, Offset 23.
_UCSI_POWER_OPERATION_MODE Used in the GET_CONNECTOR_STATUS command. See Table 4-42, Offset 16.
_UCSI_USB_OPERATION_MODE Used in the SET_UOR command. See Table 4-18, Offset 23.
_UCSI_USB_OPERATION_ROLE Used in the SET_UOR command. See Table 4-20, Offset 23

Functions

Title Description
EVT_UCM_CONNECTOR_SET_DATA_ROLE The client driver's implementation of the EVT_UCM_CONNECTOR_SET_DATA_ROLE event callback function that swaps the data role of the connector to the specified role when attached to a partner connector.
EVT_UCM_CONNECTOR_SET_POWER_ROLE The client driver's implementation of the EVT_UCM_CONNECTOR_SET_POWER_ROLE event callback function that sets the power role of the connector to the specified role when attached to a partner connector.
UCM_CONNECTOR_CONFIG_INIT Initializes a UCM_CONNECTOR_CONFIG structure.
UCM_CONNECTOR_PD_CONFIG_INIT Initializes a UCM_CONNECTOR_PD_CONFIG structure.
UCM_CONNECTOR_PD_CONN_STATE_CHANGED_PARAMS_INIT Initializes a UCM_CONNECTOR_PD_CONN_STATE_CHANGED_PARAMS structure.
UCM_CONNECTOR_TYPEC_ATTACH_PARAMS_INIT Initializes a UCM_CONNECTOR_TYPEC_ATTACH_PARAMS structure.
UCM_CONNECTOR_TYPEC_CONFIG_INIT Initializes the UCM_CONNECTOR_TYPEC_CONFIG structure.
UCM_MANAGER_CONFIG_INIT Initializes a UCM_MANAGER_CONFIG structure.
UcmConnectorChargingStateChanged Notifies the USB connector manager framework extension (UcmCx) with the updated charging state of the partner connector.
UcmConnectorCreate Creates a connector object.
UcmConnectorDataDirectionChanged Notifies the USB connector manager framework extension (UcmCx) with the new data role of a change in data role.
UcmConnectorPdConnectionStateChanged Notifies the USB connector manager framework extension (UcmCx) with the connection capabilities of the currently negotiated PD contract (if any).
UcmConnectorPdPartnerSourceCaps Notifies the USB connector manager framework extension (UcmCx) with the power source capabilities of the partner connector.
UcmConnectorPdSourceCaps Notifies the USB connector manager framework extension (UcmCx) with the power source capabilities of the connector.
UcmConnectorPowerDirectionChanged Notifies the USB connector manager framework extension (UcmCx) with the new power role of the partner connector.
UcmConnectorTypeCAttach Notifies the USB connector manager framework extension (UcmCx) when a partner connector is attached.
UcmConnectorTypeCCurrentAdChanged Notifies the USB connector manager framework extension (UcmCx) when the specified connector changes the current advertisement. Either the connector changes it (when it is DFP/Source), or the partner changed it (when it is UFP/Sink).
UcmConnectorTypeCDetach Notifies the USB connector manager framework extension (UcmCx) when the partner connector detaches from the specified Type-C connector.
UcmInitializeDevice Initializes the USB connector manager framework extension (UcmCx).
UCMTCPCI_DEVICE_CONFIG_INIT Initializes the UCMTCPCI_DEVICE_CONFIG structure.
UcmTcpciDeviceInitialize Initializes the USB Type-C Port Controller Interface framework extension (UcmTcpciCx).
UcmTcpciDeviceInitInitialize Initializes device initialization operations when the Plug and Play (PnP) manager reports the existence of a device.
UCMTCPCI_PORT_CONTROLLER_ALERT_DATA_INIT Initializes the UCMTCPCI_PORT_CONTROLLER_ALERT_DATA structure.
UCMTCPCI_PORT_CONTROLLER_CAPABILITIES_INIT Initializes the UCMTCPCI_PORT_CONTROLLER_CAPABILITIES structure.
UCMTCPCI_PORT_CONTROLLER_CONFIG_INIT Initializes the UCMTCPCI_PORT_CONTROLLER_CONFIG structure.
UCMTCPCI_PORT_CONTROLLER_IDENTIFICATION_INIT Initializes the UCMTCPCI_PORT_CONTROLLER_IDENTIFICATION structure.
UcmTcpciPortControllerAlert Sends information about the hardware alerts that are received on the port controller to UcmTcpciCx.
UcmTcpciPortControllerCreate Creates a port controller object to register with UcmTcpciCx.
UcmTcpciPortControllerSetHardwareRequestQueue Assigns a framework queue object to which the UcmTcpciCx dispatches hardware requests for the port controller.
UcmTcpciPortControllerStart Indicates to the UcmTcpciCx class extension that the client driver is now ready to service hardware requests for the port controller.
UcmTcpciPortControllerStop Indicates to the UcmTcpciCx class extension to stop sending hardware requests to the port controller object.
UCM_PD_POWER_DATA_OBJECT_GET_TYPE Retrieves the type of Power Data Object from the UCM_PD_POWER_DATA_OBJECT structure.
UCM_PD_POWER_DATA_OBJECT_INIT_BATTERY Initializes a UCM_PD_POWER_DATA_OBJECT structure as a Battery Supply type Power Data Object.
UCM_PD_POWER_DATA_OBJECT_INIT_FIXED Initializes a to the UCM_PD_POWER_DATA_OBJECT for a Fixed Supply type Power Data Object.
UCM_PD_POWER_DATA_OBJECT_INIT_ULONG Initializes a UCM_PD_POWER_DATA_OBJECT structure by interpreting Power Data Object values and sets each field correctly.
UCM_PD_POWER_DATA_OBJECT_INIT_VARIABLE_NON_BATTERY Initializes a UCM_PD_POWER_DATA_OBJECT structure as a Variable Supply Non Battery type Power Data Object.
UCM_PD_REQUEST_DATA_OBJECT_INIT_ULONG Initializes a UCM_PD_REQUEST_DATA_OBJECT structure by interpreting Request Data Object values and sets each field correctly.
UcxInitializeDeviceInit Initializes device initialization operations when the Plug and Play (PnP) manager reports the existence of a device.
EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER The client driver's implementation that UCX calls to retrieve the current 32-bit frame number.
EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY The client driver's implementation to determine if the controller supports a specific capability.
EVT_UCX_CONTROLLER_RESET The client driver's implementation that UCX calls to reset the controller.
EVT_UCX_CONTROLLER_USBDEVICE_ADD The client driver's implementation that UCX calls when a new USB device is detected.
UCX_CONTROLLER_CONFIG_SET_ACPI_INFO Initializes a UCX_CONTROLLER_CONFIG structure with the specified values for the controller with ACPI as the parent.
UCX_CONTROLLER_CONFIG_SET_PCI_INFO Initializes a UCX_CONTROLLER_CONFIG structure with the specified values for the controller with PCI as the parent bus type.
UcxControllerCreate Creates a host controller object.
UcxControllerNeedsReset Initiates a non-Plug and Play (PnP) controller reset operation by queuing an event into the controller reset state machine.
UcxControllerResetComplete Informs USB Host Controller Extension (UCX) that the reset operation has competed.
UcxControllerSetFailed Informs USB Host Controller Extension (UCX) that the controller has encountered a critical failure.
UcxIoDeviceControl Allows USB host controller extension (UCX) to handle an I/O control code (IOCTL) request from user mode.
UcxControllerSetIdStrings Updates the identifier strings of a controller after the controller has been initialized.
EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC UCX invokes this callback to retrieves the system query performance counter (QPC) value synchronized with the frame and microframe.
EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS UCX invokes this callback to retrieve the host controller characteristics.
EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION UCX invokes this callback function to specify its preference in transport characteristics for which the client driver must send notifications when changes occur.
EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC UCX invokes this callback function to the start time tracking functionality in the controller.
EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC UCX invokes this callback function to the stop time tracking functionality in the controller.
UcxControllerNotifyTransportCharacteristicsChange Notifies UCX about a new port change event from host controller.
EVT_UCX_DEFAULT_ENDPOINT_UPDATE The client driver's implementation that UCX calls with information about the default endpoint.
EVT_UCX_ENDPOINT_ABORT The client driver's implementation that UCX calls to abort the queue associated with the endpoint.
EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS The client driver's implementation that UCX calls to notify the controller driver that it can complete cancelled transfers on the endpoint.
EVT_UCX_ENDPOINT_PURGE The client driver's implementation that completes all outstanding I/O requests on the endpoint.
EVT_UCX_ENDPOINT_RESET The client driver's implementation that UCX calls to reset the controller’s programming for an endpoint.
EVT_UCX_ENDPOINT_START The client driver's implementation that UCX calls to start the queue associated with the endpoint.
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD The client driver's implementation that UCX calls to create static streams.
EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE The client driver's implementation that UCX calls to release controller resources for all streams for an endpoint.
EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE The client driver's implementation that UCX calls to enable the static streams.
UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS_INIT Initializes a UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS structure with client driver's callback functions. The client driver calls this function before calling UcxEndpointCreate method to create an endpoint and register its callback functions with UCX.
UCX_ENDPOINT_EVENT_CALLBACKS_INIT Initializes a UCX_ENDPOINT_EVENT_CALLBACKS structure with client driver's callback functions. The client driver calls this function before calling UcxEndpointCreate method to create an endpoint and register its callback functions with UCX.
UcxDefaultEndpointInitSetEventCallbacks Initializes a UCXENDPOINT_INIT structure with client driver's event callback functions related to the default endpoint.
UcxEndpointAbortComplete Notifies UCX that a transfer abort operation has been completed on the specified endpoint object.
UcxEndpointCreate Creates an endpoint on the specified USB device object.
UcxEndpointGetStaticStreamsReferenced Returns a referenced static streams object for the specified endpoint.
UcxEndpointInitSetEventCallbacks Initializes a UCXENDPOINT_INIT structure with client driver's event callback functions related to endpoints on the device.
UcxEndpointNeedToCancelTransfers The client driver calls this method before it cancels transfers on the wire.
UcxEndpointNoPingResponseError Notifies UCX about a "No Ping Response" error for a transfer on the specified endpoint object.
UcxEndpointPurgeComplete Notifies UCX that a purge operation has been completed on the specified endpoint object.
UcxEndpointSetWdfIoQueue Sets a framework queue on the specified endpoint object.
EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS UCX invokes this callback function to get information about transfer path delays for an isochronous endpoint.
EVT_UCX_ENDPOINT_SET_CHARACTERISTIC UCX invokes this callback function to set the priority on an endpoint.
EVT_UCX_ROOTHUB_CONTROL_URB The client driver uses this callback type to implement handlers that UCX calls when it receives feature control requests on the USB hub.
EVT_UCX_ROOTHUB_GET_20PORT_INFO The client driver's implementation that UCX calls when it receives a request for information about USB 2.0 ports on the root hub.
EVT_UCX_ROOTHUB_GET_30PORT_INFO The client driver's implementation that UCX calls when it receives a request for information about USB 3.0 ports on the root hub.
EVT_UCX_ROOTHUB_GET_INFO The client driver's implementation that UCX calls when it receives a request for information about the root hub.
EVT_UCX_ROOTHUB_INTERRUPT_TX The client driver's implementation that UCX calls when it receives a request for information about changed ports.
UcxRootHubPortChanged Notifies UCX about a new port change event on the host controller.
UcxStaticStreamsCreate Creates a static streams object.
UcxStaticStreamsSetStreamInfo Sets stream information for each stream enabled by the client driver.
EVT_UCX_USBDEVICE_ADDRESS The client driver's implementation that UCX calls to address the USB device.
EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD The client driver's implementation that UCX calls to add a new default endpoint for a USB device.
EVT_UCX_USBDEVICE_DISABLE The client driver's implementation that UCX calls to release controller resources associated with the device and its default endpoint.
EVT_UCX_USBDEVICE_ENABLE The client driver's implementation that UCX calls to program information about the device and its default control endpoint into the controller.
EVT_UCX_USBDEVICE_ENDPOINT_ADD The client driver's implementation that UCX calls to add a new endpoint for a USB device.
EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE The client driver's implementation that UCX calls to configure endpoints in the controller.
EVT_UCX_USBDEVICE_HUB_INFO The client driver's implementation that UCX calls to retrieve hub properties.
EVT_UCX_USBDEVICE_RESET The client driver's implementation that UCX calls when the port to which the device is attached is reset.
EVT_UCX_USBDEVICE_UPDATE The client driver's implementation that UCX calls to update device properties.
UCX_USBDEVICE_EVENT_CALLBACKS_INIT Initializes a UCX_USBDEVICE_EVENT_CALLBACKS structure with the function pointers to client driver's callback functions.
UcxUsbDeviceCreate Creates a USB device object on the specified controller.
UcxUsbDeviceInitSetEventCallbacks Initializes a UCXUSBDEVICE_INIT structure with client driver's event callback functions.
UcxUsbDeviceRemoteWakeNotification Notifies UCX that a remote wake signal from the device is received.
EVT_UCX_USBDEVICE_RESUME UCX invokes this callback function to resume a device from suspend state.
EVT_UCX_USBDEVICE_SUSPEND UCX invokes this callback function to send a device suspend state.
EVT_UCX_USBDEVICE_GET_CHARACTERISTIC UCX invokes this callback to retrieve the device characteristics.
UdecxUrbComplete Completes the URB request with a USB-specific completion status code.
UdecxUrbCompleteWithNtStatus Completes the URB request with an NTSTATUS code.
UdecxUrbRetrieveBuffer Retrieves the transfer buffer of an URB from the specified framework request object sent to the endpoint queue.
UdecxUrbRetrieveControlSetupPacket Retrieves a USB control setup packet from a specified framework request object.
UdecxUrbSetBytesCompleted Sets the number of bytes transferred for the URB contained within a framework request object.
EVT_UDECX_USB_DEVICE_D0_ENTRY The USB device emulation class extension (UdeCx) invokes this callback function when it gets a request to bring the virtual USB device out of a low power state to working state.
EVT_UDECX_USB_DEVICE_D0_EXIT 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.
EVT_UDECX_USB_DEVICE_DEFAULT_ENDPOINT_ADD The USB device emulation class extension (UdeCx) invokes this callback function to request the client driver to create the default control endpoint on the virtual USB device.
EVT_UDECX_USB_DEVICE_ENDPOINT_ADD The USB device emulation class extension (UdeCx) invokes this callback function to request the client driver to create a dynamic endpoint on the virtual USB device.
EVT_UDECX_USB_DEVICE_ENDPOINTS_CONFIGURE 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.
EVT_UDECX_USB_DEVICE_SET_FUNCTION_SUSPEND_AND_WAKE The USB device emulation class extension (UdeCx) invokes this callback function when it gets a request to change the function state of the specified interface of the virtual USB 3.0 device.
UDECX_USB_DEVICE_CALLBACKS_INIT Initializes a UDECX_USB_DEVICE_STATE_CHANGE_CALLBACKS structure before a UdecxUsbDeviceCreate call.
UDECX_USB_DEVICE_PLUG_IN_OPTIONS_INIT Initializes a UDECX_USB_DEVICE_PLUG_IN_OPTIONS structure.
UdecxUsbDeviceCreate Creates a USB Device Emulation (UDE) device object.
UdecxUsbDeviceInitAddDescriptor Adds a USB descriptor to the initialization parameters used to create a virtual USB device.
UdecxUsbDeviceInitAddDescriptorWithIndex Adds a USB descriptor to the initialization parameters used to create a virtual USB device.
UdecxUsbDeviceInitAddStringDescriptor Adds a USB string descriptor to the initialization parameters used to create a virtual USB device.
UdecxUsbDeviceInitAddStringDescriptorRaw Adds a USB string descriptor to the initialization parameters used to create a virtual USB device.
UdecxUsbDeviceInitAllocate Allocates memory for a UDECXUSBDEVICE_INIT structure that is used to initialize a virtual USB device.
UdecxUsbDeviceInitFree Releases the resources that were allocated by the UdecxUsbDeviceInitAllocate call.
UdecxUsbDeviceInitSetEndpointsType Indicates the type of endpoint (simple or dynamic) in the initialization parameters that the client driver uses to create the virtual USB device.
UdecxUsbDeviceInitSetSpeed Sets the USB speed of the virtual USB device to create.
UdecxUsbDeviceInitSetStateChangeCallbacks Initializes a WDF-allocated structure with pointers to callback functions.
UdecxUsbDeviceLinkPowerEntryComplete Completes an asynchronous request for bringing the device out of a low power state.
UdecxUsbDeviceLinkPowerExitComplete Completes an asynchronous request for sending the device to a low power state.
UdecxUsbDevicePlugIn Notifies the USB device emulation class extension (UdeCx) that the USB device has been plugged in the specified port.
UdecxUsbDevicePlugOutAndDelete Disconnects the virtual USB device.
UdecxUsbDeviceSetFunctionSuspendAndWakeComplete Completes an asynchronous request for changing the power state of a particular function of a virtual USB 3.0 device.
UdecxUsbDeviceSignalFunctionWake Initiates wake up of the specified function from a low power state. This applies to virtual USB 3.0 devices.
UdecxUsbDeviceSignalWake Initiates wake up from a low link power state for a virtual USB 2.0 device.
EVT_UDECX_USB_ENDPOINT_PURGE The USB device emulation class extension (UdeCx) invokes this callback function to stop queuing I/O requests to the endpoint's queue and cancel unprocessed requests.
EVT_UDECX_USB_ENDPOINT_RESET The USB device emulation class extension (UdeCx) invokes this callback function to reset an endpoint of the virtual USB device.
EVT_UDECX_USB_ENDPOINT_START The USB device emulation class extension (UdeCx) invokes this callback function to start processing I/O requests on the specified endpoint of the virtual USB device.
UDECX_USB_ENDPOINT_CALLBACKS_INIT Initializes a UDECX_USB_ENDPOINT_CALLBACKS structure before a UdecxUsbEndpointCreate call.
UdecxUsbEndpointCreate Creates a UDE endpoint object.
UdecxUsbEndpointInitFree Release the resources that were allocated by the UdecxUsbSimpleEndpointInitAllocate call.
UdecxUsbEndpointInitSetCallbacks Sets pointers to UDE client driver-implemented callback functions in the initialization parameters of the simple endpoint to create.
UdecxUsbEndpointInitSetEndpointAddress Sets the address of the endpoint in the initialization parameters of the simple endpoint to create.
UdecxUsbEndpointPurgeComplete Completes an asynchronous request for canceling all I/O requests queued to the specified endpoint.
UdecxUsbEndpointSetWdfIoQueue Sets a framework queue object with a UDE endpoint.
UdecxUsbSimpleEndpointInitAllocate Allocates memory for an initialization structure that is used to create a simple endpoint for the specified virtual USB device.
EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY The UDE client driver's implementation to determine the capabilities that are supported by the emulated USB host controller.
EVT_UDECX_WDF_DEVICE_RESET The UDE client driver's implementation to reset the emulated host controller or the devices attached to it.
UDECX_WDF_DEVICE_CONFIG_INIT Initializes a UDECX_WDF_DEVICE_CONFIG structure.
UdecxInitializeWdfDeviceInit Initializes device initialization operations when the Plug and Play (PnP) manager reports the existence of a device.
UdecxWdfDeviceAddUsbDeviceEmulation Initializes a framework device object to support operations related to a host controller and a virtual USB device attached to the controller.
UdecxWdfDeviceResetComplete Informs the USB device emulation class extension (UdeCx) that the reset operation on the specified controller has competed.
UdecxWdfDeviceTryHandleUserIoctl Attempts to handle an IOCTL request sent by a user-mode software.
EVT_UFX_DEVICE_ADDRESSED The client driver's implementation to assign an address on the function controller.
EVT_UFX_DEVICE_CONTROLLER_RESET The client driver's implementation to reset the function controller to its initial state.
EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD The client driver's implementation to create a default control endpoint.
EVT_UFX_DEVICE_ENDPOINT_ADD The client driver's implementation to create a default endpoint object.
EVT_UFX_DEVICE_HOST_CONNECT The client driver's implementation to initiate connection with the host.
EVT_UFX_DEVICE_HOST_DISCONNECT The client driver's implementation to disable the function controller's communication with the host.
EVT_UFX_DEVICE_PORT_CHANGE The client driver's implementation to update the type of the new port to which the USB device is connected.
EVT_UFX_DEVICE_PORT_DETECT The client driver's implementation to initiate port detection.
EVT_UFX_DEVICE_PROPRIETARY_CHARGER_DETECT The client driver's implementation to initiate proprietary charger detection.
EVT_UFX_DEVICE_PROPRIETARY_CHARGER_RESET The client driver's implementation to resets proprietary charger.
EVT_UFX_DEVICE_PROPRIETARY_CHARGER_SET_PROPERTY The client driver's implementation to set charger information that it uses to enable charging over USB.
EVT_UFX_DEVICE_REMOTE_WAKEUP_SIGNAL The client driver's implementation to initiate remote wake-up on the function controller.
EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE The client driver's implementation to set or clear the specified power feature on the function controller.
EVT_UFX_DEVICE_TEST_MODE_SET The client driver's implementation to set the test mode of the function controller.
EVT_UFX_DEVICE_TESTHOOK This IOCTL code is not supported.
EVT_UFX_DEVICE_USB_STATE_CHANGE The client driver's implementation to update the state of the USB device.
UFX_DEVICE_CALLBACKS_INIT The UFX_DEVICE_CALLBACKS_INIT macro initializes the UFX_DEVICE_CALLBACKS structure.
UFX_DEVICE_CAPABILITIES_INIT The UFX_DEVICE_CAPABILITIES_INIT macro the initializes the UFX_DEVICE_CAPABILITIES structure.
UFX_ENDPOINT_CALLBACKS_INIT The UFX_ENDPOINT_CALLBACKS_INIT macro initializes the UFX_ENDPOINT_CALLBACKS structure.
UfxDeviceCreate Creates a UFX device object, registers event callback routines, and specifies capabilities specific to the controller.
UfxDeviceEventComplete Informs UFX that the client driver has completed processing a UFX callback function.
UfxDeviceIoControl Passes non-internal IOCTLs from user-mode to UFX.
UfxDeviceIoInternalControl Passes kernel mode IOCTLs to UFX.
UfxDeviceNotifyAttach Notifies UFX that the device's USB cable has been attached.
UfxDeviceNotifyDetach Notifies UFX that the device's USB cable has been detached.
UfxDeviceNotifyHardwareFailure Notifies UFX about a non-recoverable hardware failure in the controller.
UfxDeviceNotifyHardwareReady Notifies UFX that the hardware is ready.
UfxDeviceNotifyReset Notifies UFX about a USB bus reset event.
UfxDeviceNotifyResume Notifies UFX about a USB bus resume event.
UfxDeviceNotifySuspend Notifies UFX about a USB bus suspend event.
UfxDevicePortDetectComplete Notifies UFX about the port type that was detected.
UfxDevicePortDetectCompleteEx Notifies UFX about the port type that was detected, and optionally requests an action.
UfxDeviceProprietaryChargerDetectComplete Notifies UFX about a detected proprietary port/charger type.
UfxEndpointCreate Creates an endpoint object.
UfxEndpointGetCommandQueue Returns the command queue previously created by UfxEndpointCreate.
UfxEndpointGetTransferQueue Returns the transfer queue previously created by UfxEndpointCreate.
UfxEndpointInitSetEventCallbacks Initialize a UFXENDPOINT_INIT structure.
UfxEndpointNotifySetup Notifies UFX when the client driver receives a setup packet from the host.
UfxFdoInit Initializes the WDFDEVICE_INIT structure that the client driver subsequently provides when it calls WdfDeviceCreate.
UFX_PROPRIETARY_CHARGER_ABORT_OPERATION The filter driver's implementation to abort a charger operation.
UFX_PROPRIETARY_CHARGER_DETECT The filter driver's implementation to detect if a charger is attached and get details about the charger.
UFX_PROPRIETARY_CHARGER_RESET_OPERATION The filter driver's implementation to reset a charger operation.
UFX_PROPRIETARY_CHARGER_SET_PROPERTY The filter driver's implementation to set a configurable property on the charger.
EVT_URS_DEVICE_FILTER_RESOURCE_REQUIREMENTS The USB dual-role class extension invokes this callback to allow the client driver to insert the resources from the resource-requirements-list object to resource lists that will be used during the life time of each role.
EVT_URS_SET_ROLE The URS class extension invokes this event callback when it requires the client driver to change the role of the controller.
URS_CONFIG_INIT Initializes a URS_CONFIG structure.
UrsDeviceInitialize Initializes a framework device object to support operations related to a USB dual-role controller and registers the relevant event callback functions with the USB dual-role controller class extension.
UrsDeviceInitInitialize Initializes device initialization operations when the Plug and Play (PnP) manager reports the existence of a device.
UrsIoResourceListAppendDescriptor Appends the specified resource descriptor to the specified I/O resource list object that maintains resource descriptors for the host or function role.
UrsReportHardwareEvent Notifies the USB dual-role class extension about a new hardware event.
UrsSetHardwareEventSupport Indicates the client driver's support for reporting new hardware events.
UrsSetPoHandle Registers and deletes the client driver's registration with the power management framework (PoFx).
PUSB_BUSIFFN_ENUM_LOG_ENTRY This callback function is not supported.The EnumLogEntry routine makes a log entry.
PUSB_BUSIFFN_GETUSBDI_VERSION The GetUSBDIVersion routine returns the USB interface version number and the version number of the USB specification that defines the interface, along with information about host controller capabilities.
PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED The USB_BUSIFFN_IS_DEVICE_HIGH_SPEED routine returns TRUE if the device is operating at high speed.
PUSB_BUSIFFN_QUERY_BUS_INFORMATION The QueryBusInformation routine gets information about the bus.
PUSB_BUSIFFN_QUERY_BUS_TIME The QueryBusTime function gets the current 32-bit USB frame number.
PUSB_BUSIFFN_QUERY_BUS_TIME_EX The QueryBusTimeEx routine gets the current 32-bit USB micro-frame number.
PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE The QueryControllerType routine gets information about the USB host controller to which the USB device is attached.
PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB This callback function is not supported.The SubmitIsoOutUrb function submits a USB request block (URB) directly to the bus driver without requiring the allocation of an IRP.
USBC_START_DEVICE_CALLBACK The USBC_START_DEVICE_CALLBACK routine allows a USB client driver to provide a custom definition of the interface collections on a device.
COMPOSITE_DEVICE_CAPABILITIES_INIT The COMPOSITE_DEVICE_CAPABILITIES_INIT macro initializes the COMPOSITE_DEVICE_CAPABILITIES structure.
GET_ISO_URB_SIZE The GET_ISO_URB_SIZE macro returns the number of bytes required to hold an isochronous transfer request.
UsbBuildGetStatusRequest The UsbBuildGetStatusRequest macro formats an URB to obtain status from a device, interface, endpoint, or other device-defined target on a USB device.
UsbBuildInterruptOrBulkTransferRequest The UsbBuildInterruptOrBulkTransferRequest macro formats an URB to send or receive data on a bulk pipe, or to receive data from an interrupt pipe.
UsbBuildOpenStaticStreamsRequest The UsbBuildOpenStaticStreamsRequest inline function formats an URB structure for an open-streams request. The request opens streams associated with the specified bulk endpoint.
USBD_AssignUrbToIoStackLocation The USBD_AssignUrbToIoStackLocation routine is called by a client driver to associate an URB with the IRP's next stack location.
USBD_BuildRegisterCompositeDevice The USBD_BuildRegisterCompositeDevice routine is called by the driver of a USB multi-function device (composite driver) to initialize a REGISTER_COMPOSITE_DEVICE structure with the information required for registering the driver with the USB driver stack.
USBD_CalculateUsbBandwidth The USBD_CalculateUsbBandwidth routine has been deprecated in Windows XP and later operating systems. Do not use.
USBD_CloseHandle The USBD_CloseHandle routine is called by a USB client driver to close a USBD handle and release all resources associated with the driver's registration.
USBD_CreateConfigurationRequest The USBD_CreateConfigurationRequest routine has been deprecated. Use USBD_CreateConfigurationRequestEx instead.
USBD_CreateConfigurationRequestEx The USBD_CreateConfigurationRequestEx routine allocates and formats a URB to select a configuration for a USB device.USBD_CreateConfigurationRequestEx replaces USBD_CreateConfigurationRequest.
USBD_CreateHandle The USBD_CreateHandle routine is called by a WDM USB client driver to obtain a USBD handle. The routine registers the client driver with the underlying USB driver stack.
USBD_GetInterfaceLength The USBD_GetInterfaceLength routine obtains the length of a given interface descriptor, including the length of all endpoint descriptors contained within the interface.
USBD_GetPdoRegistryParameter The USBD_GetPdoRegistryParameter routine retrieves the value from the specified key in the USB device's hardware registry.
USBD_GetUSBDIVersion The USBD_GetUSBDIVersion routine returns version information about the host controller driver (HCD) that controls the client's USB device.Note USBD_IsInterfaceVersionSupported replaces the USBD_GetUSBDIVersion routine
USBD_IsInterfaceVersionSupported The USBD_IsInterfaceVersionSupported routine is called by a USB client driver to check whether the underlying USB driver stack supports a particular USBD interface version.
USBD_IsochUrbAllocate The USBD_IsochUrbAllocate routine allocates and formats a URB structure for an isochronous transfer request.
USBD_ParseConfigurationDescriptor The USBD_ParseConfigurationDescriptor routine has been deprecated. Use USBD_ParseConfigurationDescriptorEx instead.
USBD_ParseConfigurationDescriptorEx The USBD_ParseConfigurationDescriptorEx routine searches a given configuration descriptor and returns a pointer to an interface that matches the given search criteria.
USBD_ParseDescriptors The USBD_ParseDescriptors routine searches a given configuration descriptor and returns a pointer to the first descriptor that matches the search criteria.
USBD_QueryBusTime The USBD_QueryBusTime routine has been deprecated in Windows XP and later operating systems. Do not use.
USBD_QueryUsbCapability The USBD_QueryUsbCapability routine is called by a WDM client driver to determine whether the underlying USB driver stack and the host controller hardware support a specific capability.
USBD_RegisterHcFilter The USBD_RegisterHcFilter routine has been deprecated in Windows XP and later operating systems.
USBD_SelectConfigUrbAllocateAndBuild The USBD_SelectConfigUrbAllocateAndBuild routine allocates and formats a URB structure that is required to select a configuration for a USB device.
USBD_SelectInterfaceUrbAllocateAndBuild The USBD_SelectInterfaceUrbAllocateAndBuild routine allocates and formats a URB structure that is required for a request to select an interface or change its alternate setting.
USBD_UrbAllocate The USBD_UrbAllocate routine allocates a USB Request Block (URB).
USBD_UrbFree The USBD_UrbFree routine releases the URB that is allocated by USBD_UrbAllocate, USBD_IsochUrbAllocate, USBD_SelectConfigUrbAllocateAndBuild, or USBD_SelectInterfaceUrbAllocateAndBuild.
USBD_ValidateConfigurationDescriptor The USBD_ValidateConfigurationDescriptor routine validates all descriptors returned by a device in its response to a configuration descriptor request.
USBFN_GET_ATTACH_ACTION The filter driver's implementation that gets invoked when charger is attached to the port.
USBFN_GET_ATTACH_ACTION_ABORT The filter driver's implementation to abort an attach-detect operation.
USBFN_SET_DEVICE_STATE The filter driver's implementation to set the device state and operating bus speed.
EVT_USBPM_EVENT_CALLBACK Sends notifications about hub arrival/removal and connector state changes.
USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS_INIT Initializes a USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS structure.
UsbPm_AssignConnectorPowerLevel Attempts a PD contract renegotiation with the specified voltage/current/power value.
USBPM_CLIENT_CONFIG_EXTRA_INFO_INIT Initializes a USBPM_CLIENT_CONFIG_EXTRA_INFO structure.
USBPM_CLIENT_CONFIG_INIT Initializes a USBPM_CLIENT_CONFIG structure.
USBPM_CONNECTOR_PROPERTIES_INIT Initializes a USBPM_CONNECTOR_PROPERTIES structure.
USBPM_CONNECTOR_STATE_INIT Initializes a USBPM_CONNECTOR_STATE_INIT structure.
UsbPm_Deregister Unregisters the client driver with the Policy Manager.
USBPM_HUB_CONNECTOR_HANDLES_INIT Initializes a USBPM_HUB_CONNECTOR_HANDLES structure.
USBPM_HUB_PROPERTIES_INIT Initializes a [USBPM_HUB_PROPERTIES] structure.
UsbPm_Register Registers the client driver with the Policy Manager to report hub arrival/removal and connector state changes.
UsbPm_RetrieveConnectorProperties Retrieves the properties of a connector. The properties are static information that do not change during the lifecycle of a connector.
UsbPm_RetrieveConnectorState Retrieves the current state of a connector. Unlike connector properties, state information is dynamic, which can change at runtime.
UsbPm_RetrieveHubConnectorHandles Retrieves connector handles for all connectors of a hub.
UsbPm_RetrieveHubProperties Retrieves the properties of a hub. Properties are static information that do not change during the lifecycle of a hub.
UCMUCSI_DEVICE_CONFIG_INIT Initializes a UCMUCSI_DEVICE_CONFIG structure.
UcmUcsiDeviceInitialize Initializes the UCSI extension (UcmUcsiCx).
UcmUcsiDeviceInitInitialize Intializes the WDFDEVICE_INIT provided by the framework.
UCMUCSI_CONNECTOR_INFO_INIT Initializes a UCMUCSI_CONNECTOR_INFO structure.
UCMUCSI_PPM_CONFIG_INIT Initializes a UCMUCSI_PPM_CONFIG structure.
UcmUcsiConnectorCollectionAddConnector Adds a connector to the connector collection object.
UcmUcsiConnectorCollectionCreate Creates a connector collection object with UcmUcsiCx.
UcmUcsiPpmNotification Informs the UcmUcsiCx class extension about a UCSI notification.
UcmUcsiPpmSetUcsiCommandRequestQueue Provides a framework queue object that is used to dispatch UCSI commands to the client driver.
UcmUcsiPpmStart Instructs the class extension to start sending requests to the client driver.
UcmUcsiPpmStop Instructs the class extension to stop sending requests to the client driver.
UCSI_CMD_SUCCEEDED On successful completion of a UCSI command the PPM firmware fills the CCI Data Structure provided by the client driver.

Structures

Title Description
_UCM_CONNECTOR_CONFIG Describes the configuration options for a Type-C connector object. An initialized UCM_MANAGER_CONFIG structure is an input parameter value to UcmInitializeDevice.
_UCM_CONNECTOR_PD_CONFIG Describes the Power Delivery 2.0 capabilities of the connector.
_UCM_CONNECTOR_PD_CONN_STATE_CHANGED_PARAMS Describes the parameters for PD connection changed event.
_UCM_CONNECTOR_TYPEC_ATTACH_PARAMS Describes the partner that is currently attached to the connector.
_UCM_CONNECTOR_TYPEC_CONFIG Describes the configuration options for a Type-C connector.
_UCM_MANAGER_CONFIG Describes the configuration options for the UCM Manager. An initialized UCM_MANAGER_CONFIG structure is an input parameter value to UcmInitializeDevice.
_UCMTCPCI_DEVICE_CONFIG Used in the client driver's call to UcmTcpciDeviceInitialize. Call UCMTCPCI_DEVICE_CONFIG_INIT to initialize this structure.
_UCMTCPCI_DRIVER_GLOBALS The global structure for the USB Type-C Port Controller Interface framework extension (UcmTcpciCx).
_UCMTCPCI_PORT_CONTROLLER_ALERT_DATA Contains information about hardware alerts received on the port controller object. This structure is used in the UcmTcpciPortControllerAlert call. Call UCMTCPCI_PORT_CONTROLLER_ALERT_DATA_INIT to initialize this structure.
_UCMTCPCI_PORT_CONTROLLER_CAPABILITIES Contains information about the capabilities of the port controller.
_UCMTCPCI_PORT_CONTROLLER_CONFIG Contains configuration options for the port controller object, passed by the client driver in the call to UcmTcpciPortControllerCreate. Call UCMTCPCI_PORT_CONTROLLER_CONFIG_INIT to initialize this structure.
_UCMTCPCI_PORT_CONTROLLER_IDENTIFICATION Contains identification information and USB specification version information (in BCD format) about the port controller.
_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_ENTERED_IN_PARAMS Stores information about the alternate mode that was detected. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_ENTERED request.
_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_EXITED_IN_PARAMS Stores information about the alternate mode that was exited. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_ALTERNATE_MODE_EXITED request.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_CONFIGURED_IN_PARAMS Stores information about the pin assignment of the DisplayPort alternate mode that was configured. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_CONFIGURED request.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED_IN_PARAMS Stores information about display out status of the DisplayPort connection. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED request.
_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_HPD_STATUS_CHANGED_IN_PARAMS Stores information about hot plug detect status of the DisplayPort connection. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_HPD_STATUS_CHANGED request.
_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_IN_PARAMS This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL request.
_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL_OUT_PARAMS Stores the values of all control registers of the port controller retrieved by the IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_CONTROL request.
_UCMTCPCI_PORT_CONTROLLER_GET_STATUS_IN_PARAMS This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_STATUS request.
_UCMTCPCI_PORT_CONTROLLER_GET_STATUS_OUT_PARAMS Stores the values of all status registers of the port controller. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_GET_STATUS request.
_UCMTCPCI_PORT_CONTROLLER_SET_COMMAND_IN_PARAMS Stores the specified command registers. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_COMMAND request.
_UCMTCPCI_PORT_CONTROLLER_SET_CONFIG_STANDARD_OUTPUT_IN_PARAMS Stores the value of the CONFIG_STANDARD_OUTPUT Register. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONFIG_STANDARD_OUTPUT request.
_UCMTCPCI_PORT_CONTROLLER_SET_CONTROL_IN_PARAMS Stores the values of all control registers. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONTROL request.
_UCMTCPCI_PORT_CONTROLLER_SET_MESSAGE_HEADER_INFO_IN_PARAMS Stores the value of the VBUS_VOLTAGE_ALARM_LO_CFG Register. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_MESSAGE_HEADER_INFO request.
_UCMTCPCI_PORT_CONTROLLER_SET_RECEIVE_DETECT_IN_PARAMS Stores the value of the RECEIVE_DETECT Register. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_RECEIVE_DETECT request.
_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT_BUFFER_IN_PARAMS Stores the value of the TRANSMIT_BUFFER Register. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT_BUFFER request.
_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT_IN_PARAMS Stores the values of TRANSMIT Register. This structure is used in the IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_TRANSMIT request.
_UCM_PD_POWER_DATA_OBJECT Describes a Power Data Object. For information about these members, see the Power Delivery specification.
_UCM_PD_REQUEST_DATA_OBJECT Describes a Request Data Object (RDO). For information about these members, see the Power Delivery specification.
_UCX_CONTROLLER_ACPI_INFORMATION This structure provides information about an advanced Configuration and power interface (ACPI) USB controller.
_UCX_CONTROLLER_CONFIG This structure configuration data for a USB controller.
_UCX_CONTROLLER_PCI_INFORMATION This structure provides information about a PCI USB controller.
_UCX_CONTROLLER_RESET_COMPLETE_INFO Contains information about the operation to reset the controller. This is used by the client driver in its EVT_UCX_CONTROLLER_RESET callback function.
_UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS Stores the transport characteristics at relevant points in time. This structure is used in the EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS callback function.
_UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS Defines flags for the transport characteristics changes. This structure is used in the EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION callback function.
_DEFAULT_ENDPOINT_UPDATE Contains the handle to the default endpoint to update in a framework request that is passed by UCX when it invokes EVT_UCX_DEFAULT_ENDPOINT_UPDATE callback function.
_ENDPOINT_RESET Describes information required to reset an endpoint. This structure is passed by UCX in the EVT_UCX_ENDPOINT_RESET callback function.
_ENDPOINTS_CONFIGURE Describes endpoints to enable or disable endpoints. This structure is passed by UCX in the EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE callback function.
_ENDPOINTS_CONFIGURE_FAILURE_FLAGS This structure provides failure flags to indicate errors, if any, that might have occurred during a request to an EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE callback function.
_UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS This structure provides a list of UCX default endpoint event callback functions.
_UCX_ENDPOINT_EVENT_CALLBACKS This structure provides a list of pointers to UCX endpoint event callback functions.
_UCX_ENDPOINT_CHARACTERISTIC Stores the characteristics of an endpoint.
_UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS Stores the isochronous transfer path delay values.
_CONTROLLER_USB_20_HARDWARE_LPM_FLAGS Describes supported protocol capabilities for Link Power Management (LPM) in as defined the USB 2.0 specification.
_HUB_INFO_FROM_PARENT Describes information about a hub from its parent device.
_PARENT_HUB_FLAGS This structure is used by the HUB_INFO_FROM_PARENT structure to get hub information from the parent.
_ROOTHUB_20PORT_INFO Provides information about a USB 2.0 root hub port. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_20PORT_INFO callback function.
_ROOTHUB_20PORTS_INFO This structure that has an array of 2.0 ports supported by the root hub. This structure is provided by UCX in a framework request in the EVT_UCX_ROOTHUB_GET_20PORT_INFO callback function.
_ROOTHUB_30PORT_INFO Provides information about a USB 3.0 root hub port. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_30PORT_INFO callback function.
_ROOTHUB_30PORT_INFO_EX Provides extended USB 3.0 port information about speed.
_ROOTHUB_30PORTS_INFO Provides information about USB 3.0 root hub ports. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_30PORT_INFO callback function.
_ROOTHUB_INFO Provides information about a USB root hub. This structure is passed by UCX in the EVT_UCX_ROOTHUB_GET_INFO callback function.
_UCX_ROOTHUB_CONFIG Contains pointers to event callback functions for creating the root hub by calling UcxRootHubCreate. Initialize this structure by calling UCX_ROOTHUB_CONFIG_INIT initialization function (see Ucxclass.h).
_STREAM_INFO This structure stores information about a stream associated with a bulk endpoint.
_ADDRESS0_OWNERSHIP_ACQUIRE Contains parameters for configuring the device.
_UCX_USBDEVICE_EVENT_CALLBACKS This structure provides a list of UCX USB device event callback functions.
_UCXUSBDEVICE_INFO Contains information about the USB device. This structure is passed by UCX in the EVT_UCX_CONTROLLER_USBDEVICE_ADD event callback function.
_USB_DEVICE_PORT_PATH Contains the port path of a USB device.
_USBDEVICE_ABORTIO Contains a handle for the Universal Serial Bus (USB) hub or device for which to abort data transfers.
_USBDEVICE_ADDRESS Contains parameters for a request to transition the specified device to the Addressed state. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_ADDRESS callback function.
_USBDEVICE_DISABLE Contains parameters for a request to disable the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_DISABLE callback function.
_USBDEVICE_ENABLE Contains parameters for a request to enable the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_ENABLE callback function.
_USBDEVICE_ENABLE_FAILURE_FLAGS The flags that are set by the client driver in the EVT_UCX_USBDEVICE_ENABLE callback function. Indicate errors, if any, that might have occurred while enabling the device.
_USBDEVICE_HUB_INFO Contains parameters for a request to get information about the specified hub. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_HUB_INFO callback function.
_USBDEVICE_MGMT_HEADER This structure provides a handle for the Universal Serial Bus (USB) hub or device physically connected to the bus.
_USBDEVICE_PURGEIO The USBDEVICE_PURGEIO structure contains the handle for the Universal Serial Bus (USB) hub or device to purge I/O for.
_USBDEVICE_RESET Contains parameters for a request to reset the specified device. This structure is passed by UCX in request parameters (Parameters.Others.Arg1) of a framework request object of the EVT_UCX_USBDEVICE_RESET callback function.
_USBDEVICE_STARTIO Contains a handle for the Universal Serial Bus (USB) hub or device on which to start data transfer.
_USBDEVICE_TREE_PURGEIO This structure provides the handle for the Universal Serial Bus (USB) device tree to purge I/O for.
_USBDEVICE_UPDATE Passed by UCX to update the specified device. This structure is in the request parameters (Parameters.Others.Arg1) of a framework request object passed in the EVT_UCX_USBDEVICE_UPDATE callback function.
_USBDEVICE_UPDATE_20_HARDWARE_LPM_PARAMETERS Contains parameters for a request to update USB 2.0 link power management (LPM). UCX passes this structure in the EVT_UCX_USBDEVICE_UPDATE callback function.
_USBDEVICE_UPDATE_FAILURE_FLAGS The flags that are set by the client driver in the EVT_UCX_USBDEVICE_UPDATE callback function. Indicate errors, if any, that might have occurred while updating the device.
_USBDEVICE_UPDATE_FLAGS Contains request flags set by UCX that is passed in the USBDEVICE_UPDATE structure when UCX invokes the client driver's EVT_UCX_USBDEVICE_UPDATE callback function.
_UCX_USBDEVICE_CHARACTERISTIC Stores the characteristics of an device.
_UCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY Stores the isochronous transfer path delay values.
_UDECX_ENDPOINTS_CONFIGURE_PARAMS Contains the configuration options specified by USB device emulation class extension (UdeCx) to the client driver when the class extension invokes EVT_UDECX_USB_DEVICE_ENDPOINTS_CONFIGURE.
_UDECX_USB_DEVICE_PLUG_IN_OPTIONS Contains the port numbers to which a virtual USB device is connected. Initialize this structure by calling the UDECX_USB_DEVICE_PLUG_IN_OPTIONS_INIT method.
_UDECX_USB_DEVICE_STATE_CHANGE_CALLBACKS Initializes a UDECX_USB_DEVICE_STATE_CHANGE_CALLBACKS structure with pointers to callback functions that are implemented by a UDE client for a virtual USB device.
_UDECX_USB_ENDPOINT_INIT_AND_METADATA Contains the descriptors supported by an endpoint of a virtual USB device.
_UDECX_USB_ENDPOINT_CALLBACKS Contains function pointers to endpoint callback functions implemented by the UDE client driver. Initialize this structure by calling UDECX_USB_ENDPOINT_CALLBACKS_INIT.
_UDECX_WDF_DEVICE_CONFIG Contains pointers to event callback functions implemented by the UDE client driver for a USB host controller. Initialize this structure by calling UDECX_WDF_DEVICE_CONFIG_INIT.
_UFX_DEVICE_CAPABILITIES The UFX_DEVICE_CAPABILITIES structure is used USB to define properties of the Universal Serial Bus (USB) device created by the controller.
_UFX_HARDWARE_FAILURE_CONTEXT The UFX_HARDWARE_FAILURE_CONTEXT structure is used to define controller-specific hardware failure properties.
_UFX_DEVICE_CALLBACKS The UFX_DEVICE_CALLBACKS structure is used to define then event callback functions supported by the client driver.
_UFX_ENDPOINT_CALLBACKS The UFX_ENDPOINT_CALLBACKS structure is used to define then event callback functions supported by the client driver.
_UFX_INTERFACE_PROPRIETARY_CHARGER Stores pointers to driver-implemented callback functions for handling proprietary charger operations.
_UFX_PROPRIETARY_CHARGER Describes the proprietary charger's device power requirements.
_URS_CONFIG Contains pointers to event callback functions implemented by the URS client driver for a USB dual-role controller. Initialize this structure by calling URS_CONFIG_INIT.
_URB The URB structure is used by USB client drivers to describe USB request blocks (URBs) that send requests to the USB driver stack. The URB structure defines a format for all possible commands that can be sent to a USB device.
_URB_BULK_OR_INTERRUPT_TRANSFER The _URB_BULK_OR_INTERRUPT_TRANSFER structure is used by USB client drivers to send or receive data on a bulk pipe or on an interrupt pipe.
_URB_CONTROL_DESCRIPTOR_REQUEST The _URB_CONTROL_DESCRIPTOR_REQUEST structure is used by USB client drivers to get or set descriptors on a USB device.
_URB_CONTROL_FEATURE_REQUEST The _URB_CONTROL_FEATURE_REQUEST structure is used by USB client drivers to set or clear features on a device, interface, or endpoint.
_URB_CONTROL_GET_CONFIGURATION_REQUEST The _URB_CONTROL_GET_CONFIGURATION_REQUEST structure is used by USB client drivers to retrieve the current configuration for a device.
_URB_CONTROL_GET_INTERFACE_REQUEST The _URB_CONTROL_GET_INTERFACE_REQUEST structure is used by USB client drivers to retrieve the current alternate interface setting for an interface in the current configuration.
_URB_CONTROL_GET_STATUS_REQUEST The _URB_CONTROL_GET_STATUS_REQUEST structure is used by USB client drivers to retrieve status from a device, interface, endpoint, or other device-defined target.
_URB_CONTROL_TRANSFER The _URB_CONTROL_TRANSFER structure is used by USB client drivers to transfer data to or from a control pipe.
_URB_CONTROL_TRANSFER_EX The _URB_CONTROL_TRANSFER_EX structure is used by USB client drivers to transfer data to or from a control pipe, with a timeout that limits the acceptable transfer time.
_URB_CONTROL_VENDOR_OR_CLASS_REQUEST The _URB_CONTROL_VENDOR_OR_CLASS_REQUEST structure is used by USB client drivers to issue a vendor or class-specific command to a device, interface, endpoint, or other device-defined target.
_URB_GET_CURRENT_FRAME_NUMBER The _URB_GET_CURRENT_FRAME_NUMBER structure is used by USB client drivers to retrieve the current frame number.
_URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS The _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS structure is used by USB client drivers to retrieve delays associated with isochronous transfer programming in the host controller and transfer completion so that the client driver can ensure that the device gets the isochronous packets in time.
_URB_HEADER The _URB_HEADER structure is used by USB client drivers to provide basic information about the request being sent to the host controller driver.
_URB_ISOCH_TRANSFER The _URB_ISOCH_TRANSFER structure is used by USB client drivers to send data to or retrieve data from an isochronous transfer pipe.
_URB_OPEN_STATIC_STREAMS The _URB_OPEN_STATIC_STREAMS structure is used by a USB client driver to open streams in the specified bulk endpoint.
_URB_OS_FEATURE_DESCRIPTOR_REQUEST The _URB_OS_FEATURE_DESCRIPTOR_REQUEST structure is used by the USB hub driver to retrieve Microsoft OS Feature Descriptors from a USB device or an interface on a USB device.
_URB_PIPE_REQUEST The _URB_PIPE_REQUEST structure is used by USB client drivers to clear a stall condition on an endpoint.
_URB_SELECT_CONFIGURATION The _URB_SELECT_CONFIGURATION structure is used by client drivers to select a configuration for a USB device.
_URB_SELECT_INTERFACE The _URB_SELECT_INTERFACE structure is used by USB client drivers to select an alternate setting for an interface or to change the maximum packet size of a pipe in the current configuration on a USB device.
_USBD_ENDPOINT_OFFLOAD_INFORMATION Stores xHCI-specific information that is used by client drivers to transfer data to and from the offloaded endpoints.
_USBD_INTERFACE_INFORMATION The USBD_INTERFACE_INFORMATION structure holds information about an interface for a configuration on a USB device.
_USBD_ISO_PACKET_DESCRIPTOR The USBD_ISO_PACKET_DESCRIPTOR structure is used by USB client drivers to describe an isochronous transfer packet.
_USBD_PIPE_INFORMATION The USBD_PIPE_INFORMATION structure is used by USB client drivers to hold information about a pipe from a specific interface.
_USBD_STREAM_INFORMATION The USBD_STREAM_INFORMATION structure stores information about a stream associated with a bulk endpoint.
_USBD_VERSION_INFORMATION The USBD_VERSION_INFORMATION structure is used by the GetUSBDIVersion function to report its output data.
_USB_BUS_INFORMATION_LEVEL_0 The USB_BUS_INFORMATION_LEVEL_0 structure is used in conjunction with the QueryBusInformation interface routine to report information about the bus.
_USB_BUS_INFORMATION_LEVEL_1 The USB_BUS_INFORMATION_LEVEL_1 structure is used in conjunction with the QueryBusInformation interface routine to report information about the bus.
_USB_BUS_INTERFACE_USBDI_V0 The USB_BUS_INTERFACE_USBDI_V0 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.
_USB_BUS_INTERFACE_USBDI_V1 The USB_BUS_INTERFACE_USBDI_V1 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.
_USB_BUS_INTERFACE_USBDI_V2 The USB_BUS_INTERFACE_USBDI_V2 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.
_USB_BUS_INTERFACE_USBDI_V3 The USB_BUS_INTERFACE_USBDI_V3 structure is provided by the USB hub driver to allow USB clients to make direct calls to the hub driver without allocating IRPs.
_USBC_DEVICE_CONFIGURATION_INTERFACE_V1 The USBC_DEVICE_CONFIGURATION_INTERFACE_V1 structure is exposed by the vendor-supplied filter drivers to assist the USB generic parent driver in defining interface collections.
_USBC_FUNCTION_DESCRIPTOR The USBC_FUNCTION_DESCRIPTOR structure describes a USB function and its associated interface collection.
_COMPOSITE_DEVICE_CAPABILITIES The COMPOSITE_DEVICE_CAPABILITIES structure specifies the capabilities of the driver of a USB multi-function device (composite driver). To initialize the structure, use the COMPOSITE_DEVICE_CAPABILITIES_INIT macro.
_REGISTER_COMPOSITE_DEVICE The REGISTER_COMPOSITE_DEVICE structure is used with the IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE I/O control request to register a parent driver of a Universal Serial Bus (USB) multi-function device (composite driver) with the USB driver stack.
_REQUEST_REMOTE_WAKE_NOTIFICATION The purpose of the REQUEST_REMOTE_WAKE_NOTIFICATION structure is to specify input parameters for the IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION I/O control request.
_USBD_INTERFACE_LIST_ENTRY The USBD_INTERFACE_LIST_ENTRY structure is used by USB client drivers to create an array of interfaces to be inserted into a configuration request.
_USBFN_INTERFACE_ATTACH Stores pointers to driver-implemented callback functions for handling attach and detach operations.
_USBFN_ON_ATTACH Describes the detected port type and attach action.
_ALTERNATE_INTERFACE The ALTERNATE_INTERFACE structure provides information about alternate settings for a Universal Serial Bus (USB) interface.
_USBFN_BUS_CONFIGURATION_INFO Configuration packet that stores information about an available USB configuration.
_USBFN_CLASS_INFORMATION_PACKET Describes device interface class information associated with a USB interface. This structure can only hold information about a single function interface.
_USBFN_CLASS_INFORMATION_PACKET_EX Describes device interface class information associated with a USB interface. This structure can be used to describe single and multi-interface functions.
_USBFN_CLASS_INTERFACE Describes an interface and its endpoints.
_USBFN_CLASS_INTERFACE_EX Describes an interface and its endpoints.
_USBFN_INTERFACE_INFO Describes an interface and its endpoints.
_USBFN_NOTIFICATION Describes information about a Universal Serial Bus (USB) event notification that was received by using IOCTL_INTERNAL_USBFN_BUS_EVENT_NOTIFICATION.
_USBFN_PIPE_INFORMATION Describes attributes of a pipe associated with an endpoint on a specific interface.
_USBFN_USB_STRING Describes a USB string descriptor and the associated string index.
_USBFN_POWER_FILTER_STATE Reserved. Do not use.
_HUB_DEVICE_CONFIG_INFO_V1 The HUB_DEVICE_CONFIG_INFO structure is used in conjunction with the kernel-mode IOCTL, IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO to request to report information about a USB device and the hub to which the device is attached.
_USB_CYCLE_PORT_PARAMS The USB_CYCLE_PORT_PARAMS structure is used with the IOCTL_USB_HUB_CYCLE_PORT I/O control request to power cycle the port that is associated with the PDO that receives the request.
_USB_DESCRIPTOR_REQUEST The USB_DESCRIPTOR_REQUEST structure is used with the IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION I/O control request to retrieve one or more descriptors for the device that is associated with the indicated connection index.
_USB_DEVICE_CHARACTERISTICS Contains information about the USB device’s characteristics, such as the maximum send and receive delays for any request. This structure is used in the IOCTL_USB_GET_DEVICE_CHARACTERISTICS request.
_USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION Stores the frame and microframe numbers and the calculated system QPC values. This structure is used in the IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC request.
_USB_HCD_DRIVERKEY_NAME The USB_HCD_DRIVERKEY_NAME structure is used with the IOCTL_GET_HCD_DRIVERKEY_NAME I/O control request to retrieve the driver key in the registry for the USB host controller driver.
_USB_HUB_CAP_FLAGS The USB_HUB_CAP_FLAGS structure is used to report the capabilities of a hub.
_USB_HUB_CAPABILITIES The USB_HUB_CAPABILITIES structure has been deprecated. Use USB_HUB_CAPABILITIES_EX instead.
_USB_HUB_CAPABILITIES_EX The USB_HUB_CAPABILITIES_EX structure is used with the IOCTL_USB_GET_HUB_CAPABILITIES I/O control request to retrieve the capabilities of a particular USB hub.
_USB_HUB_INFORMATION The USB_HUB_INFORMATION structure contains information about a hub.
_USB_HUB_INFORMATION_EX The USB_HUB_INFORMATION_EX structure is used with the IOCTL_USB_GET_HUB_INFORMATION_EX I/O control request to retrieve information about a Universal Serial Bus (USB) hub.
_USB_HUB_NAME The USB_HUB_NAME structure stores the hub's symbolic device name.
_USB_ID_STRING The USB_ID_STRING structure is used to store a string or multi-string.
_USB_MI_PARENT_INFORMATION The USB_MI_PARENT_INFORMATION structure contains information about a composite device.
_USB_NODE_CONNECTION_ATTRIBUTES The USB_NODE_CONNECTION_ATTRIBUTES structure is used with the IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES I/O control request to retrieve the attributes of a connection.
_USB_NODE_CONNECTION_DRIVERKEY_NAME The USB_NODE_CONNECTION_DRIVERKEY_NAME structure is used with the IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME I/O control request to retrieve the driver key name for the device that is connected to the indicated port.
_USB_NODE_CONNECTION_INFORMATION The USB_NODE_CONNECTION_INFORMATION structure is used with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION request to retrieve information about a USB port and connected device.
_USB_NODE_CONNECTION_INFORMATION_EX The USB_NODE_CONNECTION_INFORMATION_EX structure is used in conjunction with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX request to obtain information about the connection associated with the indicated USB port.
_USB_NODE_CONNECTION_INFORMATION_EX_V2 The USB_NODE_CONNECTION_INFORMATION_EX_V2 structure is used with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O control request to retrieve speed information about a Universal Serial Bus (USB) device that is attached to a particular port.
_USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS The USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS union is used to indicate the speed at which a USB 3.0 device is currently operating and whether it can operate at higher speed, when attached to a particular port.
_USB_NODE_CONNECTION_NAME The USB_NODE_CONNECTION_NAME structure is used with the IOCTL_USB_GET_NODE_CONNECTION_NAME I/O control request to retrieve the symbolic link of the downstream hub that is attached to the port.
_USB_NODE_INFORMATION The USB_NODE_INFORMATION structure is used with the IOCTL_USB_GET_NODE_INFORMATION I/O control request to retrieve information about a parent device.
_USB_PIPE_INFO The USB_PIPE_INFO structure is used in conjunction with the USB_NODE_CONNECTION_INFORMATION_EX structure and the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX request to obtain information about a connection and its associated pipes.
_USB_PORT_CONNECTOR_PROPERTIES The USB_PORT_CONNECTOR_PROPERTIES structure is used with the IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O control request to retrieve information about a port on a particular SuperSpeed hub.
_USB_PORT_PROPERTIES The USB_PORT_PROPERTIES union is used to report the capabilities of a Universal Serial Bus (USB) port.The port capabilities are retrieved in the USB_PORT_CONNECTOR_PROPERTIES structure by the IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O control request.
_USB_PROTOCOLS The USB_PROTOCOLS union is used to report the Universal Serial Bus (USB) signaling protocols that are supported by the port.
_USB_ROOT_HUB_NAME The USB_ROOT_HUB_NAME structure stores the root hub's symbolic device name.
_USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION The input and output buffer for the IOCTL_USB_START_TRACKING_FOR_TIME_SYNC request.
_USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION The input buffer for the IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC request.
_USB_TOPOLOGY_ADDRESS The USB_TOPOLOGY_ADDRESS structure is used with the IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS I/O request to retrieve information about a USB device?s location in the USB device tree.
_USB_TRANSPORT_CHARACTERISTICS Stores the transport characteristics at relevant points in time. This structure is used in the IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS request.
_USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION Contains registration information filled when the IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE request completes.
_USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION Contains registration information for the IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE request.
_USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION Contains unregistration information for the IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE request.
_USB_30_HUB_DESCRIPTOR The USB_30_HUB_DESCRIPTOR structure contains a SuperSpeed hub descriptor. For information about the structure members, see Universal Serial Bus Revision 3.0 Specification, 10.13.2.1 Hub Descriptor, Table 10-3. SuperSpeed Hub Descriptor.
_USB_COMMON_DESCRIPTOR The USB_COMMON_DESCRIPTOR structure contains the head of the first descriptor that matches the search criteria in a call to USBD_ParseDescriptors.
_USB_CONFIGURATION_DESCRIPTOR The USB_CONFIGURATION_DESCRIPTOR structure is used by USB client drivers to hold a USB-defined configuration descriptor.
_USB_DEVICE_DESCRIPTOR The USB_DEVICE_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined device descriptor.
_USB_DEVICE_QUALIFIER_DESCRIPTOR The USB_DEVICE_QUALIFIER_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined device qualifier descriptor.
_USB_ENDPOINT_DESCRIPTOR The USB_ENDPOINT_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined endpoint descriptor.
_USB_HUB_DESCRIPTOR The USB_HUB_DESCRIPTOR structure contains a hub descriptor.
_USB_INTERFACE_DESCRIPTOR The USB_INTERFACE_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined interface descriptor.
_USB_STRING_DESCRIPTOR The USB_STRING_DESCRIPTOR structure is used by USB client drivers to hold a USB-defined string descriptor.
_USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR The USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR structure is used by USB client drivers to retrieve a USB-defined SuperSpeed Endpoint Companion descriptor. For more information, see section 9.6.7 and Table 9-20 in the official USB 3.0 specification.
_USBPM_ASSIGN_CONNECTOR_POWER_LEVEL_PARAMS Describes the parameters for the UsbPm_AssignConnectorPowerLevel.
_USBPM_CLIENT_CONFIG The configuration structure used in the registering the client driver with the Policy Manager
_USBPM_CLIENT_CONFIG_EXTRA_INFO Contains optional information used to configure the client driver's registration.
_USBPM_CONNECTOR_PROPERTIES Describes the properties of a connector.
_USBPM_CONNECTOR_STATE Describes the state of a connector.
_USBPM_EVENT_CALLBACK_PARAMS Contains the details of the events related to changes in policy manager arrival/removal, hub arrival/removal or connector state change.
_USBPM_HUB_CONNECTOR_HANDLES Stores the connector handles for all connectors on a hub.
_USBPM_HUB_PROPERTIES Properties of a connector hub.
_UCMUCSI_DEVICE_CONFIG Configuration structure for UcmUcsiDeviceInitialize.
_UCMUCSI_DRIVER_GLOBALS Reserved.
_UCMUCSI_CONNECTOR_INFO Stores information about connectors that cannot be obtained by sending UCSI commands such as “Get Connector Capability”.
_UCMUCSI_PPM_CONFIG Stores configuration information required to create a Platform Policy Manager (PPM).
_UCMUCSI_PPM_GET_UCSI_DATA_BLOCK_IN_PARAMS Contains a USCI data block for input to IOCTL_UCMUCSI_PPM_GET_UCSI_DATA_BLOCK.
_UCMUCSI_PPM_GET_UCSI_DATA_BLOCK_OUT_PARAMS Contains a USCI data block for output to IOCTL_UCMUCSI_PPM_GET_UCSI_DATA_BLOCK.
_UCMUCSI_PPM_SEND_UCSI_DATA_BLOCK_IN_PARAMS Contains a USCI data block for input to IOCTL_UCMUCSI_PPM_SEND_UCSI_DATA_BLOCK.
_UCSI_ACK_CC_CI_COMMAND Used in the ACK_CC_CI command. See Table 4-7.
_UCSI_ALTERNATE_MODE Used in GET_ALTERNATE_MODES command. See Table 4-26.
_UCSI_BM_POWER_SOURCE Used in GET_CAPABILITY command. See Bit 15:8 in Table 4-14.
_UCSI_CCI Used in GET_CONNECTOR_CAPABILITY command. See Table 4-16.
_UCSI_CONNECTOR_RESET_COMMAND Used in the CONNECTOR_RESET command. See Table 4-5.
_UCSI_CONTROL Used in the SET_NOTIFICATION_ENABLE command. See Table 4-9.
_UCSI_DATA_BLOCK The data structures for memory locations. See Section 3.
_UCSI_GET_ALTERNATE_MODES_COMMAND Used in the GET_ALTERNATE_MODES command. See Table 4-24.
_UCSI_GET_ALTERNATE_MODES_IN Used in the GET_ALTERNATE_MODES command. See Table 4-24.
_UCSI_GET_CABLE_PROPERTY_COMMAND Used in the GET_CABLE_PROPERTY command. See Table 4-37.
_UCSI_GET_CABLE_PROPERTY_IN Used in the GET_CABLE_PROPERTY command. See Table 4-39.
_UCSI_GET_CAM_SUPPORTED_COMMAND Used in the GET_CAM_SUPPORTED command. See Table 4-27.
_UCSI_GET_CAM_SUPPORTED_IN Used in the GET_CAM_SUPPORTED command. See Table 4-27.
_UCSI_GET_CAPABILITY_IN Used in the GET_CAPABILITY command. See Table 4-13.
_UCSI_GET_CONNECTOR_CAPABILITY_COMMAND Used in the GET_CONNECTOR_CAPABILITY command. See Table 4-15.
_UCSI_GET_CONNECTOR_CAPABILITY_IN Used in the GET_CONNECTOR_CAPABILITY command. See Table 4-17.
_UCSI_GET_CONNECTOR_STATUS_COMMAND Used in the GET_CONNECTOR_STATUS command. See Table 4-40.
_UCSI_GET_CONNECTOR_STATUS_IN Used in the GET_CONNECTOR_STATUS command. See Table 4-42.
_UCSI_GET_CURRENT_CAM_COMMAND Used in the GET_CURRENT_CAM command. See Table 4-29.
_UCSI_GET_CURRENT_CAM_IN Used in the GET_CURRENT_CAM command. See Table 4-31.
_UCSI_GET_ERROR_STATUS_COMMAND Used in the GET_ERROR_STATUS command. See Table 4-45
_UCSI_GET_ERROR_STATUS_IN Used in the GET_ERROR_STATUS command. See Table 4-47.
_UCSI_GET_PDOS_COMMAND Used in the GET_PDOS command. See Table 4-34.
_UCSI_GET_PDOS_IN Used in the GET_PDOS command. See Table 4-36.
_UCSI_MESSAGE_IN The MESSAGE IN data structure. See Section 3.4.
_UCSI_MESSAGE_OUT The MESSAGE OUT data structure. See Section 3.5.
_UCSI_SET_NEW_CAM_COMMAND Used in the SET_NEW_CAM command. See Table 4-32.
_UCSI_SET_NOTIFICATION_ENABLE_COMMAND Used in the SET_NOTIFICATION_ENABLE command. See Table 4-9.
_UCSI_SET_PDM_COMMAND Obsolete.
_UCSI_SET_PDR_COMMAND Used in the SET_PDR command. See Table 4-22.
_UCSI_SET_POWER_LEVEL_COMMAND Used in the SET_POWER_LEVEL command. See Table 4-48.
_UCSI_SET_UOM_COMMAND Used in the SET_UOM command. See Table 4-18.
_UCSI_SET_UOR_COMMAND Used in the SET_UOR command. See Table 4-20.
_UCSI_VERSION The VERSION data structure. See Section 3.1.