internal Inode(byte[] bytes, uint inode) { InodeNumber = inode; Mode = GetMode(BitConverter.ToUInt16(bytes, 0x00)); UserId = BitConverter.ToUInt16(bytes, 0x02); Size = BitConverter.ToInt32(bytes, 0x04); AccessTime = NativeMethods.FromUnixTime(BitConverter.ToUInt32(bytes, 0x08)); ChangedTime = NativeMethods.FromUnixTime(BitConverter.ToUInt32(bytes, 0x0C)); ModifiedTime = NativeMethods.FromUnixTime(BitConverter.ToUInt32(bytes, 0x10)); DeletedTime = NativeMethods.FromUnixTime(BitConverter.ToUInt32(bytes, 0x14)); GroupId = BitConverter.ToUInt16(bytes, 0x18); LinksCount = BitConverter.ToUInt16(bytes, 0x1A); BlockCount = BitConverter.ToUInt32(bytes, 0x1C); Flags = (I_FLAGS)BitConverter.ToUInt32(bytes, 0x20); Blocks = Extent.GetInstances(NativeMethods.GetSubArray(bytes, 0x28, 0x3C)); Generation = BitConverter.ToUInt32(bytes, 0x64); FileACL = BitConverter.ToUInt32(bytes, 0x68); DirectoryACL = BitConverter.ToUInt32(bytes, 0x6C); // Need to work on this OSD2 = NativeMethods.GetSubArray(bytes, 0x74, 0x0C); ExtraSize = BitConverter.ToUInt16(bytes, 0x80); Checksum = BitConverter.ToUInt16(bytes, 0x82); ChangeTimeExtra = BitConverter.ToUInt32(bytes, 0x84); ModifiedTimeExtra = BitConverter.ToUInt32(bytes, 0x88); AccessTimeExtra = BitConverter.ToUInt32(bytes, 0x8C); BornTime = NativeMethods.FromUnixTime(BitConverter.ToUInt32(bytes, 0x90)); BornTimeExtra = BitConverter.ToUInt32(bytes, 0x94); Version = BitConverter.ToUInt32(bytes, 0x98); }