ULONG ulNotificationAction = 0, ulNotifyFilter = 0;
UNICODE_STRING uniFullTargetPath;
BOOLEAN bCommonParent = FALSE;
- ULONG oldFileIndex;
BOOLEAN bReleaseVolumeLock = FALSE;
BOOLEAN bReleaseTargetDirLock = FALSE;
BOOLEAN bReleaseSourceDirLock = FALSE;
pSrcCcb->DirectoryCB,
!bCommonParent);
- oldFileIndex = pSrcCcb->DirectoryCB->FileIndex;
-
- if( !bCommonParent)
- {
-
- //
- // We always need to update the FileIndex since this entry will be put at the 'end'
- // of the enumeraiton list. If we don't it will cause recursion ... We do this
- // here to cover any failures which might occur below
- //
-
- pSrcCcb->DirectoryCB->FileIndex =
- (ULONG)InterlockedIncrement( &pTargetDcb->ObjectInformation->ParentObjectInformation->Specific.Directory.DirectoryNodeHdr.ContentIndex);
- }
-
//
// OK, this is a simple rename. Issue the rename
// request to the service.
// Attempt to re-insert the directory entry
//
- pSrcCcb->DirectoryCB->FileIndex = oldFileIndex;
AFSInsertDirectoryNode( pSrcFcb->ObjectInformation->ParentObjectInformation,
pSrcCcb->DirectoryCB,
!bCommonParent);
// Attempt to re-insert the directory entry
//
- pSrcCcb->DirectoryCB->FileIndex = oldFileIndex;
AFSInsertDirectoryNode( pSrcFcb->ObjectInformation->ParentObjectInformation,
pSrcCcb->DirectoryCB,
!bCommonParent);
case FileBasicInformation:
{
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessPIOCtlQueryInfo (FileBasicInformation)\n");
+
if ( *Length >= sizeof( FILE_BASIC_INFORMATION))
{
PFILE_BASIC_INFORMATION pBasic = (PFILE_BASIC_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
}
else
{
- ntStatus = STATUS_BUFFER_OVERFLOW;
+ ntStatus = STATUS_BUFFER_TOO_SMALL;
}
break;
case FileStandardInformation:
{
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessPIOCtlQueryInfo (FileStandardInformation)\n");
+
if ( *Length >= sizeof( FILE_STANDARD_INFORMATION))
{
PFILE_STANDARD_INFORMATION pStandard = (PFILE_STANDARD_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
}
else
{
- ntStatus = STATUS_BUFFER_OVERFLOW;
+ ntStatus = STATUS_BUFFER_TOO_SMALL;
}
break;
PFILE_NAME_INFORMATION pNameInfo = (PFILE_NAME_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
UNICODE_STRING uniName;
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessPIOCtlQueryInfo (FileNameInformation)\n");
+
pFcb = (AFSFcb *)pIrpSp->FileObject->FsContext;
pCcb = (AFSCcb *)pIrpSp->FileObject->FsContext2;
PFILE_INTERNAL_INFORMATION pInternalInfo = (PFILE_INTERNAL_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessPIOCtlQueryInfo (FileInternalInformation)\n");
+
if( *Length >= sizeof( FILE_INTERNAL_INFORMATION))
{
break;
}
+ case FileAllInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileAllInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileEaInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileEaInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FilePositionInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FilePositionInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileAlternateNameInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileAlternateNameInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileNetworkOpenInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileNetworkOpenInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileStreamInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileStreamInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileAttributeTagInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileAttributeTagInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileRemoteProtocolInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileRemoteProtocolInformation) Not Implemented\n");
+
+ break;
+ }
+
+ case FileNetworkPhysicalNameInformation:
+ {
+ ntStatus = STATUS_INVALID_PARAMETER;
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSProcessPIOCtlQueryInfo (FileNetworkPhysicalNameInformation) Not Implemented\n");
+
+ break;
+ }
+
default:
{
ntStatus = STATUS_INVALID_PARAMETER;
}
}
+ AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessPIOCtlQueryInfo ntStatus %08lX\n",
+ ntStatus);
+
return ntStatus;
}