USB desktop application programming reference
TOC
Collapse the table of content
Expand the table of content

USB desktop application programming reference

The topics in this section describe the four types of routines exposed by the Microsoft-provided USB driver stack.

WinUSB Functions

This section describes the following functions, exposed by Winusb.dll, which user-mode client drivers and applications can use to communicate with USB devices.

Note  WinUSB functions require Windows XP or later. You can use these functions in your C/C++ application to communicate with your USB device. Microsoft does not provide a managed API for WinUSB.

RoutineDescription
WinUsb_AbortPipe Aborts all of the pending transfers for a pipe.
WinUsb_ControlTransfer Transmits control data over a default control endpoint.
WinUsb_FlushPipe Discards any data that is cached in a pipe.
WinUsb_Free Releases all of the resources that WinUsb_Initialize allocated.
WinUsb_GetAdjustedFrameNumber Computes what the current USB frame number should be based on the frame number value and timestamp.
WinUsb_GetAssociatedInterface Retrieves a handle for an associated interface.
WinUsb_GetCurrentAlternateSetting Gets the current alternate interface setting for an interface.
WinUsb_GetCurrentFrameNumber Gets the current frame number for the bus.
WinUsb_GetDescriptor Gets the requested descriptor.
WinUsb_GetOverlappedResult Retrieves the results of an overlapped operation on the specified file.
WinUsb_GetPipePolicy Gets the policy for a specific pipe (endpoint).
WinUsb_GetPowerPolicy Gets the power policy for a device.
WinUsb_Initialize Creates a WinUSB handle for the device specified by a file handle.
WinUsb_QueryDeviceInformation Retrieves information about the physical device that is associated with a WinUSB handle.
WinUsb_QueryInterfaceSettings Retrieves the interface descriptor for the specified alternate interface settings for a particular interface handle.
WinUsb_QueryPipe Retrieves information about a pipe that is associated with an interface.
WinUsb_QueryPipeEx Retrieves extended information about a pipe that is associated with an interface. This contains information about isochronous pipe intervals.
WinUsb_ReadIsochPipeAsap Reads data from an isochronous OUT endpoint.
WinUsb_ReadPipe Reads data from the specified pipe.
WinUsb_RegisterIsochBuffer Registers a buffer to be used for isochronous transfers.
WinUsb_ResetPipe Resets the data toggle and clears the stall condition on a pipe.
WinUsb_ReadIsochPipe Reads data from an isochronous OUT endpoint.
WinUsb_SetCurrentAlternateSetting Sets the alternate setting of an interface.
WinUsb_SetPipePolicy Sets the policy for a specific pipe (endpoint).
WinUsb_SetPowerPolicy Sets the power policy for a device.
WinUsb_UnregisterIsochBuffer Releases all of the resources that previously allocated. This is a synchronous operation.
WinUsb_WriteIsochPipeAsap Writes the contents of a buffer to an isochronous OUT endpoint.
WinUsb_WriteIsochPipe Writes the contents of a caller-supplied buffer to an isochronous OUT endpoint, starting on a specified frame number.
WinUsb_WritePipe Writes data to a pipe.

 

User-Mode IOCTLs sent by applications and services

USB client drivers receive these user-mode I/O control requests at the kernel level:

I/O RequestDescriptionDevice interface GUID
IOCTL_GET_HCD_DRIVERKEY_NAME Retrieves the driver key name in the registry for a USB host controller driver.GUID_DEVINTERFACE_USB_HOST_CONTROLLER
IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION Retrieves one or more descriptors for the device that is associated with the indicated port index.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_HUB_CAPABILITIES_EX Retrieves the capabilities of a USB hub.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_HUB_INFORMATION_EX Retrieves information about a particular USB hub type, its descriptor, and indicates the number of ports on the hub.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 Retrieves speed information about a USB device attached to a particular port. GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES Retrieves the Microsoft-extended port attributes for a specific port. GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME Retrieves the driver registry key name that is associated with the device that is connected to the indicated port. GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION Retrieves information about the indicated USB port and the device that is attached to the port, if there is one.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX Retrieves information about a USB port and the device that is attached to the port, if there is one.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_NAME Retrieves the symbolic link name of the hub that is attached to the downstream port.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_INFORMATION Retrieves information about a parent device.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX Retrieves information about a USB port and the device that is attached to the port if there is one.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES Retrieves information about a specific port on a USB hub.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_GET_ROOT_HUB_NAME Retrieves the symbolic link name of the root hub.GUID_DEVINTERFACE_USB_HOST_CONTROLLER
IOCTL_USB_HUB_CYCLE_PORT Power cycles the port that is associated with the PDO that receives the request.GUID_DEVINTERFACE_USB_HUB
IOCTL_USB_USER_REQUEST Available to both user-mode applications and kernel-mode drivers. GUID_DEVINTERFACE_USB_HOST_CONTROLLER

 

Deprecated and Reserved USB IOCTLs

The following I/O requests have been deprecated or reserved for internal use. USB client drivers must not use these I/O requests:

Related topics

USB Reference

 

 

Send comments about this topic to Microsoft

Show:
© 2016 Microsoft