Przeglądaj źródła

Removed LANMAN2.0 FileInformation structures

Tal Aloni 8 lat temu
rodzic
commit
c57fed1232
23 zmienionych plików z 11 dodań i 793 usunięć
  1. 3 3
      SMBLibrary/SMB1/Transaction2Subcommands/Enums/FindInformationLevel.cs
  2. 2 2
      SMBLibrary/SMB1/Transaction2Subcommands/Enums/QueryFSInformationLevel.cs
  3. 3 3
      SMBLibrary/SMB1/Transaction2Subcommands/Enums/QueryInformationLevel.cs
  4. 2 2
      SMBLibrary/SMB1/Transaction2Subcommands/Enums/SetInformationLevel.cs
  5. 0 89
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoQueryEASize.cs
  6. 0 89
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoQueryExtendedAttributesFromList.cs
  7. 0 88
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoStandard.cs
  8. 0 6
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInformation.cs
  9. 0 51
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInfoAllocation.cs
  10. 0 60
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInfoVolume.cs
  11. 0 4
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInformation.cs
  12. 0 66
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryEASize.cs
  13. 0 44
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryExtendedAttributesFromList.cs
  14. 0 63
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryInfoStandard.cs
  15. 0 6
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryInformation.cs
  16. 0 48
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetExtendedAttributes.cs
  17. 0 61
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetInfoStandard.cs
  18. 0 4
      SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetInformation.cs
  19. 0 10
      SMBLibrary/SMBLibrary.csproj
  20. 0 37
      SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Find.cs
  21. 0 29
      SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Query.cs
  22. 0 19
      SMBLibrary/Server/SMB1/SMB1FileSystemHelper.QueryFileSystem.cs
  23. 1 9
      SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Set.cs

+ 3 - 3
SMBLibrary/SMB1/Transaction2Subcommands/Enums/FindInformationLevel.cs

@@ -3,9 +3,9 @@ namespace SMBLibrary.SMB1
 {
     public enum FindInformationLevel : ushort
     {
-        SMB_INFO_STANDARD = 0x0001,
-        SMB_INFO_QUERY_EA_SIZE = 0x0002,
-        SMB_INFO_QUERY_EAS_FROM_LIST = 0x0003,
+        SMB_INFO_STANDARD = 0x0001,                 // LANMAN2.0
+        SMB_INFO_QUERY_EA_SIZE = 0x0002,            // LANMAN2.0
+        SMB_INFO_QUERY_EAS_FROM_LIST = 0x0003,      // LANMAN2.0
         SMB_FIND_FILE_DIRECTORY_INFO = 0x0101,
         SMB_FIND_FILE_FULL_DIRECTORY_INFO = 0x0102,
         SMB_FIND_FILE_NAMES_INFO = 0x0103,

+ 2 - 2
SMBLibrary/SMB1/Transaction2Subcommands/Enums/QueryFSInformationLevel.cs

@@ -3,8 +3,8 @@ namespace SMBLibrary.SMB1
 {
     public enum QueryFSInformationLevel : ushort
     {
-        SMB_INFO_ALLOCATION = 0x0001,
-        SMB_INFO_VOLUME = 0x0002,
+        SMB_INFO_ALLOCATION = 0x0001,      // LANMAN2.0
+        SMB_INFO_VOLUME = 0x0002,          // LANMAN2.0
         SMB_QUERY_FS_VOLUME_INFO = 0x0102,
         SMB_QUERY_FS_SIZE_INFO = 0x0103,
         SMB_QUERY_FS_DEVICE_INFO = 0x0104,

+ 3 - 3
SMBLibrary/SMB1/Transaction2Subcommands/Enums/QueryInformationLevel.cs

@@ -3,9 +3,9 @@ namespace SMBLibrary.SMB1
 {
     public enum QueryInformationLevel : ushort
     {
-        SMB_INFO_STANDARD = 0x0001,
-        SMB_INFO_QUERY_EA_SIZE = 0x0002,
-        SMB_INFO_QUERY_EAS_FROM_LIST = 0x0003,
+        SMB_INFO_STANDARD = 0x0001,            // LANMAN2.0
+        SMB_INFO_QUERY_EA_SIZE = 0x0002,       // LANMAN2.0
+        SMB_INFO_QUERY_EAS_FROM_LIST = 0x0003, // LANMAN2.0
         SMB_INFO_QUERY_ALL_EAS = 0x0004,
         SMB_INFO_IS_NAME_VALID = 0x0006,
         SMB_QUERY_FILE_BASIC_INFO = 0x0101,

+ 2 - 2
SMBLibrary/SMB1/Transaction2Subcommands/Enums/SetInformationLevel.cs

@@ -3,8 +3,8 @@ namespace SMBLibrary.SMB1
 {
     public enum SetInformationLevel : ushort
     {
-        SMB_INFO_STANDARD = 0x0001,
-        SMB_INFO_SET_EAS = 0x0002,
+        SMB_INFO_STANDARD = 0x0001,             // LANMAN2.0
+        SMB_INFO_SET_EAS = 0x0002,              // LANMAN2.0
         SMB_SET_FILE_BASIC_INFO = 0x0101,
         SMB_SET_FILE_DISPOSITION_INFO = 0x0102,
         SMB_SET_FILE_ALLOCATION_INFO = 0x0103,

+ 0 - 89
SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoQueryEASize.cs

@@ -1,89 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_QUERY_EA_SIZE
-    /// </summary>
-    public class FindInfoQueryEASize : FindInformation
-    {
-        public uint ResumeKey; // Optional
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public uint FileDataSize;
-        public uint AllocationSize;
-        public SMBFileAttributes Attributes;
-        public uint EASize;
-        //byte FileNameLength; // In bytes, MUST exclude the null termination.
-        public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
-
-        public FindInfoQueryEASize(bool returnResumeKeys) : base(returnResumeKeys)
-        {
-        }
-
-        public FindInfoQueryEASize(byte[] buffer, ref int offset, bool isUnicode, bool returnResumeKeys) : base(returnResumeKeys)
-        {
-            if (returnResumeKeys)
-            {
-                ResumeKey = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            }
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
-            EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
-            FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
-        }
-
-        public override void WriteBytes(byte[] buffer, ref int offset, bool isUnicode)
-        {
-            byte fileNameLength = (byte)(isUnicode ? FileName.Length * 2 : FileName.Length);
-
-            if (ReturnResumeKeys)
-            {
-                LittleEndianWriter.WriteUInt32(buffer, ref offset, ResumeKey);
-            }
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastWriteDateTime);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, FileDataSize);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, AllocationSize);
-            LittleEndianWriter.WriteUInt16(buffer, ref offset, (ushort)Attributes);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, EASize);
-            ByteWriter.WriteByte(buffer, ref offset, fileNameLength);
-            SMB1Helper.WriteSMBString(buffer, ref offset, isUnicode, FileName);
-        }
-
-        public override int GetLength(bool isUnicode)
-        {
-            int length = 31;
-            if (ReturnResumeKeys)
-            {
-                length += 4;
-            }
-
-            if (isUnicode)
-            {
-                length += FileName.Length * 2 + 2;
-            }
-            else
-            {
-                length += FileName.Length + 1;
-            }
-            return length;
-        }
-    }
-}

+ 0 - 89
SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoQueryExtendedAttributesFromList.cs

@@ -1,89 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_QUERY_EAS_FROM_LIST
-    /// </summary>
-    public class FindInfoQueryExtendedAttributesFromList : FindInformation
-    {
-        public uint ResumeKey; // Optional
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public uint FileDataSize;
-        public uint AllocationSize;
-        public SMBFileAttributes Attributes;
-        public FullExtendedAttributeList ExtendedAttributeList;
-        //byte FileNameLength; // In bytes, MUST exclude the null termination.
-        public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
-
-        public FindInfoQueryExtendedAttributesFromList(bool returnResumeKeys) : base(returnResumeKeys)
-        {
-        }
-
-        public FindInfoQueryExtendedAttributesFromList(byte[] buffer, ref int offset, bool isUnicode, bool returnResumeKeys) : base(returnResumeKeys)
-        {
-            if (returnResumeKeys)
-            {
-                ResumeKey = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            }
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
-            ExtendedAttributeList = new FullExtendedAttributeList(buffer, offset);
-            byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
-            FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
-        }
-
-        public override void WriteBytes(byte[] buffer, ref int offset, bool isUnicode)
-        {
-            byte fileNameLength = (byte)(isUnicode ? FileName.Length * 2 : FileName.Length);
-
-            if (ReturnResumeKeys)
-            {
-                LittleEndianWriter.WriteUInt32(buffer, ref offset, ResumeKey);
-            }
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastWriteDateTime);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, FileDataSize);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, AllocationSize);
-            LittleEndianWriter.WriteUInt16(buffer, ref offset, (ushort)Attributes);
-            ExtendedAttributeList.WriteBytes(buffer, ref offset);
-            ByteWriter.WriteByte(buffer, ref offset, fileNameLength);
-            SMB1Helper.WriteSMBString(buffer, ref offset, isUnicode, FileName);
-        }
-
-        public override int GetLength(bool isUnicode)
-        {
-            int length = 27 + ExtendedAttributeList.Length;
-            if (ReturnResumeKeys)
-            {
-                length += 4;
-            }
-
-            if (isUnicode)
-            {
-                length += FileName.Length * 2 + 2;
-            }
-            else
-            {
-                length += FileName.Length + 1;
-            }
-            return length;
-        }
-    }
-}

+ 0 - 88
SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInfoStandard.cs

@@ -1,88 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_STANDARD
-    /// </summary>
-    public class FindInfoStandard : FindInformation
-    {
-        public const int FixedLength = 23;
-
-        public uint ResumeKey; // Optional
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public uint FileDataSize;
-        public uint AllocationSize;
-        public SMBFileAttributes Attributes;
-        //byte FileNameLength;
-        public string FileName; // SMB_STRING
-
-        public FindInfoStandard(bool returnResumeKeys) : base(returnResumeKeys)
-        {
-        }
-
-        public FindInfoStandard(byte[] buffer, ref int offset, bool isUnicode, bool returnResumeKeys) : base(returnResumeKeys)
-        {
-            if (returnResumeKeys)
-            {
-                ResumeKey = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            }
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
-            byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
-            FileName = SMB1Helper.ReadSMBString(buffer, ref offset, isUnicode);
-        }
-
-        public override void WriteBytes(byte[] buffer, ref int offset, bool isUnicode)
-        {
-            byte fileNameLength = (byte)(isUnicode ? FileName.Length * 2 : FileName.Length);
-
-            if (ReturnResumeKeys)
-            {
-                LittleEndianWriter.WriteUInt32(buffer, ref offset, ResumeKey);
-            }
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastWriteDateTime);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, FileDataSize);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, AllocationSize);
-            LittleEndianWriter.WriteUInt16(buffer, ref offset, (ushort)Attributes);
-            ByteWriter.WriteByte(buffer, ref offset, fileNameLength);
-            SMB1Helper.WriteSMBString(buffer, ref offset, isUnicode, FileName);
-        }
-
-        public override int GetLength(bool isUnicode)
-        {
-            int length = FixedLength;
-            if (ReturnResumeKeys)
-            {
-                length += 4;
-            }
-
-            if (isUnicode)
-            {
-                length += FileName.Length * 2 + 2;
-            }
-            else
-            {
-                length += FileName.Length + 1;
-            }
-            return length;
-        }
-    }
-}

+ 0 - 6
SMBLibrary/SMB1/Transaction2Subcommands/Structures/FindInformation/FindInformation.cs

@@ -35,12 +35,6 @@ namespace SMBLibrary.SMB1
         {
             switch (informationLevel)
             {
-                case FindInformationLevel.SMB_INFO_STANDARD:
-                    return new FindInfoStandard(buffer, ref offset, isUnicode, returnResumeKeys);
-                case FindInformationLevel.SMB_INFO_QUERY_EA_SIZE:
-                    return new FindInfoQueryEASize(buffer, ref offset, isUnicode, returnResumeKeys);
-                case FindInformationLevel.SMB_INFO_QUERY_EAS_FROM_LIST:
-                    return new FindInfoQueryExtendedAttributesFromList(buffer, ref offset, isUnicode, returnResumeKeys);
                 case FindInformationLevel.SMB_FIND_FILE_DIRECTORY_INFO:
                     return new FindFileDirectoryInfo(buffer, ref offset, isUnicode);
                 case FindInformationLevel.SMB_FIND_FILE_FULL_DIRECTORY_INFO:

+ 0 - 51
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInfoAllocation.cs

@@ -1,51 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_ALLOCATION
-    /// </summary>
-    public class QueryFSInfoAllocation : QueryFSInformation
-    {
-        public const int Length = 18;
-
-        public uint FileSystemID; // File system identifier, Windows Server will set it to 0
-        public uint SectorUnit; // Number of sectors per allocation unit
-        public uint UnitsTotal; // Total number of allocation units
-        public uint UnitsAvailable; // Total number of available allocation units
-        public ushort Sector; // Number of bytes per sector
-
-        public QueryFSInfoAllocation()
-        {
-        }
-
-        public QueryFSInfoAllocation(byte[] buffer, int offset)
-        {
-            FileSystemID = LittleEndianConverter.ToUInt32(buffer, offset + 0);
-            SectorUnit = LittleEndianConverter.ToUInt32(buffer, offset + 4);
-            UnitsTotal = LittleEndianConverter.ToUInt32(buffer, offset + 8);
-            UnitsAvailable = LittleEndianConverter.ToUInt32(buffer, offset + 12);
-            Sector = LittleEndianConverter.ToUInt16(buffer, offset + 16);
-        }
-
-        public override byte[] GetBytes(bool isUnicode)
-        {
-            byte[] buffer = new byte[Length];
-            LittleEndianWriter.WriteUInt32(buffer, 0, FileSystemID);
-            LittleEndianWriter.WriteUInt32(buffer, 4, SectorUnit);
-            LittleEndianWriter.WriteUInt32(buffer, 8, UnitsTotal);
-            LittleEndianWriter.WriteUInt32(buffer, 12, UnitsAvailable);
-            LittleEndianWriter.WriteUInt16(buffer, 16, Sector);
-            return buffer;
-        }
-    }
-}

+ 0 - 60
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInfoVolume.cs

@@ -1,60 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_VOLUME
-    /// </summary>
-    public class QueryFSInfoVolume : QueryFSInformation
-    {
-        public uint VolumeSerialNumber;
-        //byte CharCount;
-        public string VolumeLabel; // SMB_STRING
-
-        public QueryFSInfoVolume()
-        {
-        }
-
-        public QueryFSInfoVolume(bool isUnicode, byte[] buffer, int offset)
-        {
-            VolumeSerialNumber = LittleEndianConverter.ToUInt32(buffer, offset + 0);
-            byte charCount = ByteReader.ReadByte(buffer, offset + 4);
-            VolumeLabel = SMB1Helper.ReadSMBString(buffer, offset + 5, isUnicode);
-        }
-
-        public override byte[] GetBytes(bool isUnicode)
-        {
-            byte charCount = (byte)VolumeLabel.Length;
-
-            int length = GetLength(isUnicode);
-            byte[] buffer = new byte[length];
-            LittleEndianWriter.WriteUInt32(buffer, 0, VolumeSerialNumber);
-            ByteWriter.WriteByte(buffer, 4, charCount);
-            SMB1Helper.WriteSMBString(buffer, 5, isUnicode, VolumeLabel);
-            return buffer;
-        }
-
-        public int GetLength(bool isUnicode)
-        {
-            int length = 5;
-            if (isUnicode)
-            {
-                length += VolumeLabel.Length * 2;
-            }
-            else
-            {
-                length += VolumeLabel.Length;
-            }
-            return length;
-        }
-    }
-}

+ 0 - 4
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryFSInformation/QueryFSInformation.cs

@@ -19,10 +19,6 @@ namespace SMBLibrary.SMB1
         {
             switch (informationLevel)
             {
-                case QueryFSInformationLevel.SMB_INFO_ALLOCATION:
-                    return new QueryFSInfoAllocation(buffer, 0);
-                case QueryFSInformationLevel.SMB_INFO_VOLUME:
-                    return new QueryFSInfoVolume(isUnicode, buffer, 0);
                 case QueryFSInformationLevel.SMB_QUERY_FS_VOLUME_INFO:
                     return new QueryFSVolumeInfo(buffer, 0);
                 case QueryFSInformationLevel.SMB_QUERY_FS_SIZE_INFO:

+ 0 - 66
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryEASize.cs

@@ -1,66 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_QUERY_EA_SIZE
-    /// </summary>
-    public class QueryEASize : QueryInformation
-    {
-        public const int Length = 26;
-
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public uint FileDataSize;
-        public uint AllocationSize;
-        public SMBFileAttributes Attributes;
-        public uint EASize;
-
-        public QueryEASize()
-        {
-        }
-
-        public QueryEASize(byte[] buffer, int offset)
-        {
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
-            EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-        }
-
-        public override byte[] GetBytes()
-        {
-            byte[] buffer = new byte[Length];
-            int offset = 0;
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastWriteDateTime);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, FileDataSize);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, AllocationSize);
-            LittleEndianWriter.WriteUInt16(buffer, ref offset, (ushort)Attributes);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, EASize);
-            return buffer;
-        }
-
-        public override QueryInformationLevel InformationLevel
-        {
-            get
-            {
-                return QueryInformationLevel.SMB_INFO_QUERY_EA_SIZE;
-            }
-        }
-    }
-}

+ 0 - 44
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryExtendedAttributesFromList.cs

@@ -1,44 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_QUERY_EAS_FROM_LIST
-    /// </summary>
-    public class QueryExtendedAttributesFromList : QueryInformation
-    {
-        public FullExtendedAttributeList ExtendedAttributeList;
-
-        public QueryExtendedAttributesFromList()
-        {
-            ExtendedAttributeList = new FullExtendedAttributeList();
-        }
-
-        public QueryExtendedAttributesFromList(byte[] buffer, int offset)
-        {
-            ExtendedAttributeList = new FullExtendedAttributeList(buffer, offset);
-        }
-
-        public override byte[] GetBytes()
-        {
-            return ExtendedAttributeList.GetBytes();
-        }
-
-        public override QueryInformationLevel InformationLevel
-        {
-            get
-            {
-                return QueryInformationLevel.SMB_INFO_QUERY_EAS_FROM_LIST;
-            }
-        }
-    }
-}

+ 0 - 63
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryInfoStandard.cs

@@ -1,63 +0,0 @@
-/* Copyright (C) 2014 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_STANDARD
-    /// </summary>
-    public class QueryInfoStandard : QueryInformation
-    {
-        public const int Length = 22;
-
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public uint FileDataSize;
-        public uint AllocationSize;
-        public SMBFileAttributes Attributes;
-
-        public QueryInfoStandard()
-        {
-        }
-
-        public QueryInfoStandard(byte[] buffer, int offset)
-        {
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
-            FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
-            Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
-        }
-
-        public override byte[] GetBytes()
-        {
-            byte[] buffer = new byte[Length];
-            int offset = 0;
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, ref offset, LastWriteDateTime);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, FileDataSize);
-            LittleEndianWriter.WriteUInt32(buffer, ref offset, AllocationSize);
-            LittleEndianWriter.WriteUInt16(buffer, ref offset, (ushort)Attributes);
-            return buffer;
-        }
-
-        public override QueryInformationLevel InformationLevel
-        {
-            get
-            {
-                return QueryInformationLevel.SMB_INFO_STANDARD;
-            }
-        }
-    }
-}

+ 0 - 6
SMBLibrary/SMB1/Transaction2Subcommands/Structures/QueryInformation/QueryInformation.cs

@@ -27,12 +27,6 @@ namespace SMBLibrary.SMB1
         {
             switch (informationLevel)
             {
-                case QueryInformationLevel.SMB_INFO_STANDARD:
-                    return new QueryInfoStandard(buffer, 0);
-                case QueryInformationLevel.SMB_INFO_QUERY_EA_SIZE:
-                    return new QueryEASize(buffer, 0);
-                case QueryInformationLevel.SMB_INFO_QUERY_EAS_FROM_LIST:
-                    return new QueryExtendedAttributesFromList(buffer, 0);
                 case QueryInformationLevel.SMB_INFO_QUERY_ALL_EAS:
                     return new QueryAllExtendedAttributes(buffer, 0);
                 case QueryInformationLevel.SMB_QUERY_FILE_BASIC_INFO:

+ 0 - 48
SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetExtendedAttributes.cs

@@ -1,48 +0,0 @@
-/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_SET_EAS
-    /// </summary>
-    public class SetExtendedAttributes : SetInformation
-    {
-        public FullExtendedAttributeList ExtendedAttributeList;
-
-        public SetExtendedAttributes()
-        {
-            ExtendedAttributeList = new FullExtendedAttributeList();
-        }
-
-        public SetExtendedAttributes(byte[] buffer) : this(buffer, 0)
-        {
-        }
-
-        public SetExtendedAttributes(byte[] buffer, int offset)
-        {
-            ExtendedAttributeList = new FullExtendedAttributeList(buffer, offset);
-        }
-
-        public override byte[] GetBytes()
-        {
-            return ExtendedAttributeList.GetBytes();
-        }
-
-        public override SetInformationLevel InformationLevel
-        {
-            get
-            {
-                return SetInformationLevel.SMB_INFO_SET_EAS;
-            }
-        }
-    }
-}

+ 0 - 61
SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetInfoStandard.cs

@@ -1,61 +0,0 @@
-/* Copyright (C) 2014-2017 Tal Aloni <tal.aloni.il@gmail.com>. All rights reserved.
- * 
- * You can redistribute this program and/or modify it under the terms of
- * the GNU Lesser Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- */
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Utilities;
-
-namespace SMBLibrary.SMB1
-{
-    /// <summary>
-    /// SMB_INFO_STANDARD
-    /// </summary>
-    public class SetInfoStandard : SetInformation
-    {
-        public const int Length = 22;
-
-        public DateTime CreationDateTime;
-        public DateTime LastAccessDateTime;
-        public DateTime LastWriteDateTime;
-        public byte[] Reserved; // 10 bytes
-
-        public SetInfoStandard()
-        {
-            Reserved = new byte[10];
-        }
-
-        public SetInfoStandard(byte[] buffer) : this(buffer, 0)
-        {
-        }
-
-        public SetInfoStandard(byte[] buffer, int offset)
-        {
-            CreationDateTime = SMB1Helper.ReadSMBDateTime(buffer, offset + 0);
-            LastAccessDateTime = SMB1Helper.ReadSMBDateTime(buffer, offset + 4);
-            LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, offset + 8);
-            Reserved = ByteReader.ReadBytes(buffer, offset + 12, 10);
-        }
-
-        public override byte[] GetBytes()
-        {
-            byte[] buffer = new byte[Length];
-            SMB1Helper.WriteSMBDateTime(buffer, 0, CreationDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, 4, LastAccessDateTime);
-            SMB1Helper.WriteSMBDateTime(buffer, 8, LastWriteDateTime);
-            ByteWriter.WriteBytes(buffer, 12, Reserved);
-            return buffer;
-        }
-
-        public override SetInformationLevel InformationLevel
-        {
-            get
-            {
-                return SetInformationLevel.SMB_INFO_STANDARD;
-            }
-        }
-    }
-}

+ 0 - 4
SMBLibrary/SMB1/Transaction2Subcommands/Structures/SetInformation/SetInformation.cs

@@ -24,10 +24,6 @@ namespace SMBLibrary.SMB1
         {
             switch (informationLevel)
             {
-                case SetInformationLevel.SMB_INFO_STANDARD:
-                    return new SetInfoStandard(buffer);
-                case SetInformationLevel.SMB_INFO_SET_EAS:
-                    return new SetExtendedAttributes(buffer);
                 case SetInformationLevel.SMB_SET_FILE_BASIC_INFO:
                     return new SetFileBasicInfo(buffer);
                 case SetInformationLevel.SMB_SET_FILE_DISPOSITION_INFO:

+ 0 - 10
SMBLibrary/SMBLibrary.csproj

@@ -382,23 +382,16 @@
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindFileDirectoryInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindFileFullDirectoryInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindFileNamesInfo.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindInfoQueryEASize.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindInfoQueryExtendedAttributesFromList.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindInformation.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindInformationList.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\FindInformation\FindInfoStandard.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FullExtendedAttribute.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\FullExtendedAttributeList.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSAttibuteInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSDeviceInfo.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSInfoAllocation.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSInformation.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSInfoVolume.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSSizeInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryFSInformation\QueryFSVolumeInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryAllExtendedAttributes.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryEASize.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryExtendedAttributesFromList.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryFileAllInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryFileAltNameInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryFileBasicInfo.cs" />
@@ -408,14 +401,11 @@
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryFileStandardInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryFileStreamInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryInformation.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\QueryInformation\QueryInfoStandard.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetExtendedAttributes.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetFileAllocationInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetFileBasicInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetFileDispositionInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetFileEndOfFileInfo.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetInformation.cs" />
-    <Compile Include="SMB1\Transaction2Subcommands\Structures\SetInformation\SetInfoStandard.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Transaction2CreateDirectoryRequest.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Transaction2CreateDirectoryResponse.cs" />
     <Compile Include="SMB1\Transaction2Subcommands\Transaction2FindFirst2Request.cs" />

+ 0 - 37
SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Find.cs

@@ -36,43 +36,6 @@ namespace SMBLibrary.Server.SMB1
         {
             switch (informationLevel)
             {
-                case FindInformationLevel.SMB_INFO_STANDARD:
-                    {
-                        FindInfoStandard result = new FindInfoStandard(returnResumeKeys);
-                        result.CreationDateTime = entry.CreationTime;
-                        result.LastAccessDateTime = entry.LastAccessTime;
-                        result.LastWriteDateTime = entry.LastWriteTime;
-                        result.FileDataSize = (uint)Math.Min(entry.Size, UInt32.MaxValue);
-                        result.AllocationSize = (uint)Math.Min(NTFileSystemHelper.GetAllocationSize(entry.Size), UInt32.MaxValue);
-                        result.Attributes = GetFileAttributes(entry);
-                        result.FileName = entry.Name;
-                        return result;
-                    }
-                case FindInformationLevel.SMB_INFO_QUERY_EA_SIZE:
-                    {
-                        FindInfoQueryEASize result = new FindInfoQueryEASize(returnResumeKeys);
-                        result.CreationDateTime = entry.CreationTime;
-                        result.LastAccessDateTime = entry.LastAccessTime;
-                        result.LastWriteDateTime = entry.LastWriteTime;
-                        result.FileDataSize = (uint)Math.Min(entry.Size, UInt32.MaxValue);
-                        result.AllocationSize = (uint)Math.Min(NTFileSystemHelper.GetAllocationSize(entry.Size), UInt32.MaxValue);
-                        result.Attributes = GetFileAttributes(entry);
-                        result.EASize = 0;
-                        result.FileName = entry.Name;
-                        return result;
-                    }
-                case FindInformationLevel.SMB_INFO_QUERY_EAS_FROM_LIST:
-                    {
-                        FindInfoQueryExtendedAttributesFromList result = new FindInfoQueryExtendedAttributesFromList(returnResumeKeys);
-                        result.CreationDateTime = entry.CreationTime;
-                        result.LastAccessDateTime = entry.LastAccessTime;
-                        result.LastWriteDateTime = entry.LastWriteTime;
-                        result.FileDataSize = (uint)Math.Min(entry.Size, UInt32.MaxValue);
-                        result.AllocationSize = (uint)Math.Min(NTFileSystemHelper.GetAllocationSize(entry.Size), UInt32.MaxValue);
-                        result.Attributes = GetFileAttributes(entry);
-                        result.ExtendedAttributeList = new FullExtendedAttributeList();
-                        return result;
-                    }
                 case FindInformationLevel.SMB_FIND_FILE_DIRECTORY_INFO:
                     {
                         FindFileDirectoryInfo result = new FindFileDirectoryInfo();

+ 0 - 29
SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Query.cs

@@ -18,35 +18,6 @@ namespace SMBLibrary.Server.SMB1
         {
             switch (informationLevel)
             {
-                case QueryInformationLevel.SMB_INFO_STANDARD:
-                    {
-                        QueryInfoStandard information = new QueryInfoStandard();
-                        information.CreationDateTime = entry.CreationTime;
-                        information.LastAccessDateTime = entry.LastAccessTime;
-                        information.LastWriteDateTime = entry.LastWriteTime;
-                        information.FileDataSize = (uint)Math.Min(entry.Size, UInt32.MaxValue);
-                        information.AllocationSize = (uint)Math.Min(NTFileSystemHelper.GetAllocationSize(entry.Size), UInt32.MaxValue);
-                        result = information;
-                        return NTStatus.STATUS_SUCCESS;
-                    }
-                case QueryInformationLevel.SMB_INFO_QUERY_EA_SIZE:
-                    {
-                        QueryEASize information = new QueryEASize();
-                        information.CreationDateTime = entry.CreationTime;
-                        information.LastAccessDateTime = entry.LastAccessTime;
-                        information.LastWriteDateTime = entry.LastWriteTime;
-                        information.FileDataSize = (uint)Math.Min(entry.Size, UInt32.MaxValue);
-                        information.AllocationSize = (uint)Math.Min(NTFileSystemHelper.GetAllocationSize(entry.Size), UInt32.MaxValue);
-                        information.Attributes = GetFileAttributes(entry);
-                        information.EASize = 0;
-                        result = information;
-                        return NTStatus.STATUS_SUCCESS;
-                    }
-                case QueryInformationLevel.SMB_INFO_QUERY_EAS_FROM_LIST:
-                    {
-                        result = null;
-                        return NTStatus.STATUS_NOT_IMPLEMENTED;
-                    }
                 case QueryInformationLevel.SMB_INFO_QUERY_ALL_EAS:
                     {
                         result = null;

+ 0 - 19
SMBLibrary/Server/SMB1/SMB1FileSystemHelper.QueryFileSystem.cs

@@ -18,25 +18,6 @@ namespace SMBLibrary.Server.SMB1
         {
             switch (informationLevel)
             {
-                case QueryFSInformationLevel.SMB_INFO_ALLOCATION:
-                    {
-                        QueryFSInfoAllocation information = new QueryFSInfoAllocation();
-                        information.FileSystemID = 0;
-                        information.SectorUnit = NTFileSystemHelper.ClusterSize / NTFileSystemHelper.BytesPerSector;
-                        information.UnitsTotal = (uint)Math.Min(fileSystem.Size / NTFileSystemHelper.ClusterSize, UInt32.MaxValue);
-                        information.UnitsAvailable = (uint)Math.Min(fileSystem.FreeSpace / NTFileSystemHelper.ClusterSize, UInt32.MaxValue);
-                        information.Sector = NTFileSystemHelper.BytesPerSector;
-                        result = information;
-                        return NTStatus.STATUS_SUCCESS;
-                    }
-                case QueryFSInformationLevel.SMB_INFO_VOLUME:
-                    {
-                        QueryFSInfoVolume information = new QueryFSInfoVolume();
-                        information.VolumeLabel = String.Empty;
-                        information.VolumeSerialNumber = 0;
-                        result = information;
-                        return NTStatus.STATUS_SUCCESS;
-                    }
                 case QueryFSInformationLevel.SMB_QUERY_FS_VOLUME_INFO:
                     {
                         QueryFSVolumeInfo information = new QueryFSVolumeInfo();

+ 1 - 9
SMBLibrary/Server/SMB1/SMB1FileSystemHelper.Set.cs

@@ -17,15 +17,7 @@ namespace SMBLibrary.Server.SMB1
     {
         public static NTStatus SetFileInformation(IFileSystem fileSystem, OpenFileObject openFile, SetInformation information, ConnectionState state)
         {
-            if (information is SetInfoStandard)
-            {
-                return NTStatus.STATUS_SUCCESS;
-            }
-            else if (information is SetExtendedAttributes)
-            {
-                return NTStatus.STATUS_NOT_IMPLEMENTED;
-            }
-            else if (information is SetFileBasicInfo)
+            if (information is SetFileBasicInfo)
             {
                 SetFileBasicInfo basicInfo = (SetFileBasicInfo)information;
                 bool isHidden = (basicInfo.ExtFileAttributes & ExtendedFileAttributes.Hidden) > 0;