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