6 #define CDFS_BASIC_SECTOR 2048
7 #define CDFS_PRIMARY_DESCRIPTOR_LOCATION 16
8 #define BLOCKSIZE CDFS_BASIC_SECTOR
9 #define CDFS_MAX_NAME_LEN 256
13 UCHAR RecordLength
; // 1
14 UCHAR ExtAttrRecordLength
; // 2
15 ULONG ExtentLocationL
; // 3-6
16 ULONG ExtentLocationM
; // 7-10
17 ULONG DataLengthL
; // 11-14
18 ULONG DataLengthM
; // 15-18
26 UCHAR FileFlags
; // 26
27 UCHAR FileUnitSize
; // 27
28 UCHAR InterleaveGapSize
; // 28
29 ULONG VolumeSequenceNumber
; // 29-32
30 UCHAR FileIdLength
; // 33
31 UCHAR FileId
[1]; // 34
32 } __attribute__((packed
));
34 typedef struct _DIR_RECORD DIR_RECORD
, PDIR_RECORD
;
37 /* Primary Volume Descriptor */
40 unsigned char VdType
; // 1
41 unsigned char StandardId
[5]; // 2-6
42 unsigned char VdVersion
; // 7
43 unsigned char unused0
; // 8
44 unsigned char SystemId
[32]; // 9-40
45 unsigned char VolumeId
[32]; // 41-72
46 unsigned char unused1
[8]; // 73-80
47 unsigned long VolumeSpaceSizeL
; // 81-84
48 unsigned long VolumeSpaceSizeM
; // 85-88
49 unsigned char unused2
[32]; // 89-120
50 unsigned long VolumeSetSize
; // 121-124
51 unsigned long VolumeSequenceNumber
; // 125-128
52 unsigned long LogicalBlockSize
; // 129-132
53 unsigned long PathTableSizeL
; // 133-136
54 unsigned long PathTableSizeM
; // 137-140
55 ULONG LPathTablePos
; // 141-144
56 ULONG LOptPathTablePos
; // 145-148
57 ULONG MPathTablePos
; // 149-152
58 ULONG MOptPathTablePos
; // 153-156
59 DIR_RECORD RootDirRecord
; // 157-190
63 } __attribute__((packed
));
65 typedef struct _PVD PVD
, *PPVD
;
71 REACTOS_COMMON_FCB_HEADER RFCB
;
72 SECTION_OBJECT_POINTERS SectionObjectPointers
;
74 /* CDFS owned elements */
79 wchar_t name
[CDFS_MAX_NAME_LEN
];
81 unsigned int extent_start
;
82 unsigned int byte_count
;
83 unsigned int file_pointer
;
84 } FsdFcbEntry
, FCB
, *PFCB
;
88 CdfsReadSectors(IN PDEVICE_OBJECT DeviceObject
,
91 IN OUT PUCHAR Buffer
);
93 int CdfsStrcmpi( wchar_t *str1
, wchar_t *str2
);
94 void CdfsWstrcpy( wchar_t *str1
, wchar_t *str2
, int max
);
98 CDFS: FCB system (Perhaps there should be a library to make this easier)
101 typedef struct _fcb_system
106 FsdFcbEntry
**fcb_table
;
112 FsdGetFcbEntry(fcb_system
*fss
,