// usbioctl.h
// CTL_CODE(0x0022, 0x111, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_USB_HUB_CYCLE_PORT 0x00220444
View the official Windows Driver Kit DDI referenceNo description available.
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_HUB_CYCLE_PORT is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB).
The AssociatedIrp.SystemBuffer member points to a caller-allocated USB_CYCLE_PORT_PARAMS structure that specifies the port number.
The size of a USB_CYCLE_PORT_PARAMS structure.
None.
None.
The USB stack sets Irp->IoStatus.Status to STATUS_SUCCESS if the request is successful. Otherwise, the USB stack sets Status to the appropriate error condition, such as STATUS_INVALID_PARAMETER or STATUS_INSUFFICIENT_RESOURCES.
You can also power cycle the port by using the Device Manager's Enable/Disable feature. This feature causes the bus driver to reset the device. Alternatively, you can use DevCon to enable or disable the device.
The executable for DevCon can be found in the <install_path>\WinDDK\build_number\tools\devcon\<arch>\devcon.exe folder.