AllocatedRanges tracks the logical ranges of a file which are pre-allocated using allocate, in
other words, the ranges of the file with overwrite extents. It’s used by PagedObjectHandle to
split writes to CoW ranges and writes to overwrite ranges into separate batches so they can
have different transaction options.
DataObjectHandle is a typed handle for file-like objects that store data in the default data
attribute. In addition to traditional files, this means things like the journal, superblocks,
and layer files.
Whether this particular logical file range is in overwrite or CoW mode. Overwrite mode ranges
have overwrite extents already allocated, and should use multi_overwrite. CoW mode ranges
should use multi_write, and might or might not have extents in the region already.