示例#1
0
 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);
 }
示例#2
0
 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);
 }