internal static bool GetDeviceDescriptor(UsbDevice usbDevice, out IUsbDeviceDescriptor deviceDescriptor) { if (usbDevice.CachedDeviceDescriptor != null) { deviceDescriptor = usbDevice.CachedDeviceDescriptor; return(true); } deviceDescriptor = new UsbDeviceDescriptorBase(); GCHandle gcDeviceDescriptor = GCHandle.Alloc(deviceDescriptor, GCHandleType.Pinned); int ret; bool bSuccess = usbDevice.GetDescriptor((byte)DescriptorType.Device, 0, 0, gcDeviceDescriptor.AddrOfPinnedObject(), UsbDeviceDescriptorBase.Size, out ret); gcDeviceDescriptor.Free(); if (bSuccess) { return(true); } return(false); }
public UsbDeviceInfo(UsbDevice usbDevice, UsbDeviceDescriptorBase usbDeviceDescriptor) { mUsbDevice = usbDevice; mDeviceDescriptor = new UsbDeviceDescriptorBase(usbDeviceDescriptor); }
internal MonoUsbDevice(ref MonoUsbProfile monoUSBProfile) : base(null, null) { mMonoUSBProfile = monoUSBProfile; mCachedDeviceDescriptor = new UsbDeviceDescriptorBase(monoUSBProfile.DeviceDescriptor); }