IOCTL_USB_USER_REQUEST - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// usbuser.h

// CTL_CODE(0x0022, 0x10e, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_USB_USER_REQUEST 0x00220438
View the official Win32 API reference

NtDoc

No description available.

Win32 API reference (ni-usbuser-ioctl_usb_user_request)

IOCTL_USB_USER_REQUEST IOCTL

Description

The IOCTL_USB_USER_REQUEST I/O control request is available to both user-mode applications and kernel-mode drivers.

IOCTL_USB_USER_REQUEST is a user-mode I/O control request. This request targets the USB host controller (GUID_DEVINTERFACE_USB_HOST_CONTROLLER).

Callers can specify any of the following request codes:

USBUSER_CLEAR_ROOTPORT_FEATURE

Do not use this request.

USBUSER_GET_CONTROLLER_DRIVER_KEY

Reports the host controller driver key in a USB_UNICODE_NAME-typed Unicode string. This request is always enabled.

USBUSER_GET_CONTROLLER_INFO_0

Retrieves a USB_CONTROLLER_INFO_0 structure that describes the host controller. This request is always enabled.

USBUSER_GET_ROOTPORT_STATUS

Do not use this request.

USBUSER_GET_ROOTHUB_SYMBOLIC_NAME

Reports the root hub symbolic name in a USB_UNICODE_NAME-typed Unicode string. This request is always enabled.

USBUSER_INVALID_REQUEST

Do not use this request.

USBUSER_OP_CLOSE_RAW_DEVICE

Do not use this request.

USBUSER_OP_OPEN_RAW_DEVICE

Do not use this request.

USBUSER_OP_MASK_DEVONLY_API

Do not use this request.

USBUSER_OP_MASK_HCTEST_API

Do not use this request.

USBUSER_OP_RAW_RESET_PORT

Do not use this request.

USBUSER_OP_SEND_ONE_PACKET

Do not use this request.

USBUSER_OP_SEND_RAW_COMMAND

Do not use this request.

USBUSER_SET_ROOTPORT_FEATURE

Do not use this request.

USBUSER_PASS_THRU

Sends a vendor specific command that is defined by the USB_PASS_THRU_PARAMETERS structure to the host controller miniport driver. This request is always enabled.

USBUSER_GET_BANDWIDTH_INFORMATION

Retrieves a USB_BANDWIDTH_INFO structure that contains information about the allocated bandwidth. This request is always enabled.

USBUSER_GET_POWER_STATE_MAP

Retrieves a USB_POWER_INFO structure that contains information about the power state of the host controller and root hubs. This request is always enabled.

USBUSER_GET_BUS_STATISTICS_0

Retrieves a USB_BUS_STATISTICS_0 structure that contains bus statistics. This request is always enabled.

USBUSER_GET_BUS_STATISTICS_0_AND_RESET

Do not use this request.

USBUSER_GET_USB_DRIVER_INFORMATION

Retrieves a USB_DRIVER_VERSION_PARAMETERS structure that indicates the version of the driver, USB stack, and associated interfaces. This request is always enabled.

USBUSER_GET_USB2_HW_VERSION

Do not use this request.

Parameters

Input buffer

The buffer at Irp->AssociatedIrp.SystemBuffer contains a user request header structure (USBUSER_REQUEST_HEADER) that defines the request. Following the header structure is a structure that holds the parameters of the request. For more information about the parameter structures that correspond to each request, see the description of each request.

Input buffer length

The size of a USBUSER_REQUEST_HEADER structure.

Output buffer

A parameter structure immediately follows the USBUSER_REQUEST_HEADER structure at Irp->AssociatedIrp.SystemBuffer. For some user requests, the parameter structure will contain output data when the request completes.

Output buffer length

The length of the parameter structure.

Input/output buffer

Input/output buffer length

Status block

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.

See also

USBUSER_REQUEST_HEADER

USB_BANDWIDTH_INFO

USB_CONTROLLER_INFO_0

USB_DRIVER_VERSION_PARAMETERS

USB_PASS_THRU_PARAMETERS

USB_POWER_INFO

USB_UNICODE_NAME