From 73b27366c5399ed157f3cb741c797f48d0dbd9ec Mon Sep 17 00:00:00 2001 From: Tal Aloni Date: Sun, 3 Sep 2017 18:06:28 +0300 Subject: [PATCH] Logging improvement --- SMBLibrary/Server/SMB1/CloseHelper.cs | 6 +++--- SMBLibrary/Server/SMB1/FileStoreResponseHelper.cs | 2 +- SMBLibrary/Server/SMB1/LockingHelper.cs | 2 +- SMBLibrary/Server/SMB1/NTCreateHelper.cs | 3 ++- SMBLibrary/Server/SMB1/NTTransactHelper.cs | 2 +- SMBLibrary/Server/SMB1/OpenAndXHelper.cs | 3 ++- SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs | 10 +++++----- SMBLibrary/Server/SMB1/Transaction2SubcommandHelper.cs | 4 ++-- SMBLibrary/Server/SMB1/TransactionSubcommandHelper.cs | 2 +- SMBLibrary/Server/SMB2/CloseHelper.cs | 6 +++--- SMBLibrary/Server/SMB2/CreateHelper.cs | 3 ++- SMBLibrary/Server/SMB2/IOCtlHelper.cs | 4 ++-- SMBLibrary/Server/SMB2/LockHelper.cs | 2 +- SMBLibrary/Server/SMB2/QueryDirectoryHelper.cs | 2 +- SMBLibrary/Server/SMB2/QueryInfoHelper.cs | 2 +- SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs | 6 +++--- SMBLibrary/Server/SMB2/SetInfoHelper.cs | 2 +- 17 files changed, 32 insertions(+), 29 deletions(-) diff --git a/SMBLibrary/Server/SMB1/CloseHelper.cs b/SMBLibrary/Server/SMB1/CloseHelper.cs index 8a58ba9..af3f4ad 100644 --- a/SMBLibrary/Server/SMB1/CloseHelper.cs +++ b/SMBLibrary/Server/SMB1/CloseHelper.cs @@ -19,7 +19,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Close failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Close failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_SMB_BAD_FID; return new ErrorResponse(request.CommandName); } @@ -27,11 +27,11 @@ namespace SMBLibrary.Server.SMB1 header.Status = share.FileStore.CloseFile(openFile.Handle); if (header.Status != NTStatus.STATUS_SUCCESS) { - state.LogToServer(Severity.Information, "Close: Closing '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status); + state.LogToServer(Severity.Information, "Close: Closing '{0}{1}' failed. NTStatus: {2}. (UID: {3}, TID: {4}, FID: {5})", share.Name, openFile.Path, header.Status, header.UID, header.TID, request.FID); return new ErrorResponse(request.CommandName); } - state.LogToServer(Severity.Information, "Close: Closed '{0}{1}'.", share.Name, openFile.Path); + state.LogToServer(Severity.Information, "Close: Closed '{0}{1}'. (UID: {2}, TID: {3}, FID: {4})", share.Name, openFile.Path, header.UID, header.TID, request.FID); session.RemoveOpenFile(request.FID); return new CloseResponse(); } diff --git a/SMBLibrary/Server/SMB1/FileStoreResponseHelper.cs b/SMBLibrary/Server/SMB1/FileStoreResponseHelper.cs index 570cc02..324b9ca 100644 --- a/SMBLibrary/Server/SMB1/FileStoreResponseHelper.cs +++ b/SMBLibrary/Server/SMB1/FileStoreResponseHelper.cs @@ -206,7 +206,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Set Information 2 failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Set Information 2 failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_SMB_BAD_FID; return new ErrorResponse(request.CommandName); } diff --git a/SMBLibrary/Server/SMB1/LockingHelper.cs b/SMBLibrary/Server/SMB1/LockingHelper.cs index ae0b776..3a74963 100644 --- a/SMBLibrary/Server/SMB1/LockingHelper.cs +++ b/SMBLibrary/Server/SMB1/LockingHelper.cs @@ -19,7 +19,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Locking failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Locking failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } diff --git a/SMBLibrary/Server/SMB1/NTCreateHelper.cs b/SMBLibrary/Server/SMB1/NTCreateHelper.cs index 2e67842..ab621f9 100644 --- a/SMBLibrary/Server/SMB1/NTCreateHelper.cs +++ b/SMBLibrary/Server/SMB1/NTCreateHelper.cs @@ -50,15 +50,16 @@ namespace SMBLibrary.Server.SMB1 return new ErrorResponse(request.CommandName); } - state.LogToServer(Severity.Verbose, "Create: Opened '{0}{1}'.", share.Name, path); ushort? fileID = session.AddOpenFile(header.TID, share.Name, path, handle); if (!fileID.HasValue) { share.FileStore.CloseFile(handle); + state.LogToServer(Severity.Verbose, "Create: Opening '{0}{1}' failed. Too many open files.", share.Name, path); header.Status = NTStatus.STATUS_TOO_MANY_OPENED_FILES; return new ErrorResponse(request.CommandName); } + state.LogToServer(Severity.Verbose, "Create: Opened '{0}{1}'. (UID: {2}, TID: {3}, FID: {4})", share.Name, path, header.UID, header.TID, fileID.Value); if (share is NamedPipeShare) { if (isExtended) diff --git a/SMBLibrary/Server/SMB1/NTTransactHelper.cs b/SMBLibrary/Server/SMB1/NTTransactHelper.cs index 69d14b5..eac3f4c 100644 --- a/SMBLibrary/Server/SMB1/NTTransactHelper.cs +++ b/SMBLibrary/Server/SMB1/NTTransactHelper.cs @@ -144,7 +144,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(subcommand.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. Invalid FID.", ctlCode); + state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. Invalid FID. (UID: {1}, TID: {2}, FID: {3})", ctlCode, header.UID, header.TID, subcommand.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return null; } diff --git a/SMBLibrary/Server/SMB1/OpenAndXHelper.cs b/SMBLibrary/Server/SMB1/OpenAndXHelper.cs index 7f07ad2..27b0b63 100644 --- a/SMBLibrary/Server/SMB1/OpenAndXHelper.cs +++ b/SMBLibrary/Server/SMB1/OpenAndXHelper.cs @@ -63,15 +63,16 @@ namespace SMBLibrary.Server.SMB1 return new ErrorResponse(request.CommandName); } - state.LogToServer(Severity.Verbose, "OpenAndX: Opened '{0}{1}'.", share.Name, path); ushort? fileID = session.AddOpenFile(header.TID, share.Name, path, handle); if (!fileID.HasValue) { share.FileStore.CloseFile(handle); + state.LogToServer(Severity.Verbose, "Create: Opening '{0}{1}' failed. Too many open files.", share.Name, path); header.Status = NTStatus.STATUS_TOO_MANY_OPENED_FILES; return new ErrorResponse(request.CommandName); } + state.LogToServer(Severity.Verbose, "OpenAndX: Opened '{0}{1}'. (UID: {2}, TID: {3}, FID: {4})", share.Name, path, header.UID, header.TID, fileID.Value); OpenResult openResult = ToOpenResult(fileStatus); if (share is NamedPipeShare) { diff --git a/SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs b/SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs index 7069c92..0749860 100644 --- a/SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs +++ b/SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs @@ -23,7 +23,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Read failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Read failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } @@ -58,7 +58,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Read failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Read failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } @@ -109,7 +109,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Write failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Write failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } @@ -142,7 +142,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Write failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Write failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } @@ -188,7 +188,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(request.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Flush failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "Flush failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, request.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return new ErrorResponse(request.CommandName); } diff --git a/SMBLibrary/Server/SMB1/Transaction2SubcommandHelper.cs b/SMBLibrary/Server/SMB1/Transaction2SubcommandHelper.cs index 64a97ef..c83cfec 100644 --- a/SMBLibrary/Server/SMB1/Transaction2SubcommandHelper.cs +++ b/SMBLibrary/Server/SMB1/Transaction2SubcommandHelper.cs @@ -198,7 +198,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(subcommand.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "QueryFileInformation failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "QueryFileInformation failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, subcommand.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return null; } @@ -233,7 +233,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(subcommand.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "SetFileInformation failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "SetFileInformation failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, subcommand.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return null; } diff --git a/SMBLibrary/Server/SMB1/TransactionSubcommandHelper.cs b/SMBLibrary/Server/SMB1/TransactionSubcommandHelper.cs index dd2d8ae..62e73c6 100644 --- a/SMBLibrary/Server/SMB1/TransactionSubcommandHelper.cs +++ b/SMBLibrary/Server/SMB1/TransactionSubcommandHelper.cs @@ -22,7 +22,7 @@ namespace SMBLibrary.Server.SMB1 OpenFileObject openFile = session.GetOpenFileObject(subcommand.FID); if (openFile == null) { - state.LogToServer(Severity.Verbose, "TransactNamedPipe failed. Invalid FID."); + state.LogToServer(Severity.Verbose, "TransactNamedPipe failed. Invalid FID. (UID: {0}, TID: {1}, FID: {2})", header.UID, header.TID, subcommand.FID); header.Status = NTStatus.STATUS_INVALID_HANDLE; return null; } diff --git a/SMBLibrary/Server/SMB2/CloseHelper.cs b/SMBLibrary/Server/SMB2/CloseHelper.cs index 79094e5..8a7f340 100644 --- a/SMBLibrary/Server/SMB2/CloseHelper.cs +++ b/SMBLibrary/Server/SMB2/CloseHelper.cs @@ -20,18 +20,18 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Close failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Close failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } NTStatus closeStatus = share.FileStore.CloseFile(openFile.Handle); if (closeStatus != NTStatus.STATUS_SUCCESS) { - state.LogToServer(Severity.Information, "Close: Closing '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, closeStatus); + state.LogToServer(Severity.Information, "Close: Closing '{0}{1}' failed. NTStatus: {2}. (SessionID: {3}, TreeID: {4}, FileId: {5})", share.Name, openFile.Path, closeStatus, request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, closeStatus); } - state.LogToServer(Severity.Information, "Close: Closed '{0}{1}'.", share.Name, openFile.Path); + state.LogToServer(Severity.Information, "Close: Closed '{0}{1}'. (SessionID: {2}, TreeID: {3}, FileId: {4})", share.Name, openFile.Path, request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); session.RemoveOpenFile(request.FileId); CloseResponse response = new CloseResponse(); if (request.PostQueryAttributes) diff --git a/SMBLibrary/Server/SMB2/CreateHelper.cs b/SMBLibrary/Server/SMB2/CreateHelper.cs index 0d54672..d09700a 100644 --- a/SMBLibrary/Server/SMB2/CreateHelper.cs +++ b/SMBLibrary/Server/SMB2/CreateHelper.cs @@ -44,14 +44,15 @@ namespace SMBLibrary.Server.SMB2 return new ErrorResponse(request.CommandName, createStatus); } - state.LogToServer(Severity.Verbose, "Create: Opened '{0}{1}'.", share.Name, path); FileID? fileID = session.AddOpenFile(request.Header.TreeID, share.Name, path, handle); if (fileID == null) { share.FileStore.CloseFile(handle); + state.LogToServer(Severity.Verbose, "Create: Opening '{0}{1}' failed. Too many open files.", share.Name, path); return new ErrorResponse(request.CommandName, NTStatus.STATUS_TOO_MANY_OPENED_FILES); } + state.LogToServer(Severity.Verbose, "Create: Opened '{0}{1}'. (SessionID: {2}, TreeID: {3}, FileId: {4})", share.Name, path, request.Header.SessionID, request.Header.TreeID, fileID.Value.Volatile); if (share is NamedPipeShare) { return CreateResponseForNamedPipe(fileID.Value, FileStatus.FILE_OPENED); diff --git a/SMBLibrary/Server/SMB2/IOCtlHelper.cs b/SMBLibrary/Server/SMB2/IOCtlHelper.cs index 860a378..42d5f1b 100644 --- a/SMBLibrary/Server/SMB2/IOCtlHelper.cs +++ b/SMBLibrary/Server/SMB2/IOCtlHelper.cs @@ -42,7 +42,7 @@ namespace SMBLibrary.Server.SMB2 // FSCTL_VALIDATE_NEGOTIATE_INFO requests MUST have FileId set to 0xFFFFFFFFFFFFFFFF. if (request.FileId.Persistent != 0xFFFFFFFFFFFFFFFF || request.FileId.Volatile != 0xFFFFFFFFFFFFFFFF) { - state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. Invalid FileId.", ctlCode); + state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. FileId MUST be 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", ctlCode); return new ErrorResponse(request.CommandName, NTStatus.STATUS_INVALID_PARAMETER); } handle = null; @@ -52,7 +52,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. Invalid FileId.", ctlCode); + state.LogToServer(Severity.Verbose, "IOCTL failed. CTL Code: {0}. Invalid FileId. (SessionID: {1}, TreeID: {2}, FileId: {3})", ctlCode, request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } handle = openFile.Handle; diff --git a/SMBLibrary/Server/SMB2/LockHelper.cs b/SMBLibrary/Server/SMB2/LockHelper.cs index 3e14a9e..41a4a9f 100644 --- a/SMBLibrary/Server/SMB2/LockHelper.cs +++ b/SMBLibrary/Server/SMB2/LockHelper.cs @@ -20,7 +20,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Lock failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Lock failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } diff --git a/SMBLibrary/Server/SMB2/QueryDirectoryHelper.cs b/SMBLibrary/Server/SMB2/QueryDirectoryHelper.cs index 58ed31c..7c4700e 100644 --- a/SMBLibrary/Server/SMB2/QueryDirectoryHelper.cs +++ b/SMBLibrary/Server/SMB2/QueryDirectoryHelper.cs @@ -20,7 +20,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Query Directory failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Query Directory failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } diff --git a/SMBLibrary/Server/SMB2/QueryInfoHelper.cs b/SMBLibrary/Server/SMB2/QueryInfoHelper.cs index 1261ee9..cd21d82 100644 --- a/SMBLibrary/Server/SMB2/QueryInfoHelper.cs +++ b/SMBLibrary/Server/SMB2/QueryInfoHelper.cs @@ -22,7 +22,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "GetFileInformation failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "GetFileInformation failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } diff --git a/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs b/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs index dbffbd0..d7aa59e 100644 --- a/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs +++ b/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs @@ -20,7 +20,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Read failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Read failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } @@ -51,7 +51,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Write failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Write failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } @@ -82,7 +82,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "Flush failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "Flush failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); } NTStatus status = share.FileStore.FlushFileBuffers(openFile.Handle); diff --git a/SMBLibrary/Server/SMB2/SetInfoHelper.cs b/SMBLibrary/Server/SMB2/SetInfoHelper.cs index 9bc5c61..1d48883 100644 --- a/SMBLibrary/Server/SMB2/SetInfoHelper.cs +++ b/SMBLibrary/Server/SMB2/SetInfoHelper.cs @@ -22,7 +22,7 @@ namespace SMBLibrary.Server.SMB2 OpenFileObject openFile = session.GetOpenFileObject(request.FileId); if (openFile == null) { - state.LogToServer(Severity.Verbose, "SetFileInformation failed. Invalid FileId."); + state.LogToServer(Severity.Verbose, "SetFileInformation failed. Invalid FileId. (SessionID: {0}, TreeID: {1}, FileId: {2})", request.Header.SessionID, request.Header.TreeID, request.FileId.Volatile); return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); }