ReactOS  0.4.13-dev-927-ge85664a
_UDF_DATALOC_INFO Struct Reference

#include <udf_rel.h>

Collaboration diagram for _UDF_DATALOC_INFO:

Public Attributes

struct _UDFNTRequiredFCBCommonFcb
 
EXTENT_INFO DataLoc
 
EXTENT_INFO AllocLoc
 
EXTENT_INFO FELoc
 
tagFileEntry
 
uint32 FileEntryLen
 
uint32 FE_Flags
 
uint32 LinkRefCount
 
PDIR_INDEX_HDR DirIndex
 
struct _UDF_FILE_INFOLinkedFileInfo
 
struct _UDF_FILE_INFOSDirInfo
 

Detailed Description

This structure describes actual data location. It is an analogue (and a pair in this implementation) of NTRequiredFcb structure.

UDF FSD keeps list of all Dloc structures & their on-disk representations. Before allocating new Dloc for newly opened file the FSD checks if the Dloc with the same Lba is already in memory. If it is so the initiator receive pointer to existing structure instead of allocating new. This allows to handle HardLiks properly. When all references to given Dloc has gone it is released. In case of file deletion the association between Dloc & Lba is discarded, but Dloc is not released untill UDFCleanUpFile__() is called. This prevents interference between deleted files & newly created ones in case of equal Lba of deleted & created FileEntries.

Definition at line 249 of file udf_rel.h.

Member Data Documentation

◆ AllocLoc

EXTENT_INFO _UDF_DATALOC_INFO::AllocLoc

Describes on-disk location of allocation descriptors. They are part of metadata associated with given file If this structure is not initialized UDF assumes that no allocation descriptors recorded for this file. Usually this structure points to the same LBA as FELoc, but with non-zero offset inside logical block. The only exception is for files recorded using IN_ICB method (see above). In such a case this structure must be zero-filled

Definition at line 274 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFConvertFEToNonInICB(), UDFRecordVAT(), UDFUnlinkFile__(), and UDFWriteFile__().

◆ CommonFcb

struct _UDFNTRequiredFCB* _UDF_DATALOC_INFO::CommonFcb

NT-specific field. As soon as NT supports HardLink concept it has own structure describing the file's actual data.

Definition at line 255 of file udf_rel.h.

Referenced by UDFBlankMount(), UDFCleanUpFile__(), UDFCommonCreate(), and UDFCompleteMount().

◆ DataLoc

EXTENT_INFO _UDF_DATALOC_INFO::DataLoc

Describes on-disk location of user data. If the file is recorded using IN_ICB method this structure points to the same LBA as FELoc, but with non-zero offset inside logical block

Definition at line 262 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFConvertFEToNonInICB(), UDFFlushFI(), UDFRecordVAT(), UDFRenameMoveFile__(), UDFUnlinkFile__(), and UDFWriteFile__().

◆ DirIndex

PDIR_INDEX_HDR _UDF_DATALOC_INFO::DirIndex

Points to the list of files referenced by the given file. This field is used for directories only. Otherwise its value should be NULL.

Definition at line 312 of file udf_rel.h.

Referenced by UDFBlankMount(), UDFCleanUpFile__(), UDFFlushFI(), UDFGetFileStreamInformation(), UDFMarkStreamsForDeletion(), UDFQueryDirectory(), and UDFUnlinkFile__().

◆ FE_Flags

uint32 _UDF_DATALOC_INFO::FE_Flags

Set of flags. This is intended for internal use. Valid flags:

Definition at line 299 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFCreateStreamDir__(), UDFOpenStreamDir__(), UDFRecordVAT(), UDFRenameMoveFile__(), and UDFUnlinkFile__().

◆ FELoc

EXTENT_INFO _UDF_DATALOC_INFO::FELoc

Describes on-disk location the FileEntry. This is on-disk metadata block describing file location.

Definition at line 279 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFCloseFile__(), UDFConvertFEToNonInICB(), UDFCreateStreamDir__(), UDFHardLinkFile__(), UDFRecordVAT(), UDFRenameMoveFile__(), UDFUnlinkFile__(), and UDFWriteFile__().

◆ FileEntry

tag* _UDF_DATALOC_INFO::FileEntry

Pointer to cached FileEntry. This field mush be valid untill all file instances are cleaned up (see UDFCleanUpFile__() and LinkRefCount).

Definition at line 285 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFCommonCleanup(), UDFCommonCreate(), UDFConvertFEToNonInICB(), UDFCreateStreamDir__(), UDFHardLinkFile__(), UDFLoadVAT(), UDFRecordVAT(), UDFRename(), UDFRenameMoveFile__(), UDFUnlinkFile__(), and UDFWriteFile__().

◆ FileEntryLen

uint32 _UDF_DATALOC_INFO::FileEntryLen

Definition at line 286 of file udf_rel.h.

◆ LinkedFileInfo

struct _UDF_FILE_INFO* _UDF_DATALOC_INFO::LinkedFileInfo

Definition at line 313 of file udf_rel.h.

Referenced by UDFStoreDloc().

◆ LinkRefCount

uint32 _UDF_DATALOC_INFO::LinkRefCount

Counter of currently opened directory tree instances (files) pointing to given data. It is introduced because UDF supports HardLink concept. UDF_DATALOC_INFO structure should not be released untill this field reaches zero.

Definition at line 306 of file udf_rel.h.

Referenced by UDFBlankMount(), UDFCleanUpFile__(), UDFCommonCreate(), UDFHardLinkFile__(), and UDFRenameMoveFile__().

◆ SDirInfo

struct _UDF_FILE_INFO* _UDF_DATALOC_INFO::SDirInfo

Points to the FileInfo describing the StreamDirectory associated with the given file. If the file has no associated StreamDirectory this field must bu NULL.

Definition at line 319 of file udf_rel.h.

Referenced by UDFCleanUpFile__(), UDFCommonCleanup(), and UDFUnlinkFile__().


The documentation for this struct was generated from the following file: