Improved QueryInformation structures implementation

This commit is contained in:
Tal Aloni 2017-02-07 14:03:44 +02:00
parent dfb8822a4f
commit c46e638879
6 changed files with 42 additions and 42 deletions

View file

@ -20,10 +20,10 @@ namespace SMBLibrary.SMB1
public uint NextEntryOffset; public uint NextEntryOffset;
public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client
public DateTime CreationTime; public DateTime? CreationTime;
public DateTime LastAccessTime; public DateTime? LastAccessTime;
public DateTime LastWriteTime; public DateTime? LastWriteTime;
public DateTime LastChangeTime; public DateTime? LastChangeTime;
public ulong EndOfFile; public ulong EndOfFile;
public ulong AllocationSize; public ulong AllocationSize;
public ExtendedFileAttributes ExtFileAttributes; public ExtendedFileAttributes ExtFileAttributes;
@ -46,10 +46,10 @@ namespace SMBLibrary.SMB1
{ {
NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset); NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset);
FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset); FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset);
CreationTime = SMB1Helper.ReadFileTime(buffer, ref offset); CreationTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAccessTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAccessTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastWriteTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastWriteTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastChangeTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastChangeTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset); EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset);
AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset); AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset);
ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset);

View file

@ -20,10 +20,10 @@ namespace SMBLibrary.SMB1
public uint NextEntryOffset; public uint NextEntryOffset;
public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client
public DateTime CreationTime; public DateTime? CreationTime;
public DateTime LastAccessTime; public DateTime? LastAccessTime;
public DateTime LastWriteTime; public DateTime? LastWriteTime;
public DateTime LastAttrChangeTime; public DateTime? LastAttrChangeTime;
public ulong EndOfFile; public ulong EndOfFile;
public ulong AllocationSize; public ulong AllocationSize;
public ExtendedFileAttributes ExtFileAttributes; public ExtendedFileAttributes ExtFileAttributes;
@ -38,10 +38,10 @@ namespace SMBLibrary.SMB1
{ {
NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset); NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset);
FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset); FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset);
CreationTime = SMB1Helper.ReadFileTime(buffer, ref offset); CreationTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAccessTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAccessTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastWriteTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastWriteTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAttrChangeTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAttrChangeTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset); EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset);
AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset); AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset);
ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset);

View file

@ -20,10 +20,10 @@ namespace SMBLibrary.SMB1
public uint NextEntryOffset; public uint NextEntryOffset;
public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client public uint FileIndex; // SHOULD be set to zero when sent in a response and SHOULD be ignored when received by the client
public DateTime CreationTime; public DateTime? CreationTime;
public DateTime LastAccessTime; public DateTime? LastAccessTime;
public DateTime LastWriteTime; public DateTime? LastWriteTime;
public DateTime LastAttrChangeTime; public DateTime? LastAttrChangeTime;
public ulong EndOfFile; public ulong EndOfFile;
public ulong AllocationSize; public ulong AllocationSize;
public ExtendedFileAttributes ExtFileAttributes; public ExtendedFileAttributes ExtFileAttributes;
@ -39,10 +39,10 @@ namespace SMBLibrary.SMB1
{ {
NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset); NextEntryOffset = LittleEndianReader.ReadUInt32(buffer, ref offset);
FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset); FileIndex = LittleEndianReader.ReadUInt32(buffer, ref offset);
CreationTime = SMB1Helper.ReadFileTime(buffer, ref offset); CreationTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAccessTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAccessTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastWriteTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastWriteTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAttrChangeTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAttrChangeTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset); EndOfFile = LittleEndianReader.ReadUInt64(buffer, ref offset);
AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset); AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset);
ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset);

View file

@ -18,7 +18,7 @@ namespace SMBLibrary.SMB1
{ {
public const int FixedLength = 18; public const int FixedLength = 18;
public DateTime VolumeCreationTime; public DateTime? VolumeCreationTime;
public uint SerialNumber; public uint SerialNumber;
//uint VolumeLabelSize; //uint VolumeLabelSize;
public ushort Reserved; public ushort Reserved;
@ -31,7 +31,7 @@ namespace SMBLibrary.SMB1
public QueryFSVolumeInfo(byte[] buffer, int offset) public QueryFSVolumeInfo(byte[] buffer, int offset)
{ {
VolumeCreationTime = SMB1Helper.ReadFileTime(buffer, offset + 0); VolumeCreationTime = FileTimeHelper.ReadNullableFileTime(buffer, offset + 0);
SerialNumber = LittleEndianConverter.ToUInt32(buffer, offset + 8); SerialNumber = LittleEndianConverter.ToUInt32(buffer, offset + 8);
uint volumeLabelSize = LittleEndianConverter.ToUInt32(buffer, offset + 12); uint volumeLabelSize = LittleEndianConverter.ToUInt32(buffer, offset + 12);
Reserved = LittleEndianConverter.ToUInt16(buffer, offset + 16); Reserved = LittleEndianConverter.ToUInt16(buffer, offset + 16);

View file

@ -18,10 +18,10 @@ namespace SMBLibrary.SMB1
{ {
public const int FixedLength = 72; public const int FixedLength = 72;
public DateTime CreationDateTime; public DateTime? CreationDateTime;
public DateTime LastAccessDateTime; public DateTime? LastAccessDateTime;
public DateTime LastWriteDateTime; public DateTime? LastWriteDateTime;
public DateTime LastChangeTime; public DateTime? LastChangeTime;
public ExtendedFileAttributes ExtFileAttributes; public ExtendedFileAttributes ExtFileAttributes;
public uint Reserved1; public uint Reserved1;
public ulong AllocationSize; public ulong AllocationSize;
@ -40,10 +40,10 @@ namespace SMBLibrary.SMB1
public QueryFileAllInfo(byte[] buffer, int offset) public QueryFileAllInfo(byte[] buffer, int offset)
{ {
CreationDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); CreationDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAccessDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAccessDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastWriteDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastWriteDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastChangeTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastChangeTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset);
Reserved1 = LittleEndianReader.ReadUInt32(buffer, ref offset); Reserved1 = LittleEndianReader.ReadUInt32(buffer, ref offset);
AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset); AllocationSize = LittleEndianReader.ReadUInt64(buffer, ref offset);

View file

@ -18,10 +18,10 @@ namespace SMBLibrary.SMB1
{ {
public const int Length = 40; public const int Length = 40;
public DateTime CreationDateTime; public DateTime? CreationDateTime;
public DateTime LastAccessDateTime; public DateTime? LastAccessDateTime;
public DateTime LastWriteDateTime; public DateTime? LastWriteDateTime;
public DateTime LastChangeTime; public DateTime? LastChangeTime;
public ExtendedFileAttributes ExtFileAttributes; public ExtendedFileAttributes ExtFileAttributes;
public uint Reserved; public uint Reserved;
@ -31,10 +31,10 @@ namespace SMBLibrary.SMB1
public QueryFileBasicInfo(byte[] buffer, int offset) public QueryFileBasicInfo(byte[] buffer, int offset)
{ {
CreationDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); CreationDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastAccessDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastAccessDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastWriteDateTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastWriteDateTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
LastChangeTime = SMB1Helper.ReadFileTime(buffer, ref offset); LastChangeTime = FileTimeHelper.ReadNullableFileTime(buffer, ref offset);
ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(buffer, ref offset);
Reserved = LittleEndianReader.ReadUInt32(buffer, ref offset); Reserved = LittleEndianReader.ReadUInt32(buffer, ref offset);
} }