def __find_reports(self, report_type, usage_page, usage_id = 0):
        if not self.is_opened():
            raise HIDError("Device must be opened")
        #
        results = list()
        if usage_page:
            for report_id in self.report_set.get( report_type, set() ):
                #build report object, gathering usages matching report_id
                report_obj = HidReport(self, report_type, report_id)
                if get_full_usage_id(usage_page, usage_id) in report_obj:
                    results.append( report_obj )
        else:
            #all (any one)
            for report_id in self.report_set.get(report_type, set()):
                report_obj = HidReport(self, report_type, report_id)
                results.append( report_obj )
        return results
Find input report referencing HID usage control/data item
dataset/ETHPy150Open rene-aguirre/pywinusb/pywinusb/hid/core.py/HidDevice.__find_reports