X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FFilesystems%2FNTFS%2Fcommon.h;h=598120d27c9023e7260448f114ce9ccd58355afa;hb=3681dbf27244ee07ae618a9d33a608ae6089d3c5;hp=8d2a9ecdf43a01575e317a0774a02429a60d4263;hpb=da7ef0c8cace452ccfdfa0881a3c0b09970874d8;p=tpg%2Facess2.git diff --git a/Modules/Filesystems/NTFS/common.h b/Modules/Filesystems/NTFS/common.h index 8d2a9ecd..598120d2 100644 --- a/Modules/Filesystems/NTFS/common.h +++ b/Modules/Filesystems/NTFS/common.h @@ -12,6 +12,8 @@ #include #include +typedef Uint16 WCHAR; + // === STRUCTURES === /** * In-memory representation of an NTFS Disk @@ -19,9 +21,11 @@ typedef struct sNTFS_Disk { int FD; + int CacheHandle; int ClusterSize; Uint64 MFTBase; + Uint32 MFTRecSize; tVFS_Node RootNode; } tNTFS_Disk; @@ -34,31 +38,35 @@ typedef struct sNTFS_BootSector Uint16 BytesPerSector; Uint8 SectorsPerCluster; - // 14 + // 0xE Uint8 Unused[7]; Uint8 MediaDescriptor; Uint16 Unused2; Uint16 SectorsPerTrack; + Uint16 Heads; + // 0x1C Uint64 Unused3; - Uint32 Unknown; + Uint32 Unkown; // Usually 0x00800080 (according to Linux docs) - // 38 + // 0x28 Uint64 TotalSectorCount; // Size of volume in sectors Uint64 MFTStart; // Logical Cluster Number of Cluster 0 of MFT Uint64 MFTMirrorStart; // Logical Cluster Number of Cluster 0 of MFT Backup - // 60 + // 0x40 // If either of these are -ve, the size can be obtained via // SizeInBytes = 2^(-1 * Value) - Uint32 ClustersPerMFTRecord; - Uint32 ClustersPerIndexRecord; + Sint8 ClustersPerMFTRecord; + Uint8 Unused4[3]; + Sint8 ClustersPerIndexRecord; + Uint8 Unused5[3]; Uint64 SerialNumber; - Uint8 Padding[512-72]; + Uint8 Padding[512-0x50]; -} tNTFS_BootSector; +} PACKED tNTFS_BootSector; /** * FILE header, an entry in the MFT @@ -100,7 +108,7 @@ typedef struct sNTFS_FILE_Header } All; } OSDep; -} tNTFS_FILE_Header; +} PACKED tNTFS_FILE_Header; /** * File Attribute, follows the FILE header @@ -140,6 +148,6 @@ typedef struct sNTFS_FILE_Attrib // Data Runs } NonResident; }; -} tNTFS_FILE_Attrib; +} PACKED tNTFS_FILE_Attrib; #endif