code: def _read_dir_entry_struct(fid, tag, shape, rlims):
      """Read dir entry struct tag."""
      pos = tag.pos + 16
      entries = list()
      for offset in range(1, tag.size // 16):
          ent = _read_tag_header(fid, pos + offset * 16)
          # The position of the real tag on disk is stored in the "next" entry within the
          # directory, so we need to overwrite ent.pos. For safety let's also overwrite
          # ent.next to point nowhere
          ent.pos, ent.next = ent.next, FIFF.FIFFV_NEXT_NONE
          entries.append(ent)
      return entries
  
imports: import html
  import re
  import struct
  from dataclasses import dataclass
  from functools import partial
  from typing import Any
  import numpy
  from scipy.sparse import csc_matrix, csr_matrix
  from ..utils import _check_option, warn
  from ..utils.numerics import _julian_to_cal
  from .constants import FIFF, _ch_coil_type_named, _ch_kind_named, _ch_unit_mul_named, _ch_unit_named, _dig_cardinal_named, _dig_kind_named
label_desc: Use image node_id 17 for calling a global function with example usage: _read_dir_entry_struct(fid, tag, shape, rlims) and returns: entries