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);