USB_HUB_DESCRIPTOR (Structures)
Last changed: egray1@hot.rr.com-24.26.210.211

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_INFORMATION to get information about a USB Hub

C# Definition:

[StructLayout(LayoutKind.Sequential, Pack=1)]
struct USB_HUB_DESCRIPTOR
{
   public byte bDescriptorLength;
   public byte bDescriptorType;
   public byte bNumberOfPorts;
   public short wHubCharacteristics;
   public byte bPowerOnToPowerGood;
   public byte bHubControlCurrent;
   [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
   public byte[] bRemoveAndPowerMask;
}

VB Definition:

Structure USB_HUB_DESCRIPTOR
   Public TODO
End Structure

User-Defined Field Types:

None.

Notes:

This structure is often nested inside the USB_HUB_INFORMATION structure, hence the need for the "pack=1"

typedef struct _USB_HUB_DESCRIPTOR {
   UCHAR  bDescriptorLength;
   UCHAR  bDescriptorType;
   UCHAR  bNumberOfPorts;
   USHORT  wHubCharacteristics;
   UCHAR  bPowerOnToPowerGood;
   UCHAR  bHubControlCurrent;
   UCHAR  bRemoveAndPowerMask[64];
} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;

Documentation