USB_NODE_CONNECTION_INFORMATION structure (usbioctl.h)

The USB_NODE_CONNECTION_INFORMATION structure is used with the IOCTL_USB_GET_NODE_CONNECTION_INFORMATION request to retrieve information about a USB port and connected device.

Syntax

typedef struct _USB_NODE_CONNECTION_INFORMATION {
  ULONG                 ConnectionIndex;
  USB_DEVICE_DESCRIPTOR DeviceDescriptor;
  UCHAR                 CurrentConfigurationValue;
  BOOLEAN               LowSpeed;
  BOOLEAN               DeviceIsHub;
  USHORT                DeviceAddress;
  ULONG                 NumberOfOpenPipes;
  USB_CONNECTION_STATUS ConnectionStatus;
  USB_PIPE_INFO         PipeList[0];
} USB_NODE_CONNECTION_INFORMATION, *PUSB_NODE_CONNECTION_INFORMATION;

Members

ConnectionIndex

A value that is greater than or equal to 1 that specifies the number of the port.

DeviceDescriptor

A USB_DEVICE_DESCRIPTOR structure that reports the USB device descriptor that is returned by the attached device during enumeration.

CurrentConfigurationValue

Contains the ID used with the SetConfiguration request to specify that current configuration of the device connected to the indicated port. For an explanation of this value, see section 9.4.7 in the Universal Serial Bus 3.1 Specification available at USB Document Library.

LowSpeed

A Boolean value that indicates whether the port and its connected device are operating at low speed. TRUE indicates that the port and its connected device are currently operating at a low speed. FALSE indicates otherwise.

DeviceIsHub

A Boolean value that indicates if the device that is attached to the port is a hub. If TRUE, the device that is attached to the port is a hub. If FALSE, the device is not a hub.

DeviceAddress

The USB-assigned, bus-relative address of the device that is attached to the port.

NumberOfOpenPipes

The number of open USB pipes that are associated with the port.

ConnectionStatus

A USB_CONNECTION_STATUS-typed enumerator that indicates the connection status.

PipeList[0]

An array of USB_PIPE_INFO structures that describes the open pipes that are associated with the port. Pipe descriptions include the schedule offset of the pipe and the associated endpoint descriptor. This information can be used to calculate bandwidth usage.

Remarks

If there is no device connected to the USB port, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION returns only information about the port. If a device is connected to the port, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION returns information about both the port and the connected device.

The USB_NODE_CONNECTION_INFORMATION_EX structure is an extended version of USB_NODE_CONNECTION_INFORMATION. The two structures are identical, except for one member. In USB_NODE_CONNECTION_INFORMATION_EX, the LowSpeed member is replaced by the Speed member. LowSpeed is a Boolean value, so when it is TRUE, the device is low speed. When it is FALSE, the device is high speed or full speed. Thus the USB_NODE_CONNECTION_INFORMATION structure cannot differentiate between high and full speeds.

The Speed member of the USB_NODE_CONNECTION_INFORMATION_EX structure is a UCHAR and it can specify any of the values of the USB_DEVICE_SPEED enumerator.

Requirements

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

See also

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX

USB Structures

USB_CONNECTION_STATUS

USB_DEVICE_DESCRIPTOR

USB_DEVICE_SPEED

USB_NODE_CONNECTION_INFORMATION_EX

USB_PIPE_INFO