diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp index 29dc20f8c9..b5768a9bd3 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp @@ -548,7 +548,7 @@ AFSProcessUserFsRequest( IN PIRP Irp) ulRemainingLen -= pReparseBuffer->ReparseDataLength; - pReparseBuffer->ReparseTag = IO_REPARSE_TAG_OPENAFS_DFS; + pReparseBuffer->ReparseTag = IO_REPARSE_TAG_SURROGATE|IO_REPARSE_TAG_OPENAFS_DFS; RtlCopyMemory( &pReparseBuffer->ReparseGuid, &GUID_AFS_REPARSE_GUID, @@ -595,7 +595,7 @@ AFSProcessUserFsRequest( IN PIRP Irp) break; } - if( pReparseBuffer->ReparseTag != IO_REPARSE_TAG_OPENAFS_DFS) + if( (pReparseBuffer->ReparseTag & 0x0000FFFF) != IO_REPARSE_TAG_OPENAFS_DFS) { ntStatus = STATUS_IO_REPARSE_TAG_MISMATCH; @@ -654,7 +654,7 @@ AFSProcessUserFsRequest( IN PIRP Irp) break; } - if( pReparseBuffer->ReparseTag != IO_REPARSE_TAG_OPENAFS_DFS) + if( (pReparseBuffer->ReparseTag & 0x0000FFFF) != IO_REPARSE_TAG_OPENAFS_DFS) { ntStatus = STATUS_IO_REPARSE_TAG_MISMATCH; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index ba96adf1e9..eb643b380b 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -1622,7 +1622,7 @@ AFSQueryAttribTagInfo( IN PIRP Irp, if( BooleanFlagOn( DirectoryCB->ObjectInformation->FileAttributes, FILE_ATTRIBUTE_REPARSE_POINT)) { - Buffer->ReparseTag = IO_REPARSE_TAG_OPENAFS_DFS; + Buffer->ReparseTag = IO_REPARSE_TAG_SURROGATE|IO_REPARSE_TAG_OPENAFS_DFS; } *Length -= sizeof( FILE_ATTRIBUTE_TAG_INFORMATION); diff --git a/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h b/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h index b4bde8aca8..fc5dc2cbad 100644 --- a/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h +++ b/src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h @@ -434,6 +434,10 @@ DEFINE_GUID (GUID_SD_AFS_REDIRECTOR_CONTROL_OBJECT, #define IO_REPARSE_TAG_OPENAFS_DFS 0x00000037L #endif +#ifndef IO_REPARSE_TAG_SURROGATE +#define IO_REPARSE_TAG_SURROGATE 0x20000000L +#endif + // {EF21A155-5C92-4470-AB3B-370403D96369} DEFINE_GUID (GUID_AFS_REPARSE_GUID, 0xEF21A155, 0x5C92, 0x4470, 0xAB, 0x3B, 0x37, 0x04, 0x03, 0xD9, 0x63, 0x69);