private static void purgeHiddenExclusiveDevices()
{
int disabledDevCount = DisabledDevices.Count;
if (disabledDevCount > 0)
{
List <HidDevice> disabledDevList = new List <HidDevice>();
for (var devEnum = DisabledDevices.GetEnumerator(); devEnum.MoveNext();)
//for (int i = 0, arlen = disabledDevCount; i < arlen; i++)
{
//HidDevice tempDev = DisabledDevices.ElementAt(i);
HidDevice tempDev = devEnum.Current;
if (tempDev != null)
{
if (tempDev.IsOpen && tempDev.IsConnected)
{
disabledDevList.Add(tempDev);
}
else if (tempDev.IsOpen)
{
if (!tempDev.IsConnected)
{
try
{
tempDev.CloseDevice();
}
catch { }
}
if (DevicePaths.Contains(tempDev.DevicePath))
{
DevicePaths.Remove(tempDev.DevicePath);
}
}
}
}
DisabledDevices.Clear();
DisabledDevices.AddRange(disabledDevList);
}
}