05.07.2014 Views

here - OSTA - Optical Storage Technology Association

here - OSTA - Optical Storage Technology Association

here - OSTA - Optical Storage Technology Association

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 Part 3 - Volume Structure<br />

3.2.1 Logical Volume Header Descriptor<br />

struct LogicalVolumeHeaderDesc { /* ECMA 167 4/14.15 */<br />

Uint64 UniqueID,<br />

bytes<br />

reserved[24]<br />

}<br />

This structure is in the LVID Logical Volume Contents Use field.<br />

3.2.1.1 Uint64 UniqueID<br />

This field contains the next Next UniqueID value that should to be used. for the<br />

next new objects in the UDF UniqueID Mapping Data Stream, see 3.3.7.1. The<br />

field Next UniqueID value is initialized to 16, because the value 0 is reserved for<br />

the root directory and itsystem stream directory objects and the values 1-15 are<br />

reserved for use in Macintosh implementations. The Next UniqueID value<br />

monotonically increases with each assignment of a new UDF UniqueID value for<br />

a newly created object as described below. Whenever the lower 32-bits of this the<br />

Next UniqueID value reach #FFFFFFFF, the next increment is performed by<br />

incrementing the upper 32-bits are incremented by 1, as would be expected for a<br />

64-bit value, but the lower 32-bits “wrap” to 16 (the initialization value). This<br />

behavior supports Mac OS which uses an ID number space of 16 through 2 31 - 1<br />

inclusive, and will not cause problems for other platformsAfter such a “wrap”, the<br />

uniqueness of a 32-bits FID UDF UniqueID value can no longer be guaranteed.<br />

T<strong>here</strong>fore the UDF UniqueID Mapping Data Stream shall be removed altogether<br />

if the value of Next UniqueID is higher than #FFFFFFFF.<br />

UniqueID is used whenever a new file or directory is created, or another name is<br />

linked to an existing file or directory. During a rename or move operation, the FID<br />

UniqueID value of an object shall not be changed and the values in the<br />

corresponding UDF Unique ID Mapping Entry shall remain consistent, see<br />

3.3.7.1.2. The parent references of this mapping entry shall be updated when an<br />

object is moved to a different directory. When a FID is deleted, the mapping entry<br />

corresponding to the now unused UDF Unique ID shall not be re-used but be<br />

deleted or marked invalid. The File Identifier Descriptors and File<br />

Entries/Extended File Entries used for a stream directory and named streams<br />

associated with a file or directory do not use UniqueID; rather, the unique ID<br />

fields in these structures take their value from the UniqueID of the File<br />

Entry/Extended File Entry of the file/directory they are associated with. The same<br />

counts for File Entries/Extended File Entries used to define an Extended<br />

Attributes Space. A parent FID takes its Unique ID value from the 32 lower bits<br />

of the File Entry/Extended File Entry that is identified by the parent FID.<br />

FIDs and File Entries of the System Stream Directory and of streams associated<br />

with the System Stream Directory shall use a UniqueID value of zero.<br />

When a file or directory is created, this UniqueID is assigned to the UniqueID<br />

field of the File Entry/Extended File Entry, the lower 32-bits of UniqueID are<br />

UDF 2.01<br />

65<br />

March50 April

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!