IOCTL_INTERNAL_USB_SUBMIT_URB IOCTL (usbioctl.h)

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.

Major code

IRP_MJ_INTERNAL_DEVICE_CONTROL

Input buffer

Parameters.Others.Argument1 points to the URB, a variable-length structure. The UrbHeader.Function member of the URB specifies the URB type. The length of URB, as well as the meaning of any additional members depends on the value of UrbHeader.Function. See URB for details.

Input buffer length

The UrbHeader.Length member specifies the size in bytes of the URB.

Output buffer

Parameters.Others.Argument1 points to the URB structure. The UrbHeader.Status contains a USB status code for the requested operation. Any additional output depends on the UrbHeader.Function member of the URB submitted. See URB for details.

Output buffer length

The UrbHeader.Length member specifies the size in bytes of the URB.

Status block

The lower-level drivers will set Irp->IoStatus.Status to STATUS_SUCCESS if the URB can be successfully processed. Otherwise, the bus driver will set it to the appropriate error condition, such as STATUS_INVALID_PARAMETER, or STATUS_INSUFFICIENT_RESOURCES.

Requirements

Requirement Value
Header usbioctl.h (include Usbioctl.h)

See also

URB