private static PnpObject GetHalDevice(params String[] properties) { String[] strArray = properties; String[] strArray1 = { "{A45C254E-DF1C-4EFD-8020-67D146A850E0},10" }; IEnumerable <String> enumerable = strArray.Concat(strArray1); try { PnpObjectCollection pnpObjectCollection = PnpObject.FindAllAsync(PnpObjectType.Device, enumerable, "System.Devices.ContainerId:=\"{00000000-0000-0000-FFFF-FFFFFFFFFFFF}\"").GetResults(); foreach (PnpObject pnpObject in pnpObjectCollection) { if (pnpObject.Properties == null || !pnpObject.Properties.Any()) { continue; } KeyValuePair <String, Object> keyValuePair = pnpObject.Properties.Last(); if (keyValuePair.Value == null || !keyValuePair.Value.ToString().Equals("4d36e966-e325-11ce-bfc1-08002be10318")) { continue; } return(pnpObject); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Exception: " + e.Message); return(null); } return(null); }
/// <summary> /// hdt /// </summary> /// <param name="properties"></param> /// <returns></returns> static Task <PnpObject> GetHalDevice(params string[] properties) { PnpObject result = null; var actualProperties = Enumerable.Concat <string>(properties, new string[] { "{A45C254E-DF1C-4EFD-8020-67D146A850E0},10" }); PnpObjectCollection objects = WindowsRuntimeSystemExtensions.GetAwaiter <PnpObjectCollection>(PnpObject.FindAllAsync(PnpObjectType.Device, actualProperties, "System.Devices.ContainerId:=\"{00000000-0000-0000-FFFF-FFFFFFFFFFFF}\"")).GetResult(); foreach (PnpObject obj in objects) { KeyValuePair <string, object> pair = Enumerable.Last <KeyValuePair <string, object> >((IEnumerable <KeyValuePair <string, object> >)obj.Properties); if ((pair.Value != null) && pair.Value.ToString().Equals("4d36e966-e325-11ce-bfc1-08002be10318")) { result = obj; break; } } return(Task.FromResult <PnpObject>(result)); }
private static async Task <string> GetOsVersionUsingPnpObject() { string[] requestedProperties = new string[] { DeviceDriverVersionKey, DeviceDriverProviderKey }; PnpObjectCollection pnpObjects = await PnpObject.FindAllAsync(PnpObjectType.Device, requestedProperties, RootContainerQuery); string guessedVersion = pnpObjects.Select(item => new ProviderVersionPair { Provider = (string)GetValueOrDefault(item.Properties, DeviceDriverProviderKey), Version = (string)GetValueOrDefault(item.Properties, DeviceDriverVersionKey) }) .Where(item => string.IsNullOrEmpty(item.Version) == false) .Where(item => string.Compare(item.Provider, "Microsoft", StringComparison.Ordinal) == 0) .GroupBy(item => item.Version) .OrderByDescending(item => item.Count()) .Select(item => item.Key) .First(); return(guessedVersion); }