docs: def Read(self):
      """See base class."""
      buf = ctypes.create_string_buffer(self.desc.internal_max_in_report_len)
      num_read = wintypes.DWORD()
      ret = kernel32.ReadFile(
          self.dev, buf, len(buf), ctypes.byref(num_read), None)
  
      if num_read.value != self.desc.internal_max_in_report_len:
        raise errors.HidError("Failed to read full length report from device.")
  
      if not ret:
        raise ctypes.WinError()
  
      # Convert the string buffer to a list of numbers.  Throw away the first
      # byte, which is the report id (which we don't care about).
      return list(bytearray(buf[1:]))