internal VolumeInformation(byte[] AttrBytes, string AttrName) { ATTR_VOLUME_INFORMATION volInfo = new ATTR_VOLUME_INFORMATION(AttrBytes); Name = Enum.GetName(typeof(ATTR_TYPE), volInfo.header.commonHeader.ATTRType); NameString = AttrName; NonResident = volInfo.header.commonHeader.NonResident; AttributeId = volInfo.header.commonHeader.Id; Major = volInfo.MajorVersion; Minor = volInfo.MinorVersion; Flags = ((ATTR_VOLINFO)volInfo.Flags).ToString(); }
internal VolumeInformation(byte[] AttrBytes, string AttrName) { ATTR_VOLUME_INFORMATION volInfo = new ATTR_VOLUME_INFORMATION(AttrBytes); Int16 flags = BitConverter.ToInt16(volInfo.Flags, 0); #region volInfoFlags StringBuilder volumeFlags = new StringBuilder(); if (flags != 0) { if ((flags & (int)ATTR_VOLINFO.FLAG_DIRTY) == (int)ATTR_VOLINFO.FLAG_DIRTY) { volumeFlags.Append("Dirty, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_RLF) == (int)ATTR_VOLINFO.FLAG_RLF) { volumeFlags.Append("Resize Logfile, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_UOM) == (int)ATTR_VOLINFO.FLAG_UOM) { volumeFlags.Append("Upgrade on Mount, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_MONT) == (int)ATTR_VOLINFO.FLAG_MONT) { volumeFlags.Append("Mounted on NT4, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_DUSN) == (int)ATTR_VOLINFO.FLAG_DUSN) { volumeFlags.Append("Delete USN Underway, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_ROI) == (int)ATTR_VOLINFO.FLAG_ROI) { volumeFlags.Append("Repair Object Ids, "); } if ((flags & (int)ATTR_VOLINFO.FLAG_MBC) == (int)ATTR_VOLINFO.FLAG_MBC) { volumeFlags.Append("Modified By ChkDisk, "); } volumeFlags.Length -= 2; } #endregion volInfoFlags Name = Enum.GetName(typeof(ATTR_TYPE), volInfo.header.commonHeader.ATTRType); NameString = AttrName; NonResident = volInfo.header.commonHeader.NonResident; AttributeId = volInfo.header.commonHeader.Id; Major = volInfo.MajorVersion; Minor = volInfo.MinorVersion; Flags = volumeFlags.ToString(); }