'Parse WMI query results in a more comprehensive form.
Returns: List of WMI objects
\'freemegabytes\': 19742.0,
\'name\': \'C:\',
\'avgdiskbytesperwrite\': 1536.0
\'freemegabytes\': 19742.0,
\'name\': \'D:\',
\'avgdiskbytesperwrite\': 1536.0'

def _parse_results(self, raw_results, includes_qualifiers):

    results = []
    for res in raw_results:
        item = CaseInsensitiveDict()
        for prop_name in self.property_names:
            item[prop_name] = None
        for wmi_property in res.Properties_:
            should_get_qualifier_type = (includes_qualifiers and (wmi_property.Name not in self._property_counter_types))
            if should_get_qualifier_type:
                qualifiers = dict(((q.Name, q.Value) for q in wmi_property.Qualifiers_))
                if ('CounterType' in qualifiers):
                    counter_type = qualifiers['CounterType']
                    self._property_counter_types[wmi_property.Name] = counter_type
                    self.logger.debug(u'Caching    property    qualifier    CounterType:    {class_name}.{property_names}    =    {counter_type}'.format(class_name=self.class_name, property_names=wmi_property.Name, counter_type=counter_type))
                else:
                    self.logger.debug(u'CounterType    qualifier    not    found    for    {class_name}.{property_names}'.format(class_name=self.class_name, property_names=wmi_property.Name))
            try:
                item[wmi_property.Name] = float(wmi_property.Value)
            except (TypeError, ValueError):
                item[wmi_property.Name] = wmi_property.Value
        results.append(item)
    return results
