code: def _check_iso9660_filename(fullname, interchange_level):
      '''
      A function to check that a file identifier conforms to the ISO9660 rules
      for a particular interchange level.
      Parameters:
       fullname - The name to check.
       interchange_level - The interchange level to check against.
      Returns:
       Nothing.
      '''
      (name, extension, version) = _split_iso9660_filename(fullname)
      if version != b'' and (int(version) < 1 or int(version) > 32767):
          raise pycdlibexception.PyCdlibInvalidInput('ISO9660 filenames must have a version between 1 and 32767')
      if not name and not extension:
          raise pycdlibexception.PyCdlibInvalidInput('ISO9660 filenames must have a non-empty name or extension')
      if b';' in name or b';' in extension:
          raise pycdlibexception.PyCdlibInvalidInput('ISO9660 filenames must contain exactly one semicolon')
      if interchange_level == 1:
          if len(name) > 8 or len(extension) > 3:
              raise pycdlibexception.PyCdlibInvalidInput('ISO9660 filenames at interchange level 1 cannot have more than 8 characters or 3 characters in the extension')
      else:
          pass
      if interchange_level < 4:
          _check_d1_characters(name)
          _check_d1_characters(extension)