📄 microudfclasstypes.pas
字号:
UDF_GenericPartitionMap2 = packed record
PartitionMapType : Byte;
PartitionMapLength : Byte;
PartitionIdent : packed array [0..61] of Byte;
end;
pUDF_GenericPartitionMap2 = ^UDF_GenericPartitionMap2;
(* Unallocated Space Descriptor (ECMA 167r3 3/10.8) *)
UDF_UnallocSpaceDesc = packed record
DescriptorTag : UDF_DescriptorTag;
VolumeDescSeqNum : DWord;
AumAllocDescs : DWord;
AllocDescs : UDF_ExtentDescriptor;
end;
PUDF_UnallocSpaceDesc = ^UDF_UnallocSpaceDesc;
(* Terminating Descriptor (ECMA 167r3 3/10.9) *)
UDF_TerminatingDesc = packed record
DescriptorTag : UDF_DescriptorTag;
reserved : packed array [0..495] of Byte;
end;
PUDF_TerminatingDesc = ^UDF_TerminatingDesc;
(* Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10) *)
UDF_logicalVolumeIntegrityDesc = packed record
DescriptorTag : UDF_DescriptorTag;
RecordingDateAndTime : UDF_Timestamp;
IntegrityType : DWord;
NextIntegrityExt : UDF_ExtentDescriptor;
LogicalVolContentsUse : packed array [0..31] of char;
NumOfPartitions : DWord;
LengthOfImpUse : DWord;
FreeSpaceTable : DWord;
SizeTable : DWord;
ImpUse : UDF_EntityIdentifier;
NumberOfFiles : DWord;
NumberOfDirectories : DWord;
MinimumUDFReadRevision : Word;
MinimumUDFWriteRevision : Word;
MaximumUDFWriteRevision : Word;
end;
PUDF_logicalVolumeIntegrityDesc = ^UDF_logicalVolumeIntegrityDesc;
(* File Set Descriptor (ECMA 167r3 4/14.1) *)
Type
UDF_FileSetDescriptor = packed record
DescriptorTag : UDF_DescriptorTag;
RecordingDateAndTime : UDF_TimeStamp;
InterchangeLevel : Word;
MaximumInterchangeLevel : Word;
CharacterSetList : DWord;
MaximumCharacterSetList : DWord;
FileSetNumber : DWord;
FileSetDescriptorNumber : DWord;
LogicalVolumeIdentifierCharSet : UDF_CharSpec;
LogicalVolumeIdentifier : packed array [0..127] of dstring;
FileSetCharacterSet : UDF_CharSpec;
FileSetIdentifier : packed array [0..31] of dstring;
CopyrightFileIdentifier : packed array [0..31] of dstring;
AbstractFileIdentifier : packed array [0..31] of dstring;
RootDirectoryICB : UDF_LongAllocationDescriptor;
DomainIdentifier : UDF_EntityIdentifier;
NextExtent : UDF_LongAllocationDescriptor;
StreamDirectoryICB : UDF_LongAllocationDescriptor;
Reserved : packed array [0..31] of Byte;
end;
PUDF_FileSetDescriptor = ^UDF_FileSetDescriptor;
(* Partition Header Descriptor (ECMA 167r3 4/14.3) *)
UDF_PartitionHeaderDescriptor = packed record
UnallocatedSpaceTable : UDF_ShortAllocationDescriptor;
UnallocatedSpaceBitmap : UDF_ShortAllocationDescriptor;
PartitionIntegrityTable : UDF_ShortAllocationDescriptor;
FreedSpaceTable : UDF_ShortAllocationDescriptor;
FreedSpaceBitmap : UDF_ShortAllocationDescriptor;
Reserved : packed array [0..87] of Byte;
end;
PUDF_PartitionHeaderDescriptor = ^UDF_PartitionHeaderDescriptor;
(* File Identifier Descriptor (ECMA 167r3 4/14.4) *)
UDF_FileIdentifierDescriptor = packed record
DescriptorTag : UDF_DescriptorTag;
FileVersionNumber : Word;
FileCharacteristics : Byte;
LengthOfFileIdentifier : Byte;
ICB : UDF_LongAllocationDescriptor;
LengthOfImplementationUse : Word;
UDF_EntityIdentifierFlags : Byte;
end;
PUDF_FileIdentifierDescriptor = ^UDF_FileIdentifierDescriptor;
(* Allocation Ext Descriptor (ECMA 167r3 4/14.5) *)
Type
UDF_AllocExtDesc = Packed record
DescriptorTag : UDF_DescriptorTag;
PreviousAllocExtLocation : Dword;
LengthOfAllocationDescriptors : Dword;
end;
PUDF_AllocExtDesc = ^UDF_AllocExtDesc;
(* ICB Tag (ECMA 167r3 4/14.6) *)
UDF_ICBTag = packed record
PriorRecordedNumberOfDirectEntries : Dword;
StrategyType : Word;
StrategyParameter : packed array [0..1] of Byte;
MaximumNumberOfEntries : Word;
Reserved : Byte;
FileType : Byte;
ParentICBLocation : UDF_RecordedAddress;
Flags : Word;
end;
PUDF_ICBTag = ^UDF_ICBTag;
(* Indirect Entry (ECMA 167r3 4/14.7) *)
UDF_IndirectEntry = packed record
DescriptorTag : UDF_DescriptorTag;
ICBTag : UDF_ICBTag;
IndirectICB : UDF_LongAllocationDescriptor;
end;
PUDF_IndirectEntry = ^UDF_IndirectEntry;
(* Terminal Entry (ECMA 167r3 4/14.8) *)
UDF_TerminalEntry = packed record
DescriptorTag : UDF_DescriptorTag;
UDF_ICBTag : UDF_ICBTag;
end;
PUDF_TerminalEntry = ^UDF_TerminalEntry;
(* File Entry (ECMA 167r3 4/14.9) *)
UDF_FileEntry = packed record
DescriptorTag : UDF_DescriptorTag;
ICBTag : UDF_ICBTag;
Uid : DWord;
Gid : DWord;
Permissions : DWord;
FileLinkCount : Word;
RecordFormat : Byte;
RecordDisplayAttributes : Byte;
RecordLength : DWord;
InformationLength : int64;
LogicalBlocksRecorded : int64;
AccessDateAndTime : UDF_TimeStamp;
ModificationDateAndTime : UDF_TimeStamp;
AttributeDateAndTime : UDF_TimeStamp;
Checkpoint : DWord;
ExtendedAttributeICB : UDF_LongAllocationDescriptor;
ImplementationIdentifier : UDF_EntityIdentifier;
UniqueID : int64;
LengthOfExtendedAttributes : DWord;
LengthOfAllocationDescriptors: DWord;
AllocationDescriptors : packed array [0..1871] of Byte;
end;
PUDF_FileEntry = ^UDF_FileEntry;
Type
UDF_ExtendedAttributeHeaderDescriptor = packed record
DescriptorTag : UDF_DescriptorTag;
ImplementationAttributesLocation : DWord;
ApplicationAttributesLocation : DWord;
end;
PUDF_ExtendedAttributeHeaderDescriptor = ^UDF_ExtendedAttributeHeaderDescriptor;
(* Generic Format (ECMA 167r3 4/14.10.2) *)
UDF_GenericExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
AttrData1stByte : Byte;
end;
PUDF_GenericExtendedAttribute = ^UDF_GenericExtendedAttribute;
UDF_ExtendedAttributes = packed record
Header : UDF_ExtendedAttributeHeaderDescriptor;
Content : UDF_GenericExtendedAttribute;
end;
PUDF_ExtendedAttributes = ^UDF_ExtendedAttributes;
(* Character Set Information (ECMA 167r3 4/14.10.3) *)
UDF_CharacterSetInformationExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
EscapeSequencesLength : DWord;
CharacterSetType : Byte;
EscapeSeq1stByte : Byte;
end;
PUDF_CharacterSetInformationExtendedAttribute = ^UDF_CharacterSetInformationExtendedAttribute;
(* Alternate Permissions (ECMA 167r3 4/14.10.4) *)
UDF_AlternatePermissions = Packed record
AttributeType : Dword;
AttributeSubtype : Byte;
Reserved : Packed array [0..2] of Byte;
AttributeLength : DWord;
OwnerIdent : Word;
GroupIdent : Word;
Permission : Word;
end;
PUDF_AlternatePermissions = ^UDF_AlternatePermissions;
(* File Times Extended Attribute (ECMA 167r3 4/14.10.5) *)
UDF_FileTimesExtendedAttribute = Packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : Packed array [0..2] of Byte;
AttributeLength : DWord;
DataLength : DWord;
FileTimeExistence : DWord;
FileTimes : UDF_Timestamp;
end;
PUDF_FileTimesExtendedAttribute = ^UDF_FileTimesExtendedAttribute;
(* Information Times Extended Attribute (ECMA 167r3 4/14.10.6) *)
UDF_InformationTimesExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
DataLength : DWord;
InformationTimeExistence : DWord;
InfoTimes1stByte : Byte;
end;
PUDF_InformationTimesExtendedAttribute = ^UDF_InformationTimesExtendedAttribute;
(* Device Specification (ECMA 167r3 4/14.10.7) *)
UDF_DeviceSpecificationExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
ImplementationUseLength : DWord;
MajorDeviceIdentification : DWord;
MinorDeviceIdentification : DWord;
ImpUse1stByte : Byte;
end;
PUDF_DeviceSpecificationExtendedAttribute = ^UDF_DeviceSpecificationExtendedAttribute;
(* Implementation Use Extended Attr (ECMA 167r3 4/14.10.8) *)
UDF_ImplementationUseExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
ImplementationUseLength : DWord;
ImplementationIdentifier : UDF_EntityIdentifier;
ImpUse1stByte : Byte;
end;
PUDF_ImplementationUseExtendedAttribute = ^UDF_ImplementationUseExtendedAttribute;
(* Application Use Extended Attribute (ECMA 167r3 4/14.10.9) *)
UDF_ApplicationUseExtendedAttribute = packed record
AttributeType : DWord;
AttributeSubtype : Byte;
Reserved : packed array [0..2] of Byte;
AttributeLength : DWord;
ApplicationUseLength : DWord;
ApplicationIdentifier : UDF_EntityIdentifier;
ApplicationUse1stByte : Byte;
end;
PUDF_ApplicationUseExtendedAttribute = ^UDF_ApplicationUseExtendedAttribute;
(* Unallocated Space Entry (ECMA 167r3 4/14.11) *)
Type
UDF_UnallocatedSpaceEntry = packed record
DescriptorTag : UDF_DescriptorTag;
UDF_ICBTag : UDF_ICBTag;
LengthOfAllocationDescriptors : DWord;
AllocDescs1stByte : Byte;
end;
PUDF_UnallocatedSpaceEntry = ^UDF_UnallocatedSpaceEntry;
(* Space Bitmap Descriptor (ECMA 167r3 4/14.12) *)
UDF_SpaceBitmapDescriptor = packed record
DescriptorTag : UDF_DescriptorTag;
NumberOfBits : DWord;
NumberOfBytes : DWord;
Bitmap1stByte : Byte;
end;
PUDF_SpaceBitmapDescriptor = ^UDF_SpaceBitmapDescriptor;
(* Partition Integrity Entry (ECMA 167r3 4/14.13) *)
UDF_PartitionIntegrityEntry = packed record
DescriptorTag : UDF_DescriptorTag;
UDF_ICBTag : UDF_ICBTag;
RecordingDateAndTime : UDF_Timestamp;
IntegrityType : Byte;
reserved : array [0..174] of Byte;
ImplimentationIdentifier : UDF_EntityIdentifier;
ImplimentationUse : packed array [0..255] of Byte;
end;
(* Logical Volume Header Descriptor (ECMA 167r3 4/14.15) *)
UDF_LogicalVolHeaderDesc = Packed record
UniqueID : int64;
Reserved : packed array [0..23] of Byte;
end;
PUDF_LogicalVolHeaderDesc = ^UDF_LogicalVolHeaderDesc;
(* Path Component (ECMA 167r3 4/14.16.1) *)
UDF_PathComponent = packed record
ComponentType : Byte;
LengthComponentIdent : Byte;
ComponentFileVersionNum : Word;
ComponentIdent1stByte : dstring;
end;
PUDF_PathComponent = ^UDF_PathComponent;
(* File Entry (ECMA 167r3 4/14.17) *)
UDF_ExtendedFileEntry = packed record
DescriptorTag : UDF_DescriptorTag;
ICBTag : UDF_ICBTag;
Uid : DWord;
Gid : DWord;
Permissions : DWord;
FileLinkCount : Word;
RecordFormat : Byte;
RecordDisplayAttributes : Byte;
RecordLength : DWord;
InformationLength : int64;
ObjectSize : int64;
LogicalBlocksRecorded : int64;
AccessDateAndTime : UDF_TimeStamp;
ModificationDateAndTime : UDF_TimeStamp;
CreationDateAndTime : UDF_TimeStamp;
AttributeDateAndTime : UDF_TimeStamp;
Checkpoint : DWord;
reserved : DWord;
ExtendedAttributeICB : UDF_LongAllocationDescriptor;
StreamDirectoryICB : UDF_LongAllocationDescriptor;
ImplementationIdentifier : UDF_EntityIdentifier;
UniqueID : int64;
LengthOfExtendedAttributes : DWord;
LengthOfAllocationDescriptors : DWord;
ExtendedAttr1stByte : Byte;
end;
PUDF_ExtendedFileEntry = ^UDF_ExtendedFileEntry;
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -