case AFS_SYMBOLIC_LINK_FCB:
case AFS_MOUNT_POINT_FCB:
case AFS_DFS_LINK_FCB:
+ case AFS_INVALID_FCB:
{
//
case AFS_SYMBOLIC_LINK_FCB:
case AFS_MOUNT_POINT_FCB:
case AFS_DFS_LINK_FCB:
+ case AFS_INVALID_FCB:
{
pCcb = (AFSCcb *)pIrpSp->FileObject->FsContext2;
}
else if( (*Fcb)->Header.NodeTypeCode == AFS_MOUNT_POINT_FCB ||
(*Fcb)->Header.NodeTypeCode == AFS_SYMBOLIC_LINK_FCB ||
- (*Fcb)->Header.NodeTypeCode == AFS_DFS_LINK_FCB)
+ (*Fcb)->Header.NodeTypeCode == AFS_DFS_LINK_FCB ||
+ (*Fcb)->Header.NodeTypeCode == AFS_INVALID_FCB)
{
//
}
else if( pObjectInfo->Fcb->Header.NodeTypeCode == AFS_MOUNT_POINT_FCB ||
pObjectInfo->Fcb->Header.NodeTypeCode == AFS_SYMBOLIC_LINK_FCB ||
- pObjectInfo->Fcb->Header.NodeTypeCode == AFS_DFS_LINK_FCB)
+ pObjectInfo->Fcb->Header.NodeTypeCode == AFS_DFS_LINK_FCB ||
+ pObjectInfo->Fcb->Header.NodeTypeCode == AFS_INVALID_FCB)
{
}
}
else
{
- ASSERT( FALSE);
- try_return( ntStatus = STATUS_INVALID_PARAMETER);
+ pFcb->Header.NodeTypeCode = AFS_INVALID_FCB;
}
//
try_return( ntStatus);
}
+ else if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
+ {
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSQueryFileInfo request against Invalid Fcb\n");
+
+ try_return( ntStatus = STATUS_ACCESS_DENIED);
+ }
+
//
// Process the request
//
try_return( ntStatus = STATUS_ACCESS_DENIED);
}
+ if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB &&
+ FileInformationClass != FileDispositionInformation)
+ {
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetFileInfo request against Invalid Fcb\n");
+
+ try_return( ntStatus = STATUS_ACCESS_DENIED);
+ }
+
//
// Ensure rename operations are synchronous
//
try_return( ntStatus = STATUS_DIRECTORY_NOT_EMPTY);
}
}
- else
+ else if( pFcb->Header.NodeTypeCode == AFS_FILE_FCB)
{
//
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
}
+ else if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
+ {
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSLockControl Failing request against Invalid Fcb\n");
+
+ try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
+ }
//
// Post the request to the service for checks
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
}
+ else if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
+ {
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSQueryVolumeInfo Failing request against SpecialShare Fcb\n");
+
+ try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
+ }
//
// Process the request