public static List <Record3DDevice> GetAvailableDevices() { // Obtain and select device handle DeviceHandlesInfo deviceHandlesInfo = ListAllDeviceHandles(); Int32[] deviceHandles = new Int32[deviceHandlesInfo.size]; IntPtr pointer = deviceHandlesInfo.ptr; Marshal.Copy(pointer, deviceHandles, 0, (Int32)deviceHandlesInfo.size); FinishDeviceInfoHandling(deviceHandlesInfo); return(deviceHandles.ToList().Select(x => new Record3DDevice() { handle = x }).ToList()); }
private static extern void FinishDeviceInfoHandling(DeviceHandlesInfo devInfo);