ULONG ulNotificationAction = 0, ulNotifyFilter = 0;
UNICODE_STRING uniFullTargetPath;
BOOLEAN bCommonParent = FALSE;
+ ULONG oldFileIndex;
__Enter
{
&pTargetDirEntry);
}
+ if( pTargetDirEntry == NULL && RtlIsNameLegalDOS8Dot3( &uniTargetName,
+ NULL,
+ NULL))
+ {
+ //
+ // Try the short name
+ //
+ AFSLocateShortNameDirEntry( pTargetParentObject->Specific.Directory.ShortNameTree,
+ ulTargetCRC,
+ &pTargetDirEntry);
+ }
//
// Increment our ref count on the dir entry
//
AFSReleaseResource( pSrcFcb->ObjectInformation->ParentObjectInformation->Specific.Directory.DirectoryNodeHdr.TreeLock);
+ oldFileIndex = pSrcCcb->DirectoryCB->FileIndex;
if( !bCommonParent)
{
//
pSrcCcb->DirectoryCB->FileIndex =
- (ULONG)InterlockedIncrement( &pSrcFcb->ObjectInformation->ParentObjectInformation->Specific.Directory.DirectoryNodeHdr.ContentIndex);
+ (ULONG)InterlockedIncrement( &pTargetDcb->ObjectInformation->ParentObjectInformation->Specific.Directory.DirectoryNodeHdr.ContentIndex);
}
//
// 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);