From 9eaaefd15496d432728aeb24fac93f245888b9c3 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Thu, 21 Oct 2021 15:54:38 +0100 Subject: [PATCH] sys,dll: debug support for DispositionEx, RenameEx --- src/dll/debug.c | 27 +++++++++++++++++++++++++++ src/sys/debug.c | 3 +++ 2 files changed, 30 insertions(+) diff --git a/src/dll/debug.c b/src/dll/debug.c index 81d4f5f6..de3e391b 100644 --- a/src/dll/debug.c +++ b/src/dll/debug.c @@ -477,6 +477,18 @@ FSP_API VOID FspDebugLogRequest(FSP_FSCTL_TRANSACT_REQ *Request) UserContextBuf), Request->Req.SetInformation.Info.Disposition.Delete ? "Delete" : "Undelete"); break; + case 64/*FileDispositionInformationEx*/: + FspDebugLog("%S[TID=%04lx]: %p: >>SetInformation [DispositionEx] %s%S%s%s, " + "Flags=%lx\n", + FspDiagIdent(), GetCurrentThreadId(), (PVOID)Request->Hint, + Request->FileName.Size ? "\"" : "", + Request->FileName.Size ? (PWSTR)Request->Buffer : L"", + Request->FileName.Size ? "\", " : "", + FspDebugLogUserContextString( + Request->Req.SetInformation.UserContext, Request->Req.SetInformation.UserContext2, + UserContextBuf), + Request->Req.SetInformation.Info.DispositionEx.Flags); + break; case 10/*FileRenameInformation*/: FspDebugLog("%S[TID=%04lx]: %p: >>SetInformation [Rename] %s%S%s%s, " "NewFileName=\"%S\", AccessToken=%p[PID=%lx]\n", @@ -491,6 +503,21 @@ FSP_API VOID FspDebugLogRequest(FSP_FSCTL_TRANSACT_REQ *Request) FSP_FSCTL_TRANSACT_REQ_TOKEN_HANDLE(Request->Req.SetInformation.Info.Rename.AccessToken), FSP_FSCTL_TRANSACT_REQ_TOKEN_PID(Request->Req.SetInformation.Info.Rename.AccessToken)); break; + case 65/*FileRenameInformationEx*/: + FspDebugLog("%S[TID=%04lx]: %p: >>SetInformation [RenameEx] %s%S%s%s, " + "NewFileName=\"%S\", AccessToken=%p[PID=%lx], Flags=%lx\n", + FspDiagIdent(), GetCurrentThreadId(), (PVOID)Request->Hint, + Request->FileName.Size ? "\"" : "", + Request->FileName.Size ? (PWSTR)Request->Buffer : L"", + Request->FileName.Size ? "\", " : "", + FspDebugLogUserContextString( + Request->Req.SetInformation.UserContext, Request->Req.SetInformation.UserContext2, + UserContextBuf), + (PWSTR)(Request->Buffer + Request->Req.SetInformation.Info.Rename.NewFileName.Offset), + FSP_FSCTL_TRANSACT_REQ_TOKEN_HANDLE(Request->Req.SetInformation.Info.Rename.AccessToken), + FSP_FSCTL_TRANSACT_REQ_TOKEN_PID(Request->Req.SetInformation.Info.Rename.AccessToken), + Request->Req.SetInformation.Info.RenameEx.Flags); + break; default: FspDebugLog("%S[TID=%04lx]: %p: >>SetInformation [INVALID] %s%S%s%s\n", FspDiagIdent(), GetCurrentThreadId(), (PVOID)Request->Hint, diff --git a/src/sys/debug.c b/src/sys/debug.c index a6fe05bb..8978dd64 100644 --- a/src/sys/debug.c +++ b/src/sys/debug.c @@ -256,6 +256,9 @@ const char *FileInformationClassSym(FILE_INFORMATION_CLASS FileInformationClass) SYM(FileReplaceCompletionInformation) SYM(FileHardLinkFullIdInformation) SYM(FileIdExtdBothDirectoryInformation) + SYM(FileDispositionInformationEx) + SYM(FileRenameInformationEx) + SYM(FileRenameInformationExBypassAccessCheck) case 68: return "FileStatInformation"; case 70: return "FileStatLxInformation"; default: