diff --git a/inc/winfsp/winfsp.h b/inc/winfsp/winfsp.h index 9caff29b..516c6a9c 100644 --- a/inc/winfsp/winfsp.h +++ b/inc/winfsp/winfsp.h @@ -42,7 +42,7 @@ typedef struct _FSP_FILE_SYSTEM_INTERFACE FSP_FSCTL_TRANSACT_REQ *Request, PWSTR VolumeLabel, FSP_FSCTL_VOLUME_INFO *VolumeInfo); - NTSTATUS (*GetSecurity)(FSP_FILE_SYSTEM *FileSystem, + NTSTATUS (*GetSecurityByName)(FSP_FILE_SYSTEM *FileSystem, PWSTR FileName, PUINT32 PFileAttributes, PSECURITY_DESCRIPTOR SecurityDescriptor, SIZE_T *PSecurityDescriptorSize); NTSTATUS (*Create)(FSP_FILE_SYSTEM *FileSystem, diff --git a/src/dll/create.c b/src/dll/create.c index d849e441..2a0a1d75 100644 --- a/src/dll/create.c +++ b/src/dll/create.c @@ -25,7 +25,7 @@ static NTSTATUS FspGetSecurity(FSP_FILE_SYSTEM *FileSystem, { for (;;) { - NTSTATUS Result = FileSystem->Interface->GetSecurity(FileSystem, + NTSTATUS Result = FileSystem->Interface->GetSecurityByName(FileSystem, FileName, PFileAttributes, *PSecurityDescriptor, PSecurityDescriptorSize); if (STATUS_BUFFER_OVERFLOW != Result) return Result; @@ -47,7 +47,7 @@ FSP_API NTSTATUS FspAccessCheckEx(FSP_FILE_SYSTEM *FileSystem, if (0 != PSecurityDescriptor) *PSecurityDescriptor = 0; - if (0 == FileSystem->Interface->GetSecurity || + if (0 == FileSystem->Interface->GetSecurityByName || (!Request->Req.Create.UserMode && 0 == PSecurityDescriptor)) { *PGrantedAccess = (MAXIMUM_ALLOWED & DesiredAccess) ? @@ -538,9 +538,9 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenTargetDirectory(FSP_FILE_SYSTEM *F return Result; Information = FILE_OPENED; - if (0 != FileSystem->Interface->GetSecurity) + if (0 != FileSystem->Interface->GetSecurityByName) { - Result = FileSystem->Interface->GetSecurity(FileSystem, (PWSTR)Request->Buffer, 0, 0, 0); + Result = FileSystem->Interface->GetSecurityByName(FileSystem, (PWSTR)Request->Buffer, 0, 0, 0); Information = NT_SUCCESS(Result) ? FILE_EXISTS : FILE_DOES_NOT_EXIST; } diff --git a/src/sys/security.c b/src/sys/security.c index a1108a0a..150185bd 100644 --- a/src/sys/security.c +++ b/src/sys/security.c @@ -37,7 +37,8 @@ NTSTATUS FspFsvolQuerySecurityComplete( { FSP_ENTER_IOC(PAGED_CODE()); - FSP_LEAVE_IOC("%s", ""); + FSP_LEAVE_IOC("FileObject=%p, SecurityInformation=%x", + IrpSp->FileObject, IrpSp->Parameters.QuerySecurity.SecurityInformation); } static NTSTATUS FspFsvolSetSecurity( @@ -53,7 +54,8 @@ NTSTATUS FspFsvolSetSecurityComplete( { FSP_ENTER_IOC(PAGED_CODE()); - FSP_LEAVE_IOC("%s", ""); + FSP_LEAVE_IOC("FileObject=%p, SecurityInformation=%x", + IrpSp->FileObject, IrpSp->Parameters.SetSecurity.SecurityInformation); } NTSTATUS FspQuerySecurity( @@ -69,7 +71,8 @@ NTSTATUS FspQuerySecurity( FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST); } - FSP_LEAVE_MJ("%s", ""); + FSP_LEAVE_MJ("FileObject=%p, SecurityInformation=%x", + IrpSp->FileObject, IrpSp->Parameters.QuerySecurity.SecurityInformation); } NTSTATUS FspSetSecurity( @@ -85,5 +88,6 @@ NTSTATUS FspSetSecurity( FSP_RETURN(Result = STATUS_INVALID_DEVICE_REQUEST); } - FSP_LEAVE_MJ("%s", ""); + FSP_LEAVE_MJ("FileObject=%p, SecurityInformation=%x", + IrpSp->FileObject, IrpSp->Parameters.SetSecurity.SecurityInformation); } diff --git a/tst/winfsp-tests/memfs.cpp b/tst/winfsp-tests/memfs.cpp index 3a0c54ee..a6b2c249 100644 --- a/tst/winfsp-tests/memfs.cpp +++ b/tst/winfsp-tests/memfs.cpp @@ -229,7 +229,7 @@ static NTSTATUS SetVolumeLabel(FSP_FILE_SYSTEM *FileSystem, return STATUS_SUCCESS; } -static NTSTATUS GetSecurity(FSP_FILE_SYSTEM *FileSystem, +static NTSTATUS GetSecurityByName(FSP_FILE_SYSTEM *FileSystem, PWSTR FileName, PUINT32 PFileAttributes, PSECURITY_DESCRIPTOR SecurityDescriptor, SIZE_T *PSecurityDescriptorSize) { @@ -557,7 +557,7 @@ static FSP_FILE_SYSTEM_INTERFACE MemfsInterface = { GetVolumeInfo, SetVolumeLabel, - GetSecurity, + GetSecurityByName, Create, Open, Overwrite,