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