internal USBDeviceDescriptor(string path, API.USB_DEVICE_DESCRIPTOR deviceDesc, string manufacturer, string product, string serialNumber)
        {
            PathName     = path;
            VID          = deviceDesc.idVendor;
            PID          = deviceDesc.idProduct;
            Manufacturer = manufacturer;
            Product      = product;
            SerialNumber = serialNumber;


            ClassValue = deviceDesc.bDeviceClass;
            SubClass   = deviceDesc.bDeviceSubClass;
            Protocol   = deviceDesc.bDeviceProtocol;

            // If interface class is of a known type (USBBaseeClass enum), use this
            // for the InterfaceClass property.
            BaseClass = USBBaseClass.Unknown;
            if (Enum.IsDefined(typeof(USBBaseClass), (int)deviceDesc.bDeviceClass))
            {
                BaseClass = (USBBaseClass)(int)deviceDesc.bDeviceClass;
            }
        }
 private static extern bool WinUsb_GetDescriptor(IntPtr InterfaceHandle, byte DescriptorType,
                                                 byte Index, UInt16 LanguageID, out USB_DEVICE_DESCRIPTOR deviceDesc, UInt32 BufferLength, out UInt32 LengthTransfered);