public UsbInterfaceInfo(UsbDevice usbDevice, UsbInterfaceDescriptor usbInterfaceDescriptor, IEnumerable <IUsbEndpointDescriptor> usbEndpoints) { mUsbDevice = usbDevice; mUsbInterfaceDescriptor = usbInterfaceDescriptor; foreach (var usbEndpoint in usbEndpoints) { mEndpointInfo.Add(new UsbEndpointInfo(usbEndpoint)); } }
internal UsbInterfaceInfo(UsbDevice usbDevice, MonoUsbAltInterfaceDescriptor monoUSBAltInterfaceDescriptor) { mUsbDevice = usbDevice; mUsbInterfaceDescriptor = monoUSBAltInterfaceDescriptor; List <IUsbEndpointDescriptor> monoUsbEndpoints = monoUSBAltInterfaceDescriptor.EndpointList; foreach (MonoUsbEndpointDescriptor monoUSBEndpoint in monoUsbEndpoints) { mEndpointInfo.Add(new UsbEndpointInfo(monoUSBEndpoint)); } }
/// <summary> /// Gets a <see cref="IUsbInterfaceDescriptor"/> for the specified AlternateInterfaceNumber, /// </summary> /// <param name="alternateInterfaceNumber">The alternate interface index for the <see cref="IUsbInterfaceDescriptor"/> to retrieve. </param> /// <param name="usbAltInterfaceDescriptor">The <see cref="IUsbInterfaceDescriptor"/> for the specified AlternateInterfaceNumber.</param> /// <returns>True on success.</returns> public bool QueryInterfaceSettings(byte alternateInterfaceNumber, ref IUsbInterfaceDescriptor usbAltInterfaceDescriptor) { bool bSuccess; UsbInterfaceDescriptor usbInterfaceDescriptor = new UsbInterfaceDescriptor(); bSuccess = WinUsbAPI.WinUsb_QueryInterfaceSettings(Handle, alternateInterfaceNumber, usbInterfaceDescriptor); if (!bSuccess) { UsbError.Error(ErrorCode.Win32Error, Marshal.GetLastWin32Error(), "QueryInterfaceSettings", this); } usbAltInterfaceDescriptor = usbInterfaceDescriptor; return(bSuccess); }
internal UsbInterfaceInfo(UsbDevice usbDevice, byte[] descriptor) { mUsbDevice = usbDevice; mUsbInterfaceDescriptor = new UsbInterfaceDescriptor(); Helper.BytesToObject(descriptor, 0, Math.Min(UsbInterfaceDescriptor.Size, descriptor[0]), mUsbInterfaceDescriptor); }