MicroUDFOSTATypes.pas
上传用户:wanyu_2000
上传日期:2021-02-21
资源大小:527k
文件大小:6k
源码类别:

DVD

开发平台:

Delphi

  1. {-----------------------------------------------------------------------------  Unit Name: MicroUDFOSTATypes
  2.  Author:    Dancemammal
  3.  Purpose:   OSTA UDF Records
  4.  History:   First release
  5. -----------------------------------------------------------------------------}
  6. Unit MicroUDFOSTATypes;
  7. interface
  8. Uses       Windows, Messages, SysUtils, Classes, Graphics, Controls, MicroUDFClassTypes,      MicroUDFConsts;
  9. type           Uint16 = Word;           Uint32 = DWord;
  10. Type      OSTA_IdentSuffix = packed record           UDFRevision     : Word;           OSClass         : Byte;           OSIdentifier    : Byte;           reserved        : packed array [0..3] of Byte;      end;        POSTA_IdentSuffix = ^OSTA_IdentSuffix;
  11.      OSTA_ImpIdentSuffix = packed record           OSClass        : Byte;           OSIdentifier   : Byte;           reserved       : packed array [0..5] of Byte;      end;       POSTA_ImpIdentSuffix = ^OSTA_ImpIdentSuffix;
  12.      OSTA_AppIdentSuffix = packed record           ImpUse : packed array [0..7] of Byte;      end;       POSTA_AppIdentSuffix = ^OSTA_AppIdentSuffix;
  13. (* Logical Volume Integrity Descriptor (UDF 2.01 2.2.6) *) (* Implementation Use (UDF 2.01 2.2.6.4) *)      OSTA_LogicalVolumeIntegrityDescriptorImpUse = packed record           ImpIdent        : UDF_EntityIdentifier;           NumFiles        : Word;           NumDirs         : Word;           MinUDFReadRev   : Word;           MinUDFWriteRev  : Word;           MaxUDFWriteRev  : Word;      end;        POSTA_LogicalVolumeIntegrityDescriptorImpUse = ^OSTA_LogicalVolumeIntegrityDescriptorImpUse;
  14. (* Implementation Use Volume Descriptor (UDF 2.01 2.2.7) *) (* Implementation Use (UDF 2.01 2.2.7.2) *)      OSTA_ImplementationUseVolumeDescriptorImpUse = packed record           LVICharset : UDF_CharSpec;           logicalVolIdent   : packed array [0..127] of Char;           LVInfo1           : packed array [0..35] of Char;           LVInfo2           : packed array [0..35] of Char;           LVInfo3           : packed array [0..35] of Char;           ImpIdent          : UDF_EntityIdentifier;           ImpUse            : packed array [0..127] of Byte;      end;
  15.      OSTA_UDFPartitionMap2 = packed record           partitionMapType      : Byte;           partitionMapLength    : Byte;           Reserved1             : packed array [0..1] of Byte;           PartIdent             : UDF_EntityIdentifier;           VolumeSeqNumber       : Word;           PartitionNumber       : Word;      end;       POSTA_UDFPartitionMap2 = ^OSTA_UDFPartitionMap2;
  16. (* Virtual Partition Map (UDF 2.01 2.2.8) *)      OSTA_VirtualPartitionMap = packed record           partitionMapType   : Byte;           partitionMapLength : Byte;           Reserved1          : packed array [0..1] of Byte;           PartIdent          : UDF_EntityIdentifier;           VolumeSeqNumber    : Word;           PartitionNumber    : Word;           Reserved2          : packed array [0..23] of Byte;      end;
  17. (* Sparable Partition Map (UDF 2.01 2.2.9) *)   OSTA_SparablePartitionMap = packed record     PartitionMapType              : Byte;
  18.     PartitionMapLength            : Byte;
  19.     Reserved1                     : packed array [0..1] of Byte;
  20.     PartitionTypeIdentifier       : UDF_EntityIdentifier;
  21.     VolumeSequenceNumber          : Word;
  22.     PartitionNumber               : Word;
  23.     PacketLength                  : Word;
  24.     NumberOfSparingTables         : Byte;
  25.     Reserved2                     : Byte;
  26.     SizeOfEachSparingTable        : DWord;
  27.     LocationsOfSparingTables      : array [0..1] of DWord;
  28.     Pad                           : packed array [0..7] of Byte;
  29.   end;    POSTA_SparablePartitionMap = ^OSTA_SparablePartitionMap;
  30. (* Virtual Allocation Table (UDF 1.5 2.2.10) *)   OSTA_VirtualAllocationTableTail = packed record     EntityIdentifier          : UDF_EntityIdentifier;
  31.     PreviousVATICBLocation    : DWord;
  32.   end;    POSTA_VirtualAllocationTableTail = ^OSTA_VirtualAllocationTableTail;
  33. (* Virtual Allocation Table (UDF 2.01 2.2.10) *)
  34. Type      VirtualAllocationTable20 = record           lengthHeader : Uint16;           lengthImpUse : Uint16;           logicalVolIdent : array [0..127] of dstring;           previousVatICBLoc : Uint32;           numFIDSFiles : Uint32;           numFIDSDirectories : Uint32;           minReadRevision : Uint16;           minWriteRevision : Uint16;           maxWriteRevision : Uint16;           reserved : Uint16;           impUse1stByte : Byte;      end;
  35. (* Sparing Table (UDF 2.01 2.2.11) *)
  36. Type      OSTA_SparingEntry = packed record           OriginalLocation  : DWord;
  37.           MappedLocation    : DWord;
  38.       end;
  39.     POSTA_SparingEntry = ^OSTA_SparingEntry;
  40.   OSTA_SparingTable = packed record     DescriptorTag             : UDF_DescriptorTag;
  41.     SparingIdentifier         : UDF_EntityIdentifier;
  42.     ReallocationTableLength   : Word;
  43.     Reserved                  : Word;
  44.     SequenceNumber            : DWord;
  45.   end;    POSTA_SparingTable = ^OSTA_SparingTable;
  46. (* struct long_ad ICB - ADImpUse (UDF 2.01 2.2.4.3) *)      OSTA_AllocDescImpUse = packed record           FRlags : Word;           ImpUse : packed array [0..3] of Byte;      end;       POSTA_AllocDescImpUse = ^OSTA_AllocDescImpUse;
  47. (* Implementation Use Extended Attribute (UDF 2.01 3.3.4.5) *) (* FreeEASpace (UDF 2.01 3.3.4.5.1.1) *)      OSTA_FreeEaSpace = packed record           HeaderChecksum     : Word;           FreeEASpace1stByte : Byte;      end;       POSTA_FreeEaSpace = ^OSTA_FreeEaSpace;
  48. (* DVD Copyright Management Information (UDF 2.01 3.3.4.5.1.2) *)      OSTA_DVDCopyrightImpUse = packed record           HeaderChecksum   : Word;           CGMSInfo         : Byte;           DataType         : Byte;           ProtectionSystemInfo : packed array [0..3] of Byte;      end;       POSTA_DVDCopyrightImpUse = ^OSTA_DVDCopyrightImpUse;
  49. (* Application Use Extended Attribute (UDF 2.01 3.3.4.6) *) (* FreeAppEASpace (UDF 2.01 3.3.4.6.1) *)
  50.      OSTA_FreeAppEaSpace = packed record           HeaderChecksum     : Word;           FreeEASpace1stByte : Byte;      end;       POSTA_FreeAppEaSpace = ^OSTA_FreeAppEaSpace;
  51. implementation
  52. end.