IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME IOCTL

The IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME I/O control request retrieves the driver registry key name that is associated with the device that is connected to the indicated port.

IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME is a user-mode I/O control request. This request targets the USB hub device (GUID_DEVINTERFACE_USB_HUB).

Major Code

IRP_MJ_DEVICE_CONTROL

Input Buffer

The AssociatedIrp.SystemBuffer member points to a user-allocated USB_NODE_CONNECTION_DRIVERKEY_NAME structure. On input, the ConnectionIndex member of this structure contains the number of the port that the device is connected to.

Input Buffer Length

The size of a USB_NODE_CONNECTION_DRIVERKEY_NAME structure.

Output Buffer

On output, the DriverKeyName member of the USB_NODE_CONNECTION_DRIVERKEY_NAME structure at AssociatedIrp.SystemBuffer contains the driver key name that is associated with the device that is connected to the port that is indicated by ConnectionIndex.

The ActualLength member indicates the length, in bytes, of the driver key name. The Parameters.DeviceIoControl.OutputBufferLength member indicates the size, in bytes, of the entire USB_NODE_CONNECTION_DRIVERKEY_NAME structure.

Output Buffer Length

The size of a USB_NODE_CONNECTION_DRIVERKEY_NAME structure.

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.

If the caller allocates an output buffer that is large enough to hold all of the output data, IoStatus.Information will be equal to the value of ActualLength. If the output buffer is large enough to hold all of the output data, IoStatus.Information will be equal to sizeof(USB_NODE_CONNECTION_DRIVERKEY_NAME).

Requirements

   
Header usbioctl.h (include Usbioctl.h)

See Also

USB_NODE_CONNECTION_DRIVERKEY_NAME