IOCTL_USB_HUB_CYCLE_PORT control code
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 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.
IOCTL_USB_HUB_CYCLE_PORT is not supported on Windows Vista and later versions of the operating system. Instead, use 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.
|Supported on Windows 8 if the caller is running as Administrator. Supported on Microsoft Windows Server 2003, Windows XP, and Windows 2000. Not supported on Windows 7, Windows Vista, and Windows Server 2008.|