mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -05:00
sys,dll: rename VolumeParams::ReparsePoints* fields
This commit is contained in:
parent
1298dd842d
commit
fee75590a8
@ -127,8 +127,8 @@ typedef struct
|
|||||||
UINT32 UnicodeOnDisk:1; /* file system supports Unicode in file names */
|
UINT32 UnicodeOnDisk:1; /* file system supports Unicode in file names */
|
||||||
UINT32 PersistentAcls:1; /* file system preserves and enforces access control lists */
|
UINT32 PersistentAcls:1; /* file system preserves and enforces access control lists */
|
||||||
UINT32 ReparsePoints:1; /* file system supports reparse points */
|
UINT32 ReparsePoints:1; /* file system supports reparse points */
|
||||||
UINT32 ReparsePointsPrivilegeCheck:1; /* file system performs reparse point privilege checks */
|
UINT32 ReparsePointsAccessCheck:1; /* file system performs reparse point access checks */
|
||||||
UINT32 ReparsePointsSymbolicLinks:1; /* file system supports only symbolic link reparse points */
|
UINT32 ReparsePointsSymlinkOnly:1; /* file system supports only symbolic link reparse points */
|
||||||
UINT32 NamedStreams:1; /* file system supports named streams (!!!: unimplemented) */
|
UINT32 NamedStreams:1; /* file system supports named streams (!!!: unimplemented) */
|
||||||
UINT32 HardLinks:1; /* unimplemented; set to 0 */
|
UINT32 HardLinks:1; /* unimplemented; set to 0 */
|
||||||
UINT32 ExtendedAttributes:1; /* unimplemented; set to 0 */
|
UINT32 ExtendedAttributes:1; /* unimplemented; set to 0 */
|
||||||
|
@ -702,10 +702,10 @@ typedef struct _FSP_FILE_SYSTEM_INTERFACE
|
|||||||
* Get reparse point.
|
* Get reparse point.
|
||||||
*
|
*
|
||||||
* The behavior of this function depends on the value of FSP_FSCTL_VOLUME_PARAMS ::
|
* The behavior of this function depends on the value of FSP_FSCTL_VOLUME_PARAMS ::
|
||||||
* ReparsePointsSymbolicLinksOnly. If the value of ReparsePointsSymbolicLinksOnly
|
* ReparsePointsSymlinkOnly. If the value of ReparsePointsSymlinkOnly
|
||||||
* is FALSE the file system supports full reparse points and this function is expected
|
* is FALSE the file system supports full reparse points and this function is expected
|
||||||
* to fill the buffer with a full reparse point. If the value of
|
* to fill the buffer with a full reparse point. If the value of
|
||||||
* ReparsePointsSymbolicLinksOnly is TRUE the file system supports symbolic links only
|
* ReparsePointsSymlinkOnly is TRUE the file system supports symbolic links only
|
||||||
* as reparse points and this function is expected to fill the buffer with the symbolic
|
* as reparse points and this function is expected to fill the buffer with the symbolic
|
||||||
* link path.
|
* link path.
|
||||||
*
|
*
|
||||||
@ -736,10 +736,10 @@ typedef struct _FSP_FILE_SYSTEM_INTERFACE
|
|||||||
* Set reparse point.
|
* Set reparse point.
|
||||||
*
|
*
|
||||||
* The behavior of this function depends on the value of FSP_FSCTL_VOLUME_PARAMS ::
|
* The behavior of this function depends on the value of FSP_FSCTL_VOLUME_PARAMS ::
|
||||||
* ReparsePointsSymbolicLinksOnly. If the value of ReparsePointsSymbolicLinksOnly
|
* ReparsePointsSymlinkOnly. If the value of ReparsePointsSymlinkOnly
|
||||||
* is FALSE the file system supports full reparse points and this function is expected
|
* is FALSE the file system supports full reparse points and this function is expected
|
||||||
* to set the reparse point contained in the buffer. If the value of
|
* to set the reparse point contained in the buffer. If the value of
|
||||||
* ReparsePointsSymbolicLinksOnly is TRUE the file system supports symbolic links only
|
* ReparsePointsSymlinkOnly is TRUE the file system supports symbolic links only
|
||||||
* as reparse points and this function is expected to set the symbolic link path contained
|
* as reparse points and this function is expected to set the symbolic link path contained
|
||||||
* in the buffer.
|
* in the buffer.
|
||||||
*
|
*
|
||||||
@ -797,7 +797,7 @@ typedef struct _FSP_FILE_SYSTEM
|
|||||||
UINT32 DebugLog;
|
UINT32 DebugLog;
|
||||||
FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY OpGuardStrategy;
|
FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY OpGuardStrategy;
|
||||||
SRWLOCK OpGuardLock;
|
SRWLOCK OpGuardLock;
|
||||||
UINT32 ReparsePointsSymbolicLinks:1;
|
UINT32 ReparsePointsSymlinkOnly:1;
|
||||||
} FSP_FILE_SYSTEM;
|
} FSP_FILE_SYSTEM;
|
||||||
/**
|
/**
|
||||||
* Create a file system object.
|
* Create a file system object.
|
||||||
|
@ -106,7 +106,7 @@ FSP_API NTSTATUS FspFileSystemCreate(PWSTR DevicePath,
|
|||||||
FileSystem->EnterOperation = FspFileSystemOpEnter;
|
FileSystem->EnterOperation = FspFileSystemOpEnter;
|
||||||
FileSystem->LeaveOperation = FspFileSystemOpLeave;
|
FileSystem->LeaveOperation = FspFileSystemOpLeave;
|
||||||
|
|
||||||
FileSystem->ReparsePointsSymbolicLinks = VolumeParams->ReparsePointsSymbolicLinks;
|
FileSystem->ReparsePointsSymlinkOnly = VolumeParams->ReparsePointsSymlinkOnly;
|
||||||
|
|
||||||
*PFileSystem = FileSystem;
|
*PFileSystem = FileSystem;
|
||||||
|
|
||||||
|
@ -897,7 +897,7 @@ FSP_API NTSTATUS FspFileSystemOpFileSystemControl(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
ReparseData = (PREPARSE_DATA_BUFFER)Response->Buffer;
|
ReparseData = (PREPARSE_DATA_BUFFER)Response->Buffer;
|
||||||
memset(ReparseData, 0, sizeof *ReparseData);
|
memset(ReparseData, 0, sizeof *ReparseData);
|
||||||
|
|
||||||
if (FileSystem->ReparsePointsSymbolicLinks)
|
if (FileSystem->ReparsePointsSymlinkOnly)
|
||||||
{
|
{
|
||||||
Size = FSP_FSCTL_TRANSACT_RSP_SIZEMAX - FIELD_OFFSET(FSP_FSCTL_TRANSACT_RSP, Buffer) -
|
Size = FSP_FSCTL_TRANSACT_RSP_SIZEMAX - FIELD_OFFSET(FSP_FSCTL_TRANSACT_RSP, Buffer) -
|
||||||
FIELD_OFFSET(REPARSE_DATA_BUFFER, SymbolicLinkReparseBuffer.PathBuffer);
|
FIELD_OFFSET(REPARSE_DATA_BUFFER, SymbolicLinkReparseBuffer.PathBuffer);
|
||||||
@ -950,7 +950,7 @@ FSP_API NTSTATUS FspFileSystemOpFileSystemControl(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
ReparseData = (PREPARSE_DATA_BUFFER)
|
ReparseData = (PREPARSE_DATA_BUFFER)
|
||||||
(Request->Buffer + Request->Req.FileSystemControl.Buffer.Offset);
|
(Request->Buffer + Request->Req.FileSystemControl.Buffer.Offset);
|
||||||
|
|
||||||
if (FileSystem->ReparsePointsSymbolicLinks)
|
if (FileSystem->ReparsePointsSymlinkOnly)
|
||||||
{
|
{
|
||||||
Result = FileSystem->Interface->SetReparsePoint(FileSystem, Request,
|
Result = FileSystem->Interface->SetReparsePoint(FileSystem, Request,
|
||||||
(PVOID)Request->Req.FileSystemControl.UserContext,
|
(PVOID)Request->Req.FileSystemControl.UserContext,
|
||||||
@ -1159,7 +1159,7 @@ FSP_API NTSTATUS FspFileSystemResolveReparsePoints(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
|
|
||||||
c = *p;
|
c = *p;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
if (FileSystem->ReparsePointsSymbolicLinks)
|
if (FileSystem->ReparsePointsSymlinkOnly)
|
||||||
{
|
{
|
||||||
Size = FSP_FSCTL_TRANSACT_PATH_SIZEMAX;
|
Size = FSP_FSCTL_TRANSACT_PATH_SIZEMAX;
|
||||||
Result = GetReparsePointByName(FileSystem, Context, TargetPath,
|
Result = GetReparsePointByName(FileSystem, Context, TargetPath,
|
||||||
@ -1188,7 +1188,7 @@ FSP_API NTSTATUS FspFileSystemResolveReparsePoints(FSP_FILE_SYSTEM *FileSystem,
|
|||||||
if (0 == --MaxTries)
|
if (0 == --MaxTries)
|
||||||
return STATUS_REPARSE_POINT_NOT_RESOLVED;
|
return STATUS_REPARSE_POINT_NOT_RESOLVED;
|
||||||
|
|
||||||
if (FileSystem->ReparsePointsSymbolicLinks)
|
if (FileSystem->ReparsePointsSymlinkOnly)
|
||||||
TargetLink = ReparseData->SymbolicLinkReparseBuffer.PathBuffer;
|
TargetLink = ReparseData->SymbolicLinkReparseBuffer.PathBuffer;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -503,8 +503,8 @@ FSP_FUSE_API struct fuse *fsp_fuse_new(struct fsp_fuse_env *env,
|
|||||||
opt_data.VolumeParams.CaseSensitiveSearch = !opt_data.CaseInsensitiveSearch;
|
opt_data.VolumeParams.CaseSensitiveSearch = !opt_data.CaseInsensitiveSearch;
|
||||||
opt_data.VolumeParams.PersistentAcls = TRUE;
|
opt_data.VolumeParams.PersistentAcls = TRUE;
|
||||||
opt_data.VolumeParams.ReparsePoints = FALSE; /* see FSP_FUSE_HAS_SYMLINKS use below */
|
opt_data.VolumeParams.ReparsePoints = FALSE; /* see FSP_FUSE_HAS_SYMLINKS use below */
|
||||||
opt_data.VolumeParams.ReparsePointsSymbolicLinks = TRUE;
|
opt_data.VolumeParams.ReparsePointsAccessCheck = FALSE;
|
||||||
opt_data.VolumeParams.ReparsePointsPrivilegeCheck = FALSE;
|
opt_data.VolumeParams.ReparsePointsSymlinkOnly = TRUE;
|
||||||
opt_data.VolumeParams.NamedStreams = !!opt_data.NamedStreams;
|
opt_data.VolumeParams.NamedStreams = !!opt_data.NamedStreams;
|
||||||
opt_data.VolumeParams.ReadOnlyVolume = !!opt_data.ReadOnlyVolume;
|
opt_data.VolumeParams.ReadOnlyVolume = !!opt_data.ReadOnlyVolume;
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ static NTSTATUS FspFsvolFileSystemControlReparsePoint(
|
|||||||
if (IO_REPARSE_TAG_SYMLINK == ReparseData->ReparseTag)
|
if (IO_REPARSE_TAG_SYMLINK == ReparseData->ReparseTag)
|
||||||
{
|
{
|
||||||
/* NTFS severely limits symbolic links; we will not do that unless our file system asks */
|
/* NTFS severely limits symbolic links; we will not do that unless our file system asks */
|
||||||
if (FsvolDeviceExtension->VolumeParams.ReparsePointsPrivilegeCheck)
|
if (FsvolDeviceExtension->VolumeParams.ReparsePointsAccessCheck)
|
||||||
{
|
{
|
||||||
if (KernelMode != Irp->RequestorMode &&
|
if (KernelMode != Irp->RequestorMode &&
|
||||||
SeSinglePrivilegeCheck(RtlConvertLongToLuid(SE_CREATE_SYMBOLIC_LINK_PRIVILEGE),
|
SeSinglePrivilegeCheck(RtlConvertLongToLuid(SE_CREATE_SYMBOLIC_LINK_PRIVILEGE),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user