Thursday, January 1, 2015

Query PnP device health Status


            string VendorMatching = "VID_053A&PID_0B01"; // Vendor Id Prod Id Minor Revisioin
            using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity")) //Win32_PnPEntity Win32_USBHub
            {
                foreach (ManagementObject queryObj in searcher.Get())
                {
                    var v = new
                    {
                        ConfigManagerErrorCode = queryObj.Properties["ConfigManagerErrorCode"].Value,
                        Status = queryObj.Properties["Status"].Value,
                        StatusInfo = queryObj.Properties["StatusInfo"].Value,
                        Availability = queryObj.Properties["Availability"].Value,
                        LastErrorCode = queryObj.Properties["LastErrorCode"].Value,

                        DeviceID = queryObj.Properties["DeviceID"].Value,
                        PNPDeviceID = queryObj.Properties["PNPDeviceID"].Value,
                        ClassGuid = queryObj.Properties["ClassGuid"].Value,                        
                        HardwareID = queryObj.Properties["HardwareID"].Value,
                    };
                    if (v.DeviceID.ToString().Contains(VendorMatching)) 
                        
                        Debug.WriteLine(v);
                }
            }

// Win32_PnPEntity class has Error Code
// { ConfigManagerErrorCode = 0, Status = OK, StatusInfo = , Availability = , LastErrorCode = , DeviceID = HID\VID_053A&PID_0B01&MI_01&COL04\9&98E7406&0&0003, PNPDeviceID = HID\VID_053A&PID_0B01&MI_01&COL04\9&98E7406&0&0003, ClassGuid = {745a17a0-74d3-11d0-b6fe-00a0c90f57da}, HardwareID = System.String[] }

No comments: