if( pFcb == NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSQueryFileInfo Attempted access (%p) when pFcb == NULL\n",
- Irp);
+ Irp));
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
}
// Grab the main shared right off the bat
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSQueryFileInfo Acquiring Fcb lock %p SHARED %08lX\n",
&pFcb->NPFcb->Resource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireShared( &pFcb->NPFcb->Resource,
TRUE);
if( pFcb->Header.NodeTypeCode == AFS_SPECIAL_SHARE_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSQueryFileInfo Processing request against SpecialShare Fcb\n");
+ "AFSQueryFileInfo Processing request against SpecialShare Fcb\n"));
ntStatus = AFSProcessShareQueryInfo( Irp,
pFcb,
}
else if( pFcb->Header.NodeTypeCode == AFS_IOCTL_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSQueryFileInfo request against PIOCtl Fcb\n");
+ "AFSQueryFileInfo request against PIOCtl Fcb\n"));
ntStatus = AFSProcessPIOCtlQueryInfo( Irp,
pFcb,
else if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSQueryFileInfo request against Invalid Fcb\n");
+ "AFSQueryFileInfo request against Invalid Fcb\n"));
try_return( ntStatus = STATUS_ACCESS_DENIED);
}
pCcb->DirectoryCB != NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSQueryFileInfo Failed to process request for %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileId.Cell,
- pCcb->DirectoryCB->ObjectInformation->FileId.Volume,
- pCcb->DirectoryCB->ObjectInformation->FileId.Vnode,
- pCcb->DirectoryCB->ObjectInformation->FileId.Unique,
- ntStatus);
+ pFcb->ObjectInformation->FileId.Cell,
+ pFcb->ObjectInformation->FileId.Volume,
+ pFcb->ObjectInformation->FileId.Vnode,
+ pFcb->ObjectInformation->FileId.Unique,
+ ntStatus));
}
}
}
__except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) )
{
- AFSDbgLogMsg( 0,
+ AFSDbgTrace(( 0,
0,
- "EXCEPTION - AFSQueryFileInfo\n");
+ "EXCEPTION - AFSQueryFileInfo\n"));
AFSDumpTraceFilesFnc();
if( pFcb == NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileInfo Attempted access (%p) when pFcb == NULL\n",
- Irp);
+ Irp));
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
}
// Grab the Fcb EXCL
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetFileInfo Acquiring Fcb lock %p EXCL %08lX\n",
&pFcb->NPFcb->Resource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->Resource,
TRUE);
if( pFcb->Header.NodeTypeCode == AFS_IOCTL_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSSetFileInfo Failing request against PIOCtl Fcb\n");
+ "AFSSetFileInfo Failing request against PIOCtl Fcb\n"));
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
}
else if( pFcb->Header.NodeTypeCode == AFS_SPECIAL_SHARE_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSSetFileInfo Processing request against SpecialShare Fcb\n");
+ "AFSSetFileInfo Processing request against SpecialShare Fcb\n"));
ntStatus = AFSProcessShareSetInfo( Irp,
pFcb,
try_return( ntStatus);
}
- if( BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.Characteristics, FILE_READ_ONLY_DEVICE))
+ if( BooleanFlagOn( pFcb->ObjectInformation->VolumeCB->VolumeInformation.FileSystemAttributes, FILE_READ_ONLY_VOLUME))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileInfo Request failed due to read only volume\n",
- Irp);
+ Irp));
try_return( ntStatus = STATUS_MEDIA_WRITE_PROTECTED);
}
if( pFcb->Header.NodeTypeCode == AFS_INVALID_FCB &&
FileInformationClass != FileDispositionInformation)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSSetFileInfo request against Invalid Fcb\n");
+ "AFSSetFileInfo request against Invalid Fcb\n"));
try_return( ntStatus = STATUS_ACCESS_DENIED);
}
AFSUnwindFileInfo( pFcb,
pCcb);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileInfo Failed to send file info update to service request for %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileId.Cell,
- pCcb->DirectoryCB->ObjectInformation->FileId.Volume,
- pCcb->DirectoryCB->ObjectInformation->FileId.Vnode,
- pCcb->DirectoryCB->ObjectInformation->FileId.Unique,
- ntStatus);
+ pFcb->ObjectInformation->FileId.Cell,
+ pFcb->ObjectInformation->FileId.Volume,
+ pFcb->ObjectInformation->FileId.Vnode,
+ pFcb->ObjectInformation->FileId.Unique,
+ ntStatus));
AFSReleaseResource( &pFcb->NPFcb->Resource);
}
pCcb->DirectoryCB != NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileInfo Failed to process request for %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileId.Cell,
- pCcb->DirectoryCB->ObjectInformation->FileId.Volume,
- pCcb->DirectoryCB->ObjectInformation->FileId.Vnode,
- pCcb->DirectoryCB->ObjectInformation->FileId.Unique,
- ntStatus);
+ pFcb->ObjectInformation->FileId.Cell,
+ pFcb->ObjectInformation->FileId.Volume,
+ pFcb->ObjectInformation->FileId.Vnode,
+ pFcb->ObjectInformation->FileId.Unique,
+ ntStatus));
}
}
}
__except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) )
{
- AFSDbgLogMsg( 0,
+ AFSDbgTrace(( 0,
0,
- "EXCEPTION - AFSSetFileInfo\n");
+ "EXCEPTION - AFSSetFileInfo\n"));
AFSDumpTraceFilesFnc();
AFSReleaseResource( &pFcb->NPFcb->Resource);
+ //
+ // Its a reparse point regardless of whether the file attributes
+ // can be retrieved for the target.
+ //
+
+ if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
+ {
+
+ ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+ else
+ {
+
+ ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+
if( NT_SUCCESS( AFSRetrieveFileAttributes( pParentDirectoryCB,
DirectoryCB,
&uniParentPath,
&stFileInfo)))
{
- if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
- {
-
- ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
- }
- else
- {
-
- ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
- }
-
if ( stFileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
"AFSQueryBasicInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileType,
- pCcb->DirectoryCB->ObjectInformation->FileAttributes,
- ulFileAttribs);
+ pFcb->ObjectInformation->FileType,
+ pFcb->ObjectInformation->FileAttributes,
+ ulFileAttribs));
Buffer->CreationTime = DirectoryCB->ObjectInformation->CreationTime;
Buffer->LastAccessTime = DirectoryCB->ObjectInformation->LastAccessTime;
AFSReleaseResource( &pFcb->NPFcb->Resource);
+ //
+ // Its a reparse point regardless of whether or not the
+ // file attributes can be retrieved.
+ //
+
+ if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
+ {
+
+ ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+ else
+ {
+
+ ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+
if( NT_SUCCESS( AFSRetrieveFileAttributes( pParentDirectoryCB,
DirectoryCB,
&uniParentPath,
&stFileInfo)))
{
- if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
- {
-
- ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
- }
- else
- {
-
- ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
- }
-
if ( stFileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TRUE);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
"AFSQueryStandardInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileType,
- pCcb->DirectoryCB->ObjectInformation->FileAttributes,
- ulFileAttribs);
+ pFcb->ObjectInformation->FileType,
+ pFcb->ObjectInformation->FileAttributes,
+ ulFileAttribs));
Buffer->Directory = BooleanFlagOn( ulFileAttribs, FILE_ATTRIBUTE_DIRECTORY);
AFSReleaseResource( &pFcb->NPFcb->Resource);
+ //
+ // Its a reparse point regardless of whether the file attributes
+ // can be retrieved for the target.
+ //
+
+ if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
+ {
+
+ ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+ else
+ {
+
+ ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+
if( NT_SUCCESS( AFSRetrieveFileAttributes( pParentDirectoryCB,
DirectoryCB,
&uniParentPath,
&stFileInfo)))
{
- if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
- {
-
- ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
- }
- else
- {
-
- ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
- }
-
if ( stFileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TRUE);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
"AFSQueryNetworkInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileType,
- pCcb->DirectoryCB->ObjectInformation->FileAttributes,
- ulFileAttribs);
+ pFcb->ObjectInformation->FileType,
+ pFcb->ObjectInformation->FileAttributes,
+ ulFileAttribs));
Buffer->CreationTime.QuadPart = DirectoryCB->ObjectInformation->CreationTime.QuadPart;
Buffer->LastAccessTime.QuadPart = DirectoryCB->ObjectInformation->LastAccessTime.QuadPart;
AFSReleaseResource( &pFcb->NPFcb->Resource);
+ //
+ // Its a reparse point regardless of whether the file attributes
+ // can be retrieved for the target.
+ //
+
+ if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
+ {
+
+ ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+ else
+ {
+
+ ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
+ }
+
if( NT_SUCCESS( AFSRetrieveFileAttributes( pParentDirectoryCB,
DirectoryCB,
&uniParentPath,
&stFileInfo)))
{
- if ( ulFileAttribs == FILE_ATTRIBUTE_NORMAL)
- {
-
- ulFileAttribs = FILE_ATTRIBUTE_REPARSE_POINT;
- }
- else
- {
-
- ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT;
- }
-
if ( stFileInfo.FileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TRUE);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
"AFSAttribTagInfo %wZ Type 0x%x Attrib 0x%x -> 0x%x\n",
&pCcb->DirectoryCB->NameInformation.FileName,
- pCcb->DirectoryCB->ObjectInformation->FileType,
- pCcb->DirectoryCB->ObjectInformation->FileAttributes,
- ulFileAttribs);
+ pFcb->ObjectInformation->FileType,
+ pFcb->ObjectInformation->FileAttributes,
+ ulFileAttribs));
Buffer->FileAttributes = ulFileAttribs;
{
AFSObjectInfoCB * pParentObjectInfo = AFSFindObjectInfo( DirectoryCB->ObjectInformation->VolumeCB,
- &DirectoryCB->ObjectInformation->ParentFileId);
+ &DirectoryCB->ObjectInformation->ParentFileId,
+ TRUE);
if ( pParentObjectInfo != NULL)
{
if( pFcb->Header.NodeTypeCode == AFS_ROOT_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSSetDispositionInfo Attempt to delete root entry\n");
+ "AFSSetDispositionInfo Attempt to delete root entry\n"));
try_return( ntStatus = STATUS_CANNOT_DELETE);
}
if( BooleanFlagOn( DirectoryCB->ObjectInformation->FileAttributes, FILE_ATTRIBUTE_READONLY))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetDispositionInfo Attempt to delete read only entry %wZ\n",
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_CANNOT_DELETE);
}
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetDispositionInfo Cannot delete entry %wZ Status %08lX\n",
&DirectoryCB->NameInformation.FileName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
if( pFcb->ObjectInformation->Specific.Directory.ChildOpenHandleCount > 0)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetDispositionInfo Attempt to delete directory %wZ with open %u handles\n",
&DirectoryCB->NameInformation.FileName,
- pFcb->ObjectInformation->Specific.Directory.ChildOpenHandleCount);
+ pFcb->ObjectInformation->Specific.Directory.ChildOpenHandleCount));
try_return( ntStatus = STATUS_DIRECTORY_NOT_EMPTY);
}
+ //
+ // Make sure the directory is enumerated before checking to see if it is empty.
+ //
+
+ if( !BooleanFlagOn( pFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED))
+ {
+
+ AFSAcquireExcl( pFcb->ObjectInformation->Specific.Directory.DirectoryNodeHdr.TreeLock,
+ TRUE);
+
+ if( !BooleanFlagOn( pFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED))
+ {
+
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetDispositionInfo Enumerating parent FID %08lX-%08lX-%08lX-%08lX\n",
+ pFcb->ObjectInformation->FileId.Cell,
+ pFcb->ObjectInformation->FileId.Volume,
+ pFcb->ObjectInformation->FileId.Vnode,
+ pFcb->ObjectInformation->FileId.Unique));
+
+ ntStatus = AFSEnumerateDirectory( &pCcb->AuthGroup,
+ pFcb->ObjectInformation,
+ TRUE);
+
+ if( !NT_SUCCESS( ntStatus))
+ {
+
+ AFSReleaseResource( pFcb->ObjectInformation->Specific.Directory.DirectoryNodeHdr.TreeLock);
+
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSSetDispositionInfo Failed to enumerate parent FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
+ pFcb->ObjectInformation->FileId.Cell,
+ pFcb->ObjectInformation->FileId.Volume,
+ pFcb->ObjectInformation->FileId.Vnode,
+ pFcb->ObjectInformation->FileId.Unique,
+ ntStatus));
+
+ try_return( ntStatus);
+ }
+ }
+
+ AFSReleaseResource( pFcb->ObjectInformation->Specific.Directory.DirectoryNodeHdr.TreeLock);
+ }
+
if( !AFSIsDirectoryEmptyForDelete( pFcb))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetDispositionInfo Attempt to delete non-empty directory %wZ\n",
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_DIRECTORY_NOT_EMPTY);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Setting PENDING_DELETE on DirEntry %p Name %wZ\n",
DirectoryCB,
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_PENDING_DELETE);
}
{
BOOLEAN bMmFlushed;
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->SectionObjectResource,
TRUE);
// which attempts to open the file which is being deleted.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Setting PENDING_DELETE on DirEntry %p Name %wZ\n",
DirectoryCB,
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_PENDING_DELETE);
}
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Releasing Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSReleaseResource( &pFcb->NPFcb->SectionObjectResource);
if ( !bMmFlushed)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetDispositionInfo Failed to flush image section for delete Entry %wZ\n",
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_CANNOT_DELETE);
}
pFcb->Header.NodeTypeCode == AFS_INVALID_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetDispositionInfo Setting PENDING_DELETE on DirEntry %p Name %wZ\n",
DirectoryCB,
- &DirectoryCB->NameInformation.FileName);
+ &DirectoryCB->NameInformation.FileName));
SetFlag( pCcb->DirectoryCB->Flags, AFS_DIR_ENTRY_PENDING_DELETE);
}
pSrcObject = pSrcFcb->ObjectInformation;
- if ( BooleanFlagOn( pSrcFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
+ if ( BooleanFlagOn( pSrcObject->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
{
- pSrcParentObject = AFSFindObjectInfo( pSrcFcb->ObjectInformation->VolumeCB,
- &pSrcFcb->ObjectInformation->ParentFileId);
+ pSrcParentObject = AFSFindObjectInfo( pSrcObject->VolumeCB,
+ &pSrcObject->ParentFileId,
+ TRUE);
+ }
+
+ if( pSrcParentObject == NULL)
+ {
+
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSSetFileLinkInfo Unable to resolve SrcParentObject (INVALID_PARAMETER)\n"));
+
+ ASSERT( FALSE);
+
+ try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
pFileLinkInfo = (PFILE_LINK_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
if( pSrcFcb->Header.NodeTypeCode != AFS_FILE_FCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSSetFileLinkInfo Attempt to non-file (INVALID_PARAMETER)\n");
+ "AFSSetFileLinkInfo Attempt to non-file (INVALID_PARAMETER)\n"));
try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
// error.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Attempt to link %wZ to alternate directory by handle INVALID_PARAMETER\n",
- &pSrcCcb->DirectoryCB->NameInformation.FileName);
+ &pSrcCcb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
// will be moved to. Must obtain the TargetParentObject.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Attempt to link %wZ to alternate directory %wZ (NOT_SAME_DEVICE)\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
- &uniFullTargetName);
+ &uniFullTargetName));
try_return( ntStatus = STATUS_NOT_SAME_DEVICE);
}
if( pTargetParentObject->VolumeCB != pSrcObject->VolumeCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Attempt to link to different volume %wZ\n",
- &pSrcCcb->DirectoryCB->NameInformation.FileName);
+ &pSrcCcb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_NOT_SAME_DEVICE);
}
lCount = InterlockedIncrement( &pTargetDirEntry->DirOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetFileLinkInfo Increment count on %wZ DE %p Ccb %p Cnt %d\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
if( !pFileLinkInfo->ReplaceIfExists)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Attempt to link with target collision %wZ Target %wZ\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
- &pTargetDirEntry->NameInformation.FileName);
+ &pTargetDirEntry->NameInformation.FileName));
try_return( ntStatus = STATUS_OBJECT_NAME_COLLISION);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Target %wZ exists DE %p Count %d, performing delete of target\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
- lCount);
+ lCount));
//
// Pull the directory entry from the parent
}
else
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSSetFileLinkInfo Target does NOT exist, normal linking\n");
+ "AFSSetFileLinkInfo Target does NOT exist, normal linking\n"));
}
//
// request to the service.
//
- ntStatus = AFSNotifyHardLink( pSrcFcb->ObjectInformation,
+ ntStatus = AFSNotifyHardLink( pSrcObject,
&pSrcCcb->AuthGroup,
pSrcParentObject,
pTargetDcb->ObjectInformation,
!NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Failed link of %wZ to target %wZ Status %08lX\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
&uniTargetName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetFileLinkInfo Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
}
lCount = InterlockedDecrement( &pNewTargetDirEntry->DirOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetFileLinkInfo Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
&pNewTargetDirEntry->NameInformation.FileName,
pNewTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
}
pSrcObject = pSrcFcb->ObjectInformation;
- if ( BooleanFlagOn( pSrcFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
+ if ( BooleanFlagOn( pSrcObject->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
{
- pSrcParentObject = AFSFindObjectInfo( pSrcFcb->ObjectInformation->VolumeCB,
- &pSrcFcb->ObjectInformation->ParentFileId);
+ pSrcParentObject = AFSFindObjectInfo( pSrcObject->VolumeCB,
+ &pSrcObject->ParentFileId,
+ TRUE);
+ }
+
+ if( pSrcParentObject == NULL)
+ {
+
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSSetRenameInfo Unable to resolve SrcParentObject (INVALID_PARAMETER)\n"));
+
+ ASSERT( FALSE);
+
+ try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
//
// Can't rename the root directory
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSSetRenameInfo Attempt to rename root entry\n");
+ "AFSSetRenameInfo Attempt to rename root entry\n"));
try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
// If there are any open children then fail the rename
//
- if( pSrcFcb->ObjectInformation->Specific.Directory.ChildOpenHandleCount > 0)
+ if( pSrcObject->Specific.Directory.ChildOpenHandleCount > 0)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Attempt to rename directory with open children %wZ\n",
- &pSrcCcb->DirectoryCB->NameInformation.FileName);
+ &pSrcCcb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_ACCESS_DENIED);
}
if ( pRenameInfo->RootDirectory)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSSetRenameInfo Handle provided but no FileObject ntStatus INVALID_PARAMETER\n");
+ "AFSSetRenameInfo Handle provided but no FileObject ntStatus INVALID_PARAMETER\n"));
try_return( ntStatus = STATUS_INVALID_PARAMETER);
}
// will be moved to. Must obtain the TargetParentObject.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Attempt to move %wZ to %wZ -- not yet supported (NOT_SAME_DEVICE)\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
- &uniFullTargetName);
+ &uniFullTargetName));
try_return( ntStatus = STATUS_NOT_SAME_DEVICE);
}
if( pTargetParentObject->VolumeCB != pSrcObject->VolumeCB)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Attempt to rename directory to different volume %wZ\n",
- &pSrcCcb->DirectoryCB->NameInformation.FileName);
+ &pSrcCcb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_NOT_SAME_DEVICE);
}
lCount = InterlockedIncrement( &pTargetDirEntry->DirOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Increment count on %wZ DE %p Ccb %p Cnt %d\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
if( !bReplaceIfExists)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Attempt to rename directory with target collision %wZ Target %wZ\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
- &pTargetDirEntry->NameInformation.FileName);
+ &pTargetDirEntry->NameInformation.FileName));
try_return( ntStatus = STATUS_OBJECT_NAME_COLLISION);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Target %wZ exists DE %p Count %d, performing delete of target\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
- lCount);
+ lCount));
//
// Pull the directory entry from the parent
}
else
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSSetRenameInfo Target does NOT exist, normal rename\n");
+ "AFSSetRenameInfo Target does NOT exist, normal rename\n"));
}
//
// request to the service.
//
- ntStatus = AFSNotifyRename( pSrcFcb->ObjectInformation,
+ ntStatus = AFSNotifyRename( pSrcObject,
&pSrcCcb->AuthGroup,
pSrcParentObject,
pTargetDcb->ObjectInformation,
pSrcCcb->DirectoryCB,
!bCommonParent);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Failed rename of %wZ to target %wZ Status %08lX\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
&uniTargetName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
ulNotificationAction = FILE_ACTION_REMOVED;
}
- if( pSrcCcb->DirectoryCB->ObjectInformation->FileType == AFS_FILE_TYPE_DIRECTORY)
+ if( pSrcObject->FileType == AFS_FILE_TYPE_DIRECTORY)
{
ulNotifyFilter = FILE_NOTIFY_CHANGE_DIR_NAME;
pSrcCcb->DirectoryCB,
!bCommonParent);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Failed update of dir entry %wZ to target %wZ Status %08lX\n",
&pSrcCcb->DirectoryCB->NameInformation.FileName,
&uniTargetName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
pSrcCcb->DirectoryCB->Type.Data.ShortNameTreeEntry.HashIndex = AFSGenerateCRC( &uniShortName,
TRUE);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Initialized short name hash for %wZ longname %wZ\n",
&uniShortName,
- &pSrcCcb->DirectoryCB->NameInformation.FileName);
+ &pSrcCcb->DirectoryCB->NameInformation.FileName));
}
else
{
lCount = InterlockedIncrement( &pTargetParentObject->Specific.Directory.ChildOpenReferenceCount);
+
+ //
+ // Guaranteed to be in the same volume
+ //
+
+ AFSAcquireExcl( pSrcParentObject->VolumeCB->ObjectInfoTree.TreeLock,
+ TRUE);
+
lCount = AFSObjectInfoIncrement( pTargetParentObject,
AFS_OBJECT_REFERENCE_CHILD);
- AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Increment count on parent object %p Cnt %d\n",
pTargetParentObject,
- lCount);
+ lCount));
lCount = AFSObjectInfoDecrement( pSrcParentObject,
AFS_OBJECT_REFERENCE_CHILD);
- AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Decrement count on parent object %p Cnt %d\n",
pSrcParentObject,
- lCount);
+ lCount));
- pSrcCcb->DirectoryCB->ObjectInformation->ParentFileId = pTargetParentObject->FileId;
+ pSrcObject->ParentFileId = pTargetParentObject->FileId;
- SetFlag( pSrcCcb->DirectoryCB->ObjectInformation->Flags, AFS_OBJECT_FLAGS_PARENT_FID);
+ SetFlag( pSrcObject->Flags, AFS_OBJECT_FLAGS_PARENT_FID);
- pSrcParentObject = pTargetParentObject;
+ AFSReleaseResource( pSrcParentObject->VolumeCB->ObjectInfoTree.TreeLock);
ulNotificationAction = FILE_ACTION_ADDED;
}
if( bTargetEntryExists)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Setting DELETE flag in dir entry %p name %wZ\n",
pTargetDirEntry,
- &pTargetDirEntry->NameInformation.FileName);
+ &pTargetDirEntry->NameInformation.FileName));
SetFlag( pTargetDirEntry->Flags, AFS_DIR_ENTRY_DELETED);
lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount); // The count we added above
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
pTargetDirEntry->NameArrayReferenceCount <= 0)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Deleting dir entry %p name %wZ\n",
pTargetDirEntry,
- &pTargetDirEntry->NameInformation.FileName);
+ &pTargetDirEntry->NameInformation.FileName));
AFSDeleteDirEntry( pTargetParentObject,
- pTargetDirEntry);
+ &pTargetDirEntry);
}
pTargetDirEntry = NULL;
// permit the locks to be obtained out of order risking a deadlock.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Acquiring Fcb lock %p EXCL %08lX\n",
&pTargetFcb->NPFcb->Resource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pTargetFcb->NPFcb->Resource,
TRUE);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
&pTargetFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pTargetFcb->NPFcb->SectionObjectResource,
TRUE);
TRUE))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Failed to delete section for target file %wZ\n",
- &uniTargetName);
+ &uniTargetName));
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Releasing Fcb SectionObject lock %p EXCL %08lX\n",
&pTargetFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSReleaseResource( &pTargetFcb->NPFcb->SectionObjectResource);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Releasing Fcb lock %p EXCL %08lX\n",
&pTargetFcb->NPFcb->Resource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSReleaseResource( &pTargetFcb->NPFcb->Resource);
}
lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetRenameInfo Decrement2 count on %wZ DE %p Ccb %p Cnt %d\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
pSrcCcb,
- lCount);
+ lCount));
ASSERT( lCount >= 0);
}
if( pFcb->Header.AllocationSize.QuadPart > pBuffer->AllocationSize.QuadPart)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->SectionObjectResource,
TRUE);
bUserMapped = !MmCanFileBeTruncated( pFileObject->SectionObjectPointer,
&pBuffer->AllocationSize);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Releasing Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSReleaseResource( &pFcb->NPFcb->SectionObjectResource);
// If this is a truncation we need to grab the paging IO resource.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Acquiring Fcb PagingIo lock %p EXCL %08lX\n",
&pFcb->NPFcb->PagingResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->PagingResource,
TRUE);
// Tell Cc if allocation is increased.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Acquiring Fcb PagingIo lock %p EXCL %08lX\n",
&pFcb->NPFcb->PagingResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->PagingResource,
TRUE);
if( pBuffer->EndOfFile.QuadPart < pFcb->Header.FileSize.QuadPart)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetEndOfFileInfo Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->SectionObjectResource,
TRUE);
bUserMapped = !MmCanFileBeTruncated( pFileObject->SectionObjectPointer,
&pBuffer->EndOfFile);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetEndOfFileInfo Releasing Fcb SectionObject lock %p EXCL %08lX\n",
&pFcb->NPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSReleaseResource( &pFcb->NPFcb->SectionObjectResource);
// If this is a truncation we need to grab the paging
// IO resource.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Acquiring Fcb PagingIo lock %p EXCL %08lX\n",
&pFcb->NPFcb->PagingResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->PagingResource,
TRUE);
// If this is a truncation we need to grab the paging
// IO resource.
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSSetAllocationInfo Acquiring Fcb PagingIo lock %p EXCL %08lX\n",
&pFcb->NPFcb->PagingResource,
- PsGetCurrentThread());
+ PsGetCurrentThread()));
AFSAcquireExcl( &pFcb->NPFcb->PagingResource,
TRUE);
{
ulFileInformationClass = pIrpSp->Parameters.SetFile.FileInformationClass;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessShareSetInfo On pipe %wZ Class %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ulFileInformationClass);
+ ulFileInformationClass));
pPipeInfo = AFSLockSystemBuffer( Irp,
pIrpSp->Parameters.SetFile.Length);
if( pPipeInfo == NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSProcessShareSetInfo Failed to lock buffer on pipe %wZ\n",
- &Ccb->DirectoryCB->NameInformation.FileName);
+ &Ccb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
}
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSProcessShareSetInfo Failed to send request to service on pipe %wZ Status %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessShareSetInfo Completed request on pipe %wZ Class %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ulFileInformationClass);
+ ulFileInformationClass));
try_exit:
ulFileInformationClass = pIrpSp->Parameters.QueryFile.FileInformationClass;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessShareQueryInfo On pipe %wZ Class %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ulFileInformationClass);
+ ulFileInformationClass));
pPipeInfo = AFSLockSystemBuffer( Irp,
pIrpSp->Parameters.QueryFile.Length);
if( pPipeInfo == NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSProcessShareQueryInfo Failed to lock buffer on pipe %wZ\n",
- &Ccb->DirectoryCB->NameInformation.FileName);
+ &Ccb->DirectoryCB->NameInformation.FileName));
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
}
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSProcessShareQueryInfo Failed to send request to service on pipe %wZ Status %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessShareQueryInfo Completed request on pipe %wZ Class %08lX\n",
&Ccb->DirectoryCB->NameInformation.FileName,
- ulFileInformationClass);
+ ulFileInformationClass));
try_exit:
case FileBasicInformation:
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessPIOCtlQueryInfo (FileBasicInformation)\n");
+ "AFSProcessPIOCtlQueryInfo (FileBasicInformation)\n"));
if ( *Length >= sizeof( FILE_BASIC_INFORMATION))
{
case FileStandardInformation:
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessPIOCtlQueryInfo (FileStandardInformation)\n");
+ "AFSProcessPIOCtlQueryInfo (FileStandardInformation)\n"));
if ( *Length >= sizeof( FILE_STANDARD_INFORMATION))
{
PFILE_NAME_INFORMATION pNameInfo = (PFILE_NAME_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
UNICODE_STRING uniName;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessPIOCtlQueryInfo (FileNameInformation)\n");
+ "AFSProcessPIOCtlQueryInfo (FileNameInformation)\n"));
pFcb = (AFSFcb *)pIrpSp->FileObject->FsContext;
pCcb = (AFSCcb *)pIrpSp->FileObject->FsContext2;
uniName.Buffer = pNameInfo->FileName;
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessPIOCtlQueryInfo (FileNameInformation) Returning %wZ\n",
- &uniName);
+ &uniName));
}
}
PFILE_INTERNAL_INFORMATION pInternalInfo = (PFILE_INTERNAL_INFORMATION)Irp->AssociatedIrp.SystemBuffer;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessPIOCtlQueryInfo (FileInternalInformation)\n");
+ "AFSProcessPIOCtlQueryInfo (FileInternalInformation)\n"));
if( *Length >= sizeof( FILE_INTERNAL_INFORMATION))
{
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileAllInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileAllInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileEaInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileEaInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FilePositionInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FilePositionInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileAlternateNameInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileAlternateNameInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileNetworkOpenInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileNetworkOpenInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileStreamInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileStreamInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileAttributeTagInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileAttributeTagInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileRemoteProtocolInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileRemoteProtocolInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSProcessPIOCtlQueryInfo (FileNetworkPhysicalNameInformation) Not Implemented\n");
+ "AFSProcessPIOCtlQueryInfo (FileNetworkPhysicalNameInformation) Not Implemented\n"));
break;
}
{
ntStatus = STATUS_INVALID_PARAMETER;
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
"AFSProcessPIOCtlQueryInfo Not handling request %08lX\n",
- ulFileInformationClass);
+ ulFileInformationClass));
break;
}
}
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_PIOCTL_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessPIOCtlQueryInfo ntStatus %08lX\n",
- ntStatus);
+ ntStatus));
return ntStatus;
}