⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 microudfostatypes.pas

📁 用于CD/DVD烧录的Delphi源码,包括source和demo
💻 PAS
字号:
{-----------------------------------------------------------------------------
 Unit Name: MicroUDFOSTATypes
 Author:    Dancemammal
 Purpose:   OSTA UDF Records
 History:   First release
-----------------------------------------------------------------------------}


Unit MicroUDFOSTATypes;


interface

Uses 
     Windows, Messages, SysUtils, Classes, Graphics, Controls, MicroUDFClassTypes,
     MicroUDFConsts;


Type
     OSTA_IdentSuffix = packed record
          UDFRevision     : Word;
          OSClass         : Byte;
          OSIdentifier    : Byte;
          reserved        : packed array [0..3] of Byte;
     end;
       POSTA_IdentSuffix = ^OSTA_IdentSuffix;



     OSTA_ImpIdentSuffix = packed record
          OSClass        : Byte;
          OSIdentifier   : Byte;
          reserved       : packed array [0..5] of Byte;
     end;
      POSTA_ImpIdentSuffix = ^OSTA_ImpIdentSuffix;


     OSTA_AppIdentSuffix = packed record
          ImpUse : packed array [0..7] of Byte;
     end;
      POSTA_AppIdentSuffix = ^OSTA_AppIdentSuffix;


(* 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;


(* 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;


     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;


(* 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;


(* Sparable Partition Map (UDF 2.01 2.2.9) *)
  OSTA_SparablePartitionMap = packed record
    PartitionMapType              : Byte;
    PartitionMapLength            : Byte;
    Reserved1                     : packed array [0..1] of Byte;
    PartitionTypeIdentifier       : UDF_EntityIdentifier;
    VolumeSequenceNumber          : Word;
    PartitionNumber               : Word;
    PacketLength                  : Word;
    NumberOfSparingTables         : Byte;
    Reserved2                     : Byte;
    SizeOfEachSparingTable        : DWord;
    LocationsOfSparingTables      : array [0..1] of DWord;
    Pad                           : packed array [0..7] of Byte;
  end;
   POSTA_SparablePartitionMap = ^OSTA_SparablePartitionMap;




(* Virtual Allocation Table (UDF 1.5 2.2.10) *)
  OSTA_VirtualAllocationTableTail = packed record
    EntityIdentifier          : UDF_EntityIdentifier;
    PreviousVATICBLocation    : DWord;
  end;
   POSTA_VirtualAllocationTableTail = ^OSTA_VirtualAllocationTableTail;




(* Virtual Allocation Table (UDF 2.01 2.2.10) *)

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;





(* Sparing Table (UDF 2.01 2.2.11) *)

Type
     OSTA_SparingEntry = packed record
          OriginalLocation  : DWord;
          MappedLocation    : DWord;
      end;

    POSTA_SparingEntry = ^OSTA_SparingEntry;


  OSTA_SparingTable = packed record
    DescriptorTag             : UDF_DescriptorTag;
    SparingIdentifier         : UDF_EntityIdentifier;
    ReallocationTableLength   : Word;
    Reserved                  : Word;
    SequenceNumber            : DWord;
  end;
   POSTA_SparingTable = ^OSTA_SparingTable;


(* 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;




(* 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;

(* 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;

(* Application Use Extended Attribute (UDF 2.01 3.3.4.6) *)
(* FreeAppEASpace (UDF 2.01 3.3.4.6.1) *)

     OSTA_FreeAppEaSpace = packed record
          HeaderChecksum     : Word;
          FreeEASpace1stByte : Byte;
     end;
      POSTA_FreeAppEaSpace = ^OSTA_FreeAppEaSpace;




implementation



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -