def MI_enumInstances(self,
                         env,
                         ns,
                         propertyList,
                         requestedCimClass,
                         cimClass):
        # pylint: disable=invalid-name
        """Return instances of a given CIM class

        Implements the WBEM operation EnumerateInstances in terms
        of the enum_instances method.  A derived class will not normally
        override this method.

        """
        logger = env.get_logger()
        logger.log_debug('CIMProvider MI_enumInstances called...')
        keyNames = get_keys_from_class(cimClass)
        plist = None
        if propertyList is not None:
            lkns = [kn.lower() for kn in keyNames]
            props = pywbem.NocaseDict()
            plist = [s.lower() for s in propertyList]
            pklist = plist + lkns
            [props.__setitem__(p.name, p) for p in cimClass.properties.values()
             if p.name.lower() in pklist]
        else:
            props = cimClass.properties
        _strip_quals(props)
        path = pywbem.CIMInstanceName(classname=cimClass.classname,
                                      namespace=ns)
        model = pywbem.CIMInstance(classname=cimClass.classname,
                                   properties=props, path=path)
        gen = self.enum_instances(env=env,
                                  model=model,
                                  cim_class=cimClass,
                                  keys_only=False)
        try:
            iter(gen)
        except TypeError:
            logger.log_debug('CIMProvider MI_enumInstances returning')
            return
        for inst in gen:
            inst.path = build_instance_name(inst, keyNames)
            if self.filter_results and plist is not None:
                inst = inst.copy()
                filter_instance(inst, plist)
            yield inst
        logger.log_debug('CIMProvider MI_enumInstances returning')
Return instances of a given CIM class

        Implements the WBEM operation EnumerateInstances in terms
        of the enum_instances method.  A derived class will not normally
        override this method.