// usbioctl.h
typedef struct _USB_TOPOLOGY_ADDRESS {
ULONG PciBusNumber;
ULONG PciDeviceNumber;
ULONG PciFunctionNumber;
ULONG Reserved;
USHORT RootHubPortNumber;
USHORT HubPortNumber[5];
USHORT Reserved2;
} USB_TOPOLOGY_ADDRESS, *PUSB_TOPOLOGY_ADDRESS;
View the official Windows Driver Kit DDI referenceNo description available.
The USB_TOPOLOGY_ADDRESS structure is used with the IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS I/O request to retrieve information about a USB device's location in the USB device tree.
PciBusNumberSpecifies the PCI bus number of the USB host controller to which the USB device is attached.
PciDeviceNumberSpecifies the PCI device number of the USB host controller to which the USB device is attached.
PciFunctionNumberSpecifies the PCI function number of the USB host controller to which the USB device is attached.
ReservedRootHubPortNumberSpecifies the root hub port number through which the USB device is connected. The USB device can be connected to the root port directly, or it can be connected through 1 or more external USB hubs to the port.
HubPortNumberAn array containing the port number on each external hub (between the root hub and the device) through which the USB device is connected. The first element of the array indicates the port on the hub that is connected directly to the root hub. An array containing all zeros indicates that the device is connected directly to the root hub.
Reserved2The reserved members of this structure must be treated as opaque and are reserved for system use.
IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS