code: def find_resources(library, session, query):
      
      find_list = ViFindList()
      return_counter = ViUInt32()
      instrument_description = create_string_buffer(constants.VI_FIND_BUFLEN)
  
      # [ViSession, ViString, ViPFindList, ViPUInt32, ViAChar]
      # ViString converts from (str, unicode, bytes) to bytes
      ret = library.viFindRsrc(session, query,
                               byref(find_list), byref(return_counter),
                               instrument_description)
      return find_list, return_counter.value, buffer_to_text(instrument_description), ret
docs: Queries a VISA system to locate the resources associated with a specified interface.
  
      Corresponds to viFindRsrc function of the VISA library.
  
      :param library: the visa library wrapped by ctypes.
      :param session: Unique logical identifier to a session (unused, just to uniform signatures).
      :param query: A regular expression followed by an optional logical expression. Use '?*' for all.
      :return: find_list, return_counter, instrument_description, return value of the library call.
      :rtype: ViFindList, int, unicode (Py2) or str (Py3), :class:`pyvisa.constants.StatusCode`