예제 #1
0
        public VolumeParameters(BER br, ushort Bitmap) {
            Stream si = br.BaseStream;
            Int64 off = si.Position;

            ushort? VolNameOff = null;

            if (0 != (Bitmap & 1U)) VolAttribute = br.ReadUInt16();
            if (0 != (Bitmap & 2U)) VolSignature = br.ReadUInt16();
            if (0 != (Bitmap & 4U)) CreateDate = br.ReadUInt32();
            if (0 != (Bitmap & 8U)) ModDate = br.ReadUInt32();
            if (0 != (Bitmap & 16U)) VolBackupDate = br.ReadUInt32();
            if (0 != (Bitmap & 32U)) VolID = br.ReadUInt16();
            if (0 != (Bitmap & 64U)) VolBytesFree = br.ReadUInt32();
            if (0 != (Bitmap & 128U)) VolBytesTotal = br.ReadUInt32();

            if (0 != (Bitmap & 256U)) VolNameOff = br.ReadUInt16();
            if (0 != (Bitmap & 512U)) VolExtBytesFree = br.ReadUInt64();
            if (0 != (Bitmap & 1024U)) VolExtBytesTotal = br.ReadUInt64();
            if (0 != (Bitmap & 2048U)) VolBlockSize = br.ReadUInt32();

            if (VolNameOff != null) {
                si.Position = off + VolNameOff.Value;
                VolName = UtAfp.Read1Str(si);
            }
        }