public static bool EnumClassDevs(string enumerator, DICFG flags, ClassEnumeratorDelegate classEnumeratorCallback, object classEnumeratorCallbackParam1) { SP_DEVINFO_DATA dev_info_data = SP_DEVINFO_DATA.Empty; int dev_index = 0; IntPtr dev_info = SetupDiGetClassDevs(0, enumerator, IntPtr.Zero, flags); if (dev_info == IntPtr.Zero || dev_info.ToInt64() == -1) { return(false); } bool bSuccess = false; while (SetupDiEnumDeviceInfo(dev_info, dev_index, ref dev_info_data)) { if (classEnumeratorCallback(dev_info, dev_index, ref dev_info_data, classEnumeratorCallbackParam1)) { bSuccess = true; break; } dev_index++; } SetupDiDestroyDeviceInfoList(dev_info); return(bSuccess); }
public static bool EnumClassDevs(string enumerator, DICFG flags, ClassEnumeratorDelegate classEnumeratorCallback, object classEnumeratorCallbackParam1) { SP_DEVINFO_DATA dev_info_data = SP_DEVINFO_DATA.Empty; int dev_index = 0; IntPtr dev_info = SetupDiGetClassDevs(0, enumerator, IntPtr.Zero, flags); if (dev_info == IntPtr.Zero || dev_info.ToInt64() == -1) return false; bool bSuccess = false; while (SetupDiEnumDeviceInfo(dev_info, dev_index, ref dev_info_data)) { if (classEnumeratorCallback(dev_info, dev_index, ref dev_info_data, classEnumeratorCallbackParam1)) { bSuccess = true; break; } dev_index++; } SetupDiDestroyDeviceInfoList(dev_info); return bSuccess; }