ReactOS  0.4.14-dev-593-g1793dcc
ecma_167.h
Go to the documentation of this file.
1 // Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
3 // All rights reserved
4 // This file was released under the GPLv2 on June 2015.
6 /*
7  Module name:
8 
9  ecma_167.h
10 
11  Abstract:
12 
13  This file contains ECMA-167 definitions
14 
15 */
16 
17 #ifndef __ECMA_167_H__
18 #define __ECMA_167_H__
19 
20 typedef uint8 dstring;
21 
22 #define UDF_COMP_ID_8 0x08
23 #define UDF_COMP_ID_16 0x10
24 
25 /* make sure all structures are packed! */
26 #pragma pack(push, 1)
27 
28 /* CS0 Charspec (ECMA 167 1/7.2.1) */
29 typedef struct {
31  uint8 charSetInfo[63];
32 } charspec;
33 
34 /* Timestamp (ECMA 167 1/7.3) */
35 typedef struct {
46 } timestamp;
47 
50 
51 /* Timestamp types (ECMA 167 1/7.3.1) */
52 #define TIMESTAMP_TYPE_CUT 0x0000U
53 #define TIMESTAMP_TYPE_LOCAL 0x0001U
54 #define TIMESTAMP_TYPE_AGREEMENT 0x0002U
55 #define TIMESTAMP_OFFSET_MASK 0x0FFFU
56 #define TIMESTAMP_NO_OFFSET 0x0800U
57 
58 /* Entity Identifier (ECMA 167 1/7.4) */
59 typedef struct {
61  uint8 ident[23];
62  uint8 identSuffix[8];
63 } EntityID;
64 #define regid EntityID
65 
66 /* Entity identifier flags (ECMA 167 1/7.4.1) */
67 #define ENTITYID_FLAGS_DIRTY 0x01U
68 #define ENTITYID_FLAGS_PROTECTED 0x02U
69 
70 /* Volume Structure Descriptor (ECMA 167 2/9.1) */
71 #define STD_ID_LEN 5
72 struct VolStructDesc {
77 };
78 
79 /* Std structure identifiers (ECMA 167 2/9.1.2) */
80 #define STD_ID_BEA01 "BEA01"
81 #define STD_ID_BOOT2 "BOOT2"
82 #define STD_ID_CD001 "CD001"
83 #define STD_ID_CDW02 "CDW02"
84 #define STD_ID_NSR02 "NSR02"
85 #define STD_ID_NSR03 "NSR03"
86 #define STD_ID_TEA01 "TEA01"
87 
88 /* Beginning Extended Area Descriptor (ECMA 167 2/9.2) */
94 };
95 
96 /* Terminating Extended Area Descriptor (ECMA 167 2/9.3) */
102 };
103 
104 /* Boot Descriptor (ECMA 167 2/9.4) */
105 typedef struct _BootDesc {
119  uint8 bootUse[1906];
120 } BootDesc, *PBootDesc;
121 
122 /* Boot flags (ECMA 167 2/9.4.12) */
123 #define BOOT_FLAGS_ERASE 1
124 
125 /* Extent Descriptor (ECMA 167 3/7.1) */
126 
127 typedef struct _EXTENT_AD {
131 
133 
136 
137 /* Descriptor Tag (ECMA 167 3/7.2) */
138 typedef struct {
147 } tag;
148 
149 typedef tag DESC_TAG;
151 
152 /* Tag Identifiers (ECMA 167 3/7.2.1) */
153 #define TID_UNUSED_DESC 0x0000U
154 #define TID_PRIMARY_VOL_DESC 0x0001U
155 #define TID_ANCHOR_VOL_DESC_PTR 0x0002U
156 #define TID_VOL_DESC_PTR 0x0003U
157 #define TID_IMP_USE_VOL_DESC 0x0004U
158 #define TID_PARTITION_DESC 0x0005U
159 #define TID_LOGICAL_VOL_DESC 0x0006U
160 #define TID_UNALLOC_SPACE_DESC 0x0007U
161 #define TID_TERMINATING_DESC 0x0008U
162 #define TID_LOGICAL_VOL_INTEGRITY_DESC 0x0009U
163 
164 /* Tag Identifiers (ECMA 167 4/7.2.1) */
165 #define TID_FILE_SET_DESC 0x0100U
166 #define TID_FILE_IDENT_DESC 0x0101U
167 #define TID_ALLOC_EXTENT_DESC 0x0102U
168 #define TID_INDIRECT_ENTRY 0x0103U
169 #define TID_TERMINAL_ENTRY 0x0104U
170 #define TID_FILE_ENTRY 0x0105U
171 #define TID_EXTENDED_ATTRE_HEADER_DESC 0x0106U
172 #define TID_UNALLOCATED_SPACE_ENTRY 0x0107U
173 #define TID_SPACE_BITMAP_DESC 0x0108U
174 #define TID_PARTITION_INTEGRITY_ENTRY 0x0109U
175 #define TID_EXTENDED_FILE_ENTRY 0x010AU
176 
177 /* NSR Descriptor (ECMA 167 3/9.1) */
178 struct NSRDesc {
184 };
185 
186 /* Primary Volume Descriptor (ECMA 167 3/10.1) */
210 };
211 
212 /* Primary volume descriptor flags (ECMA 167 3/10.1.21) */
213 #define VOL_SET_IDENT 1
214 
215 /* Anchor Volume Descriptor Pointer (ECMA 167 3/10.2) */
221 };
222 
223 /* Volume Descriptor Pointer (ECMA 167 3/10.3) */
224 struct VolDescPtr {
229 };
230 
231 #define MAX_VDS_PARTS 32
232 
233 /* Implementation Use Volume Descriptor (ECMA 167 3/10.4) */
238  uint8 impUse[460];
239 };
240 
241 /* Partition Descriptor (ECMA 167 3/10.5) */
253  uint8 impUse[128];
255 };
256 
257 /* Partition Flags (ECMA 167 3/10.5.3) */
258 #define PARTITION_FLAGS_ALLOC 1
259 
260 /* Partition Contents (ECMA 167 3/10.5.5) */
261 #define PARTITION_CONTENTS_FDC01 "+FDC01"
262 #define PARTITION_CONTENTS_CD001 "+CD001"
263 #define PARTITION_CONTENTS_CDW02 "+CDW02"
264 #define PARTITION_CONTENTS_NSR02 "+NSR02"
265 #define PARTITION_CONTENTS_NSR03 "+NSR03"
266 
267 /* Partition Access Types (ECMA 167 3/10.5.7) */
268 #define PARTITION_ACCESS_NONE 0
269 #define PARTITION_ACCESS_R 1
270 #define PARTITION_ACCESS_WO 2
271 #define PARTITION_ACCESS_RW 3
272 #define PARTITION_ACCESS_OW 4
273 #define PARTITION_ACCESS_MAX_KNOWN PARTITION_ACCESS_OW
274 
275 /* Logical Volume Descriptor (ECMA 167 3/10.6) */
283  uint8 logicalVolContentsUse[16]; /* used to find fileset */
287  uint8 impUse[128];
289 // uint8 partitionMaps[0];
290 };
291 
292 /* Generic Partition Map (ECMA 167 3/10.7.1) */
296 // uint8 partitionMapping[0];
297 };
298 
299 /* Partition Map Type (ECMA 167 3/10.7.1.1) */
300 #define PARTITION_MAP_TYPE_NONE 0
301 #define PARTITION_MAP_TYPE_1 1
302 #define PARTITION_MAP_TYPE_2 2
303 
304 /* Type 1 Partition Map (ECMA 167 3/10.7.2) */
310 };
311 
312 /* Type 2 Partition Map (ECMA 167 3/10.7.3) */
317 };
318 
319 /* Unallocated Space Descriptor (ECMA 167 3/10.8) */
320 typedef struct _UNALLOC_SPACE_DESC {
324 // extent_ad allocDescs[0];
326 
328 
329 /* Terminating Descriptor (ECMA 3/10.9) */
333 };
334 
336 {
339 };
340 
341 /* Logical Volume Integrity Descriptor (ECMA 167 3/10.10) */
342 
351 // uint32 freeSpaceTable[0];
352 // uint32 sizeTable[0];
353 // uint8 impUse[0];
354 };
355 
356 /* Integrity Types (ECMA 167 3/10.10.3) */
357 #define INTEGRITY_TYPE_OPEN 0
358 #define INTEGRITY_TYPE_CLOSE 1
359 
360 /* Recorded Address (ECMA 167 4/7.1) */
361 typedef struct {
364 } lb_addr;
365 
366 /* Extent interpretation (ECMA 167 4/14.14.1.1) */
367 #define EXTENT_RECORDED_ALLOCATED 0x00
368 #define EXTENT_NOT_RECORDED_ALLOCATED 0x01
369 #define EXTENT_NOT_RECORDED_NOT_ALLOCATED 0x02
370 #define EXTENT_NEXT_EXTENT_ALLOCDESC 0x03
371 
372 /* Long Allocation Descriptor (ECMA 167 4/14.14.2) */
373 typedef struct {
376  uint8 impUse[6];
377 } long_ad;
378  /* upper 2 bits of extLength indicate type */
379 typedef long_ad LONG_AD;
380 typedef LONG_AD* PLONG_AD;
381 
382 /* File Set Descriptor (ECMA 167 4/14.1) */
383 typedef struct _FILE_SET_DESC {
398  long_ad rootDirectoryICB; //points to Allocation Ext Descriptor
404 
405 /* Short Allocation Descriptor (ECMA 167 4/14.14.1) */
406 typedef struct _SHORT_AD {
409 } SHORT_AD, *PSHORT_AD;
410 
412 
413 /* Partition Header Descriptor (ECMA 167 4/14.3) */
414 typedef struct _PARTITION_HEADER_DESC {
416  short_ad unallocatedSpaceBitmap; // 0 - allocated, 1 - free
419  short_ad freedSpaceBitmap; // 0 - ???? 1 - freed
422 
423 /* File Identifier Descriptor (ECMA 167 4/14.4) */
424 
425 typedef struct _FILE_IDENT_DESC {
432 // uint8 impUse[0];
433 // uint8 fileIdent[0];
434 // uint8 padding[0];
436 
437 /* File Characteristics (ECMA 167 4/14.4.3) */
438 #define FILE_HIDDEN 0x01
439 #define FILE_DIRECTORY 0x02
440 #define FILE_DELETED 0x04
441 #define FILE_PARENT 0x08
442 #define FILE_METADATA 0x10 /* UDF 2.0 */
443 
444 /* Allocation Ext Descriptor (ECMA 167 4/14.5) */
445 typedef struct _ALLOC_EXT_DESC {
450 
451 /* ICB Tag (ECMA 167 4/14.6) */
452 typedef struct {
461 } icbtag;
462 
463 /* ICB File Type (ECMA 167 4/14.6.6) */
464 #define UDF_FILE_TYPE_NONE 0x00U
465 #define UDF_FILE_TYPE_UNALLOC 0x01U
466 #define UDF_FILE_TYPE_INTEGRITY 0x02U
467 #define UDF_FILE_TYPE_INDIRECT 0x03U
468 #define UDF_FILE_TYPE_DIRECTORY 0x04U
469 #define UDF_FILE_TYPE_REGULAR 0x05U
470 #define UDF_FILE_TYPE_BLOCK 0x06U
471 #define UDF_FILE_TYPE_CHAR 0x07U
472 #define UDF_FILE_TYPE_EXTENDED 0x08U
473 #define UDF_FILE_TYPE_FIFO 0x09U
474 #define UDF_FILE_TYPE_SOCKET 0x0aU
475 #define UDF_FILE_TYPE_TERMINAL 0x0bU
476 #define UDF_FILE_TYPE_SYMLINK 0x0cU
477 #define UDF_FILE_TYPE_STREAMDIR 0x0dU /* ECMA 167 4/13 */
478 
479 /* ICB Flags (ECMA 167 4/14.6.8) */
480 #define ICB_FLAG_ALLOC_MASK 0x0007U
481 #define ICB_FLAG_SORTED 0x0008U
482 #define ICB_FLAG_NONRELOCATABLE 0x0010U
483 #define ICB_FLAG_ARCHIVE 0x0020U
484 #define ICB_FLAG_SETUID 0x0040U
485 #define ICB_FLAG_SETGID 0x0080U
486 #define ICB_FLAG_STICKY 0x0100U
487 #define ICB_FLAG_CONTIGUOUS 0x0200U
488 #define ICB_FLAG_SYSTEM 0x0400U
489 #define ICB_FLAG_TRANSFORMED 0x0800U
490 #define ICB_FLAG_MULTIVERSIONS 0x1000U
491 
492 /* ICB Flags Allocation type(ECMA 167 4/14.6.8) */
493 #define ICB_FLAG_AD_SHORT 0
494 #define ICB_FLAG_AD_LONG 1
495 #define ICB_FLAG_AD_EXTENDED 2
496 #define ICB_FLAG_AD_IN_ICB 3
497 
498 /* Indirect Entry (ECMA 167 4/14.7) */
503 };
504 
505 /* Terminal Entry (ECMA 167 4/14.8) */
509 };
510 
511 /* File Entry (ECMA 167 4/14.9) */
512 
513 typedef struct _FILE_ENTRY {
531  uint64 uniqueID; /* 0= root, 16- (2^32-1) */
532 
535 // uint8 extendedAttr[0];
536 // uint8 allocDescs[0];
538 
539 /* File Permissions (ECMA 167 4/14.9.5) */
540 #define PERM_O_EXEC 0x00000001U
541 #define PERM_O_WRITE 0x00000002U
542 #define PERM_O_READ 0x00000004U
543 #define PERM_O_CHATTR 0x00000008U
544 #define PERM_O_DELETE 0x00000010U
545 #define PERM_G_EXEC 0x00000020U
546 #define PERM_G_WRITE 0x00000040U
547 #define PERM_G_READ 0x00000080U
548 #define PERM_G_CHATTR 0x00000100U
549 #define PERM_G_DELETE 0x00000200U
550 #define PERM_U_EXEC 0x00000400U
551 #define PERM_U_WRITE 0x00000800U
552 #define PERM_U_READ 0x00001000U
553 #define PERM_U_CHATTR 0x00002000U
554 #define PERM_U_DELETE 0x00004000U
555 
556 /* File Record Format (ECMA 167 4/14.9.7) */
557 #define RECORD_FMT_NONE 0
558 #define RECORD_FMT_FIXED_PAD 1
559 #define RECORD_FMT_FIXED 2
560 #define RECORD_FMT_VARIABLE8 3
561 #define RECORD_FMT_VARIABLE16 4
562 #define RECORD_FMT_VARIABLE16_MSB 5
563 #define RECORD_FMT_VARIABLE32 6
564 #define RECORD_FMT_PRINT 7
565 #define RECORD_FMT_LF 8
566 #define RECORD_FMT_CR 9
567 #define RECORD_FMT_CRLF 10
568 #define RECORD_FMT_LFCR 10
569 
570 /* Extended Attribute Header Descriptor (ECMA 167 4/14.10.1) */
575 };
576 
577 /* Generic Attribute Format (ECMA 4/14.10.2) */
583 // uint8 attrData[0];
584 };
585 
586 /* Character Set Attribute Format (ECMA 4/14.10.3) */
588  uint32 attrType; /* 1 */
594 // uint8 escapeSeq[0];
595 };
596 
597 /* Alternate Permissions (ECMA 167 4/14.10.4) */
599  uint32 attrType; /* 3 */
606 };
607 
608 /* File Times Extended Attribute (ECMA 167 4/14.10.5) */
610  uint32 attrType; /* 5 */
616 // timestamp fileTimes[0];
617 };
618 
619 /* FileTimeExistence (ECMA 167 4/14.10.5.6) */
620 #define FTE_CREATION 0
621 #define FTE_DELETION 2
622 #define FTE_EFFECTIVE 3
623 #define FTE_BACKUP 5
624 
625 /* Information Times Extended Attribute (ECMA 167 4/14.10.6) */
627  uint32 attrType; /* 6 */
633 // uint8 infoTimes[0];
634 };
635 
636 /* Device Specification Extended Attribute (ECMA 167 4/14.10.7) */
638  uint32 attrType; /* 12 */
645 // uint8 impUse[0];
646 };
647 
648 /* Implementation Use Extended Attr (ECMA 167 4/14.10.8) */
650  uint32 attrType; /* 2048 */
656 // uint8 impUse[0];
657 };
658 
659 /* Application Use Extended Attribute (ECMA 167 4/14.10.9) */
661  uint32 attrType; /* 65536 */
667 // uint8 appUse[0];
668 };
669 
670 #define EXTATTR_CHAR_SET 1
671 #define EXTATTR_ALT_PERMS 3
672 #define EXTATTR_FILE_TIMES 5
673 #define EXTATTR_INFO_TIMES 6
674 #define EXTATTR_DEV_SPEC 12
675 #define EXTATTR_IMP_USE 2048
676 #define EXTATTR_APP_USE 65536
677 
678 
679 /* Unallocated Space Entry (ECMA 167 4/14.11) */
684 // uint8 allocDescs[0];
685 };
686 
687 /* Space Bitmap Descriptor (ECMA 167 4/14.12) */
688 typedef struct _SPACE_BITMAP_DESC {
692 // uint8 bitmap[0]; // describes blocks from Lba=0 to Lba=LAST_LBA
694 
696 
697 /* Partition Integrity Entry (ECMA 167 4/14.13) */
705  uint8 impUse[256];
706 };
707 
708 #define INTEGRITY_TYPE_STABLE 2
709 
710 /* Extended Allocation Descriptor (ECMA 167 4/14.14.3) */
711 typedef struct _EXT_AD { /* ECMA 167 4/14.14.3 */
716 } EXT_AD, *PEXT_AD;
717 
718 typedef EXT_AD ext_ad;
719 
720 /* Logical Volume Header Descriptor (ECMA 167 4/14.5) */
724 };
725 
726 /* Path Component (ECMA 167 4/14.16.1) */
731 // dstring componentIdent[0];
732 };
733 
734 #define COMPONENT_TYPE_ROOT_X 0x01 /* originator & recipient know its value */
735 #define COMPONENT_TYPE_ROOT 0x02 /* root of the volume */
736 #define COMPONENT_TYPE_PARENT 0x03 /* predecessor's parent dir */
737 #define COMPONENT_TYPE_CURENT 0x04 /* same as predecessor's dir */
738 #define COMPONENT_TYPE_OBJECT 0x05 /* terminal entry */
739 
740 /* File Entry (ECMA 167 4/14.17) */
741 
742 typedef struct _EXTENDED_FILE_ENTRY {
767 // uint8 extendedAttr[0];
768 // uint8 allocDescs[0];
770 
772 
773 #pragma pack(pop)
774 
775 #endif /* __ECMA_167_H__ */
776 
unsigned long long uint64
Definition: platform.h:18
long_ad streamDirectoryICB
Definition: ecma_167.h:762
struct _EXTENT_AD * PEXTENT_AD
uint16 tagIdent
Definition: ecma_167.h:139
uint32 volDescSeqNum
Definition: ecma_167.h:236
uint8 partitionMapLength
Definition: ecma_167.h:315
tag descTag
Definition: ecma_167.h:337
uint16 strategyParameter
Definition: ecma_167.h:455
long_ad extendedAttrICB
Definition: ecma_167.h:529
EntityID bootIdent
Definition: ecma_167.h:111
short_ad unallocatedSpaceBitmap
Definition: ecma_167.h:416
uint8 structData[2041]
Definition: ecma_167.h:76
struct _FILE_IDENT_DESC * PFILE_IDENT_DESC
timestamp accessTime
Definition: ecma_167.h:525
struct _FILE_SET_DESC * PFILE_SET_DESC
uint32 gid
Definition: ecma_167.h:517
uint8 lengthComponentIdent
Definition: ecma_167.h:729
SHORT_AD short_ad
Definition: ecma_167.h:411
long_ad rootDirectoryICB
Definition: ecma_167.h:398
uint32 extLength
Definition: ecma_167.h:407
uint8 structType
Definition: ecma_167.h:73
PEXTENT_AD PEXTENT_MAP
Definition: ecma_167.h:135
uint8 minute
Definition: ecma_167.h:41
timestamp attrTime
Definition: ecma_167.h:527
uint8 reserved[3]
Definition: ecma_167.h:663
uint16 interchangeLvl
Definition: ecma_167.h:386
long_ad nextExt
Definition: ecma_167.h:400
uint8 fileCharacteristics
Definition: ecma_167.h:428
uint8 partitionMapType
Definition: ecma_167.h:294
uint32 numPartitionMaps
Definition: ecma_167.h:285
uint16 maxInterchangeLvl
Definition: ecma_167.h:195
struct _FILE_IDENT_DESC FILE_IDENT_DESC
uint32 lengthAllocDescs
Definition: ecma_167.h:766
timestamp descCreationDateAndTime
Definition: ecma_167.h:116
charspec fileSetCharSet
Definition: ecma_167.h:394
struct _SHORT_AD SHORT_AD
extent_ad mainVolDescSeqExt
Definition: ecma_167.h:218
uint64 uniqueID
Definition: ecma_167.h:764
uint32 fileSetNum
Definition: ecma_167.h:390
uint32 lengthExtendedAttr
Definition: ecma_167.h:765
uint8 tagChecksum
Definition: ecma_167.h:141
struct _EXTENDED_FILE_ENTRY EXTENDED_FILE_ENTRY
EXTENT_AD EXTENT_MAP
Definition: ecma_167.h:134
unsigned int uint32
Definition: types.h:32
uint32 attrLength
Definition: ecma_167.h:591
uint8 second
Definition: ecma_167.h:42
uint32 appUseLength
Definition: ecma_167.h:665
uint8 structType
Definition: ecma_167.h:179
uint32 mapTableLength
Definition: ecma_167.h:284
uint8 recordDisplayAttr
Definition: ecma_167.h:750
uint16 fileLinkCount
Definition: ecma_167.h:519
uint8 day
Definition: ecma_167.h:39
struct _FILE_ENTRY * PFILE_ENTRY
extent_ad integritySeqExt
Definition: ecma_167.h:288
uint8 structVersion
Definition: ecma_167.h:181
UDF_TIME_STAMP * PUDF_TIME_STAMP
Definition: ecma_167.h:49
timestamp modificationTime
Definition: ecma_167.h:756
uint32 extLocation
Definition: ecma_167.h:129
Definition: ecma_167.h:138
uint16 numEntries
Definition: ecma_167.h:456
uint32 tagLocation
Definition: ecma_167.h:146
long_ad LONG_AD
Definition: ecma_167.h:379
lb_addr extLocation
Definition: ecma_167.h:715
uint32 previousAllocExtLocation
Definition: ecma_167.h:447
uint32 uid
Definition: ecma_167.h:745
uint64 logicalBlocksRecorded
Definition: ecma_167.h:524
lb_addr extLocation
Definition: ecma_167.h:375
short_ad freedSpaceBitmap
Definition: ecma_167.h:419
uint16 typeAndTimezone
Definition: ecma_167.h:36
uint32 attrLength
Definition: ecma_167.h:582
timestamp accessTime
Definition: ecma_167.h:755
uint8 stdIdent[STD_ID_LEN]
Definition: ecma_167.h:91
uint32 volDescSeqNum
Definition: ecma_167.h:338
uint8 structData[2040]
Definition: ecma_167.h:183
struct _SPACE_BITMAP_DESC SPACE_BITMAP_DESC
timestamp recordingDateAndTime
Definition: ecma_167.h:385
uint16 interchangeLvl
Definition: ecma_167.h:194
uint32 charSetList
Definition: ecma_167.h:388
DESC_TAG * PDESC_TAG
Definition: ecma_167.h:150
uint8 reserved[484]
Definition: ecma_167.h:228
dstring logicalVolIdent[128]
Definition: ecma_167.h:393
uint16 descCRC
Definition: ecma_167.h:144
uint32 recordedLength
Definition: ecma_167.h:713
uint8 reserved[480]
Definition: ecma_167.h:220
struct _PARTITION_HEADER_DESC PARTITION_HEADER_DESC
struct _EXT_AD * PEXT_AD
uint32 volDescSeqNum
Definition: ecma_167.h:244
EntityID impIdent
Definition: ecma_167.h:237
uint8 impUse[64]
Definition: ecma_167.h:206
uint64 loadAddress
Definition: ecma_167.h:114
uint8 reserved[3]
Definition: ecma_167.h:581
EntityID impIdent
Definition: ecma_167.h:763
uint64 uniqueID
Definition: ecma_167.h:531
extent_ad reserveVolDescSeqExt
Definition: ecma_167.h:219
uint16 maxInterchangeLvl
Definition: ecma_167.h:387
uint32 fileTimeExistence
Definition: ecma_167.h:615
uint32 charSetList
Definition: ecma_167.h:196
uint32 checkpoint
Definition: ecma_167.h:528
extent_ad volCopyright
Definition: ecma_167.h:202
charspec logicalVolIdentCharSet
Definition: ecma_167.h:392
uint16 volSeqNum
Definition: ecma_167.h:192
dstring copyrightFileIdent[32]
Definition: ecma_167.h:396
uint8 reserved
Definition: ecma_167.h:457
uint32 bootExtLength
Definition: ecma_167.h:113
uint64 startAddress
Definition: ecma_167.h:115
uint8 partitionContentsUse[128]
Definition: ecma_167.h:248
struct _BootDesc BootDesc
uint64 informationLength
Definition: ecma_167.h:752
uint32 permissions
Definition: ecma_167.h:518
uint32 maxCharSetList
Definition: ecma_167.h:197
uint8 reserved[156]
Definition: ecma_167.h:254
uint32 extLength
Definition: ecma_167.h:712
uint32 impUseLength
Definition: ecma_167.h:654
UNALLOC_SPACE_DESC UnallocatedSpaceDesc
Definition: ecma_167.h:327
uint32 bootExtLocation
Definition: ecma_167.h:112
uint32 volDescSeqNum
Definition: ecma_167.h:226
uint8 partitionIdent[62]
Definition: ecma_167.h:316
uint32 volDescSeqNum
Definition: ecma_167.h:278
struct _SHORT_AD * PSHORT_AD
uint8 structVersion
Definition: ecma_167.h:108
EXT_AD ext_ad
Definition: ecma_167.h:718
uint8 lengthFileIdent
Definition: ecma_167.h:429
uint8 componentType
Definition: ecma_167.h:728
extent_ad nextVolDescSeqExt
Definition: ecma_167.h:227
EntityID impIdent
Definition: ecma_167.h:286
EntityID architectureType
Definition: ecma_167.h:110
_In_ ULONG _In_ ULONG_PTR ident
Definition: winddi.h:3993
EntityID domainIdent
Definition: ecma_167.h:399
uint8 hour
Definition: ecma_167.h:40
uint32 recordLength
Definition: ecma_167.h:522
struct _ALLOC_EXT_DESC ALLOC_EXT_DESC
uint32 lengthAllocDescs
Definition: ecma_167.h:448
icbtag icbTag
Definition: ecma_167.h:744
uint16 fileLinkCount
Definition: ecma_167.h:748
uint16 componentFileVersionNum
Definition: ecma_167.h:730
SPACE_BITMAP_DESC SpaceBitmapDesc
Definition: ecma_167.h:695
Definition: ecma_167.h:742
uint8 structData[2041]
Definition: ecma_167.h:93
LONG_AD * PLONG_AD
Definition: ecma_167.h:380
uint8 stdIdent[STD_ID_LEN]
Definition: ecma_167.h:180
uint8 recordFormat
Definition: ecma_167.h:749
long_ad streamDirectoryICB
Definition: ecma_167.h:401
uint8 month
Definition: ecma_167.h:38
timestamp attrTime
Definition: ecma_167.h:758
uint8 flags
Definition: ecma_167.h:60
uint8 impUse[128]
Definition: ecma_167.h:287
dstring abstractFileIdent[32]
Definition: ecma_167.h:397
uint8 charSetType
Definition: ecma_167.h:30
EntityID impIdent
Definition: ecma_167.h:252
charspec explanatoryCharSet
Definition: ecma_167.h:200
uint64 informationLength
Definition: ecma_167.h:523
uint8 reserved[496]
Definition: ecma_167.h:332
uint8 recordDisplayAttr
Definition: ecma_167.h:521
EntityID domainIdent
Definition: ecma_167.h:282
uint32 lengthExtendedAttr
Definition: ecma_167.h:533
uint8 reserved1
Definition: ecma_167.h:109
uint32 partitionStartingLocation
Definition: ecma_167.h:250
struct _ALLOC_EXT_DESC * PALLOC_EXT_DESC
unsigned char uint8
Definition: types.h:28
uint16 lengthOfImpUse
Definition: ecma_167.h:431
timestamp UDF_TIME_STAMP
Definition: ecma_167.h:48
extent_ad nextIntegrityExt
Definition: ecma_167.h:347
tag descTag
Definition: ecma_167.h:743
uint8 logicalVolContentsUse[32]
Definition: ecma_167.h:348
uint8 dstring
Definition: ecma_167.h:20
uint8 stdIdent[STD_ID_LEN]
Definition: ecma_167.h:107
uint32 informationLength
Definition: ecma_167.h:714
Definition: ecma_167.h:513
dstring volSetIdent[128]
Definition: ecma_167.h:198
charspec descCharSet
Definition: ecma_167.h:199
struct _FILE_SET_DESC FILE_SET_DESC
uint64 logicalBlocksRecorded
Definition: ecma_167.h:754
uint16 descVersion
Definition: ecma_167.h:140
uint8 reserved2[32]
Definition: ecma_167.h:118
uint16 partitionFlags
Definition: ecma_167.h:245
uint16 tagSerialNum
Definition: ecma_167.h:143
uint16 fileVersionNum
Definition: ecma_167.h:427
uint8 centiseconds
Definition: ecma_167.h:43
uint32 lengthAllocDescs
Definition: ecma_167.h:534
uint8 reserved[32]
Definition: ecma_167.h:402
extent_ad volAbstract
Definition: ecma_167.h:201
uint32 logicalBlockSize
Definition: ecma_167.h:281
long_ad indirectICB
Definition: ecma_167.h:502
uint32 gid
Definition: ecma_167.h:746
struct _SPACE_BITMAP_DESC * PSPACE_BITMAP_DESC
uint32 uid
Definition: ecma_167.h:516
timestamp createTime
Definition: ecma_167.h:757
struct _UNALLOC_SPACE_DESC UNALLOC_SPACE_DESC
EntityID appIdent
Definition: ecma_167.h:666
uint8 structVersion
Definition: ecma_167.h:75
uint32 fileSetDescNum
Definition: ecma_167.h:391
uint32 extLength
Definition: ecma_167.h:128
uint32 volDescSeqNum
Definition: ecma_167.h:189
uint32 checkpoint
Definition: ecma_167.h:759
struct _EXTENT_AD EXTENT_AD
uint8 reserved[3]
Definition: ecma_167.h:652
tag descTag
Definition: ecma_167.h:514
uint8 partitionMapLength
Definition: ecma_167.h:307
icbtag icbTag
Definition: ecma_167.h:515
uint16 flags
Definition: ecma_167.h:208
uint64 objectSize
Definition: ecma_167.h:753
uint8 reserved
Definition: ecma_167.h:182
long_ad extendedAttrICB
Definition: ecma_167.h:761
EntityID appIdent
Definition: ecma_167.h:203
uint32 primaryVolDescNum
Definition: ecma_167.h:190
uint8 logicalVolContentsUse[16]
Definition: ecma_167.h:283
uint32 priorRecordedNumDirectEntries
Definition: ecma_167.h:453
uint32 numAllocDescs
Definition: ecma_167.h:323
uint16 partitionNumber
Definition: ecma_167.h:246
timestamp recordingDateAndTime
Definition: ecma_167.h:701
tag DESC_TAG
Definition: ecma_167.h:149
short_ad partitionIntegrityTable
Definition: ecma_167.h:417
unsigned short uint16
Definition: types.h:30
icbtag icbTag
Definition: ecma_167.h:501
struct _PARTITION_HEADER_DESC * PPARTITION_HEADER_DESC
uint32 extPosition
Definition: ecma_167.h:408
uint8 reserved[24]
Definition: ecma_167.h:723
struct _BootDesc * PBootDesc
uint16 flags
Definition: ecma_167.h:460
uint16 strategyType
Definition: ecma_167.h:454
uint8 stdIdent[STD_ID_LEN]
Definition: ecma_167.h:74
uint8 reserved[22]
Definition: ecma_167.h:209
EXTENT_AD extent_ad
Definition: ecma_167.h:132
uint32 reserved
Definition: ecma_167.h:760
struct _EXTENDED_FILE_ENTRY * PEXTENDED_FILE_ENTRY
uint32 logicalBlockNum
Definition: ecma_167.h:362
uint32 recordLength
Definition: ecma_167.h:751
timestamp recordingDateAndTime
Definition: ecma_167.h:345
struct _EXT_AD EXT_AD
EXTENDED_FILE_ENTRY ExtendedFileEntry
Definition: ecma_167.h:771
uint16 partitionReferenceNum
Definition: ecma_167.h:363
uint32 escapeSeqLength
Definition: ecma_167.h:592
uint8 fileType
Definition: ecma_167.h:458
uint32 accessType
Definition: ecma_167.h:249
uint8 impUse[460]
Definition: ecma_167.h:238
uint16 flags
Definition: ecma_167.h:117
uint8 reserved[3]
Definition: ecma_167.h:590
icbtag icbTag
Definition: ecma_167.h:508
#define STD_ID_LEN
Definition: ecma_167.h:71
timestamp recordingDateAndTime
Definition: ecma_167.h:204
dstring logicalVolIdent[128]
Definition: ecma_167.h:280
tag descTag
Definition: ecma_167.h:225
uint8 structType
Definition: ecma_167.h:106
uint8 impUse[128]
Definition: ecma_167.h:253
EntityID impIdent
Definition: ecma_167.h:530
short_ad unallocatedSpaceTable
Definition: ecma_167.h:415
struct _UNALLOC_SPACE_DESC * PUNALLOC_SPACE_DESC
uint32 volDescSeqNum
Definition: ecma_167.h:322
uint8 stdIdent[STD_ID_LEN]
Definition: ecma_167.h:99
EntityID impIdent
Definition: ecma_167.h:205
uint32 extLength
Definition: ecma_167.h:374
uint32 infoTimeExistence
Definition: ecma_167.h:632
uint8 hundredsOfMicroseconds
Definition: ecma_167.h:44
uint8 recordFormat
Definition: ecma_167.h:520
timestamp modificationTime
Definition: ecma_167.h:526
uint8 reserved
Definition: ecma_167.h:142
lb_addr parentICBLocation
Definition: ecma_167.h:459
uint16 year
Definition: ecma_167.h:37
EntityID impIdent
Definition: ecma_167.h:655
charspec descCharSet
Definition: ecma_167.h:279
uint16 maxVolSeqNum
Definition: ecma_167.h:193
uint32 permissions
Definition: ecma_167.h:747
uint8 bootUse[1906]
Definition: ecma_167.h:119
dstring volIdent[32]
Definition: ecma_167.h:191
uint16 descCRCLength
Definition: ecma_167.h:145
uint8 partitionMapLength
Definition: ecma_167.h:295
uint32 partitionLength
Definition: ecma_167.h:251
uint32 predecessorVolDescSeqLocation
Definition: ecma_167.h:207
short_ad freedSpaceTable
Definition: ecma_167.h:418
dstring fileSetIdent[32]
Definition: ecma_167.h:395
uint8 microseconds
Definition: ecma_167.h:45
struct _FILE_ENTRY FILE_ENTRY
uint32 maxCharSetList
Definition: ecma_167.h:389
EntityID partitionContents
Definition: ecma_167.h:247
char * tag
Definition: main.c:59