public NTCreateAndXResponse(byte[] buffer, int offset) : base(buffer, offset) { int parametersOffset = 4; OpLockLevel = (OpLockLevel)ByteReader.ReadByte(SMBParameters, ref parametersOffset); FID = LittleEndianReader.ReadUInt16(SMBParameters, ref parametersOffset); CreateDisposition = (CreateDisposition)LittleEndianReader.ReadUInt32(SMBParameters, ref parametersOffset); CreateTime = SMB1Helper.ReadNullableFileTime(SMBParameters, ref parametersOffset); LastAccessTime = SMB1Helper.ReadNullableFileTime(SMBParameters, ref parametersOffset); LastWriteTime = SMB1Helper.ReadNullableFileTime(SMBParameters, ref parametersOffset); LastChangeTime = SMB1Helper.ReadNullableFileTime(SMBParameters, ref parametersOffset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(SMBParameters, ref parametersOffset); AllocationSize = LittleEndianReader.ReadInt64(SMBParameters, ref parametersOffset); EndOfFile = LittleEndianReader.ReadInt64(SMBParameters, ref parametersOffset); ResourceType = (ResourceType)LittleEndianReader.ReadUInt16(SMBParameters, ref parametersOffset); NMPipeStatus = NamedPipeStatus.Read(SMBParameters, ref parametersOffset); Directory = (ByteReader.ReadByte(SMBParameters, ref parametersOffset) > 0); }
public NTCreateAndXResponseExtended(byte[] buffer, int offset) : base(buffer, offset, false) { int parametersOffset = 4; OpLockLevel = (OpLockLevel)ByteReader.ReadByte(this.SMBParameters, ref parametersOffset); FID = LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset); CreateDisposition = (CreateDisposition)LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset); CreateTime = FileTimeHelper.ReadNullableFileTime(this.SMBParameters, ref parametersOffset); LastAccessTime = FileTimeHelper.ReadNullableFileTime(this.SMBParameters, ref parametersOffset); LastWriteTime = FileTimeHelper.ReadNullableFileTime(this.SMBParameters, ref parametersOffset); LastChangeTime = FileTimeHelper.ReadNullableFileTime(this.SMBParameters, ref parametersOffset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset); AllocationSize = LittleEndianReader.ReadInt64(this.SMBParameters, ref parametersOffset); EndOfFile = LittleEndianReader.ReadInt64(this.SMBParameters, ref parametersOffset); ResourceType = (ResourceType)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset); NMPipeStatus_or_FileStatusFlags = LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset); Directory = (ByteReader.ReadByte(this.SMBParameters, ref parametersOffset) > 0); VolumeGuid = LittleEndianReader.ReadGuid(this.SMBParameters, ref parametersOffset); FileID = LittleEndianReader.ReadUInt64(this.SMBParameters, ref parametersOffset); MaximalAccessRights = (AccessMask)LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset); GuestMaximalAccessRights = (AccessMask)LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset); }