ntStatus);
}
- __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) )
+ __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) )
{
AFSDbgLogMsg( 0,
0,
"EXCEPTION - AFSFSControl\n");
+
+ AFSDumpTraceFilesFnc();
}
return ntStatus;
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,
break;
}
- if( pReparseBuffer->ReparseTag != IO_REPARSE_TAG_OPENAFS_DFS)
+ if( (pReparseBuffer->ReparseTag & 0x0000FFFF) != IO_REPARSE_TAG_OPENAFS_DFS)
{
ntStatus = STATUS_IO_REPARSE_TAG_MISMATCH;
break;
}
- if( pReparseBuffer->ReparseTag != IO_REPARSE_TAG_OPENAFS_DFS)
+ if( (pReparseBuffer->ReparseTag & 0x0000FFFF) != IO_REPARSE_TAG_OPENAFS_DFS)
{
ntStatus = STATUS_IO_REPARSE_TAG_MISMATCH;
break;
}
+#ifndef FSCTL_SET_PURGE_FAILURE_MODE
+#define FSCTL_SET_PURGE_FAILURE_MODE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+ case FSCTL_SET_PURGE_FAILURE_MODE:
+ {
+
+ //
+ // For the time being just succeed this call
+ //
+
+ ntStatus = STATUS_SUCCESS;
+
+ break;
+ }
+
default :
+ {
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
ntStatus = STATUS_INVALID_DEVICE_REQUEST;
break;
+ }
}
try_exit: