sys: create: FspFsvolCreate

Only check reparse point ECP if running on OS prior to RS4
This commit is contained in:
Bill Zissimopoulos 2018-09-06 17:52:52 -07:00
parent 52f0d1e1d8
commit 681eac9cd8
3 changed files with 45 additions and 37 deletions

View File

@ -169,6 +169,8 @@ static NTSTATUS FspFsvolCreate(
!FsRtlIsEcpFromUserMode(ExtraCreateParameter); !FsRtlIsEcpFromUserMode(ExtraCreateParameter);
#if defined(FSP_CREATE_REPARSE_POINT_ECP) #if defined(FSP_CREATE_REPARSE_POINT_ECP)
if (!HasReparsePointCaseSensitivityFix)
{
// {73d5118a-88ba-439f-92f4-46d38952d250} // {73d5118a-88ba-439f-92f4-46d38952d250}
static const GUID FspReparsePointEcpGuid = static const GUID FspReparsePointEcpGuid =
{ 0x73d5118a, 0x88ba, 0x439f, { 0x92, 0xf4, 0x46, 0xd3, 0x89, 0x52, 0xd2, 0x50 } }; { 0x73d5118a, 0x88ba, 0x439f, { 0x92, 0xf4, 0x46, 0xd3, 0x89, 0x52, 0xd2, 0x50 } };
@ -211,6 +213,7 @@ static NTSTATUS FspFsvolCreate(
RtlMoveMemory(FileName.Buffer, UnparsedName.Buffer, UnparsedName.Length); RtlMoveMemory(FileName.Buffer, UnparsedName.Buffer, UnparsedName.Length);
} }
} }
}
#endif #endif
} }

View File

@ -233,6 +233,9 @@ static VOID FspDriverMultiVersionInitialize(VOID)
if (RtlIsNtDdiVersionAvailable(NTDDI_WIN8)) if (RtlIsNtDdiVersionAvailable(NTDDI_WIN8))
FspMvMdlMappingNoWrite = MdlMappingNoWrite; FspMvMdlMappingNoWrite = MdlMappingNoWrite;
if (RtlIsNtDdiVersionAvailable(0x0A000005/*NTDDI_WIN10_RS4*/))
HasReparsePointCaseSensitivityFix = TRUE;
} }
#if defined(FSP_UNLOAD) #if defined(FSP_UNLOAD)
@ -270,3 +273,4 @@ CACHE_MANAGER_CALLBACKS FspCacheManagerCallbacks;
ULONG FspProcessorCount; ULONG FspProcessorCount;
FSP_MV_CcCoherencyFlushAndPurgeCache *FspMvCcCoherencyFlushAndPurgeCache; FSP_MV_CcCoherencyFlushAndPurgeCache *FspMvCcCoherencyFlushAndPurgeCache;
ULONG FspMvMdlMappingNoWrite = 0; ULONG FspMvMdlMappingNoWrite = 0;
BOOLEAN HasReparsePointCaseSensitivityFix = FALSE;

View File

@ -1577,6 +1577,7 @@ extern const GUID FspMainFileOpenEcpGuid;
extern ULONG FspProcessorCount; extern ULONG FspProcessorCount;
extern FSP_MV_CcCoherencyFlushAndPurgeCache *FspMvCcCoherencyFlushAndPurgeCache; extern FSP_MV_CcCoherencyFlushAndPurgeCache *FspMvCcCoherencyFlushAndPurgeCache;
extern ULONG FspMvMdlMappingNoWrite; extern ULONG FspMvMdlMappingNoWrite;
extern BOOLEAN HasReparsePointCaseSensitivityFix;
/* /*
* Fixes * Fixes