{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-20",
  "slug": "exfat-valid-data-length",
  "term": "ValidDataLength (exFAT)",
  "aliases": [
    "exFAT VDL"
  ],
  "definition": "ValidDataLength is the exFAT stream field that records the initialized prefix length in bytes.",
  "note": "For a regular file, VDL lies between zero and DataLength. Reads in the remaining logical tail return zeros although its on-media bytes are undefined. This differs from allocation size and does not demonstrate erasure. Directories require both lengths to match. [exfat-spec]\n\nLinux v6.12 distinguishes the partially initialized block from later unwritten blocks in exfat_get_block; exfat_direct_IO handles the partial-block read tail. This is version-specific code evidence, not a mounted-volume experiment. [linux-inode]",
  "related": [
    "exfat",
    "allocation-bitmap",
    "file-storage"
  ],
  "citations": [
    {
      "id": "exfat-spec",
      "title": "Microsoft exFAT 1.00 specification: section 7.6.5, ValidDataLength",
      "url": "https://learn.microsoft.com/en-us/windows/win32/fileio/exfat-specification#765-validdatalength-field",
      "accessed": "2026-10-20"
    },
    {
      "id": "linux-inode",
      "title": "Linux v6.12: exfat_get_block and exfat_direct_IO, fs/exfat/inode.c",
      "url": "https://github.com/torvalds/linux/blob/v6.12/fs/exfat/inode.c",
      "accessed": "2026-10-20"
    }
  ]
}
