Windows: AFSDeleteObjectInfo AFS_OBJECT_HELD_IN_SERVICE
[openafs.git] / src / WINNT / afsrdr / kernel / lib / AFSGeneric.cpp
index fb53465..3e85ec2 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kernel Drivers, LLC.
- * Copyright (c) 2009, 2010, 2011 Your File System, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Your File System, Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * - Redistributions of source code must retain the above copyright notice,
  *   this list of conditions and the following disclaimer.
  * - Redistributions in binary form must reproduce the above copyright
- *   notice,
- *   this list of conditions and the following disclaimer in the
- *   documentation
- *   and/or other materials provided with the distribution.
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
  * - Neither the names of Kernel Drivers, LLC and Your File System, Inc.
  *   nor the names of their contributors may be used to endorse or promote
  *   products derived from this software without specific prior written
@@ -67,7 +65,7 @@ AFSExceptionFilter( IN CHAR *FunctionString,
 
         Context = ExceptPtrs->ContextRecord;
 
-        AFSDbgLogMsg( 0,
+        AFSDbgTrace(( 0,
                       0,
                       "AFSExceptionFilter (Library) - EXR %p CXR %p Function %s Code %08lX Address %p Routine %p\n",
                       ExceptRec,
@@ -75,7 +73,7 @@ AFSExceptionFilter( IN CHAR *FunctionString,
                       FunctionString,
                       ExceptRec->ExceptionCode,
                       ExceptRec->ExceptionAddress,
-                      (void *)AFSExceptionFilter);
+                      (void *)AFSExceptionFilter));
 
         DbgPrint("**** Exception Caught in AFS Redirector Library ****\n");
 
@@ -148,13 +146,13 @@ AFSLibExAllocatePoolWithTag( IN POOL_TYPE  PoolType,
         else
         {
 
-            AFSDbgLogMsg( 0,
+            AFSDbgTrace(( 0,
                           0,
                           "AFSLibExAllocatePoolWithTag failure Type %08lX Size %08lX Tag %08lX %08lX\n",
                           PoolType,
                           NumberOfBytes,
                           Tag,
-                          PsGetCurrentThread());
+                          PsGetCurrentThread()));
 
             AFSBreakPoint();
         }
@@ -273,11 +271,11 @@ void
 AFSReleaseResource( IN PERESOURCE Resource)
 {
 
-    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
                   "AFSReleaseResource Releasing lock %p Thread %08lX\n",
                   Resource,
-                  PsGetCurrentThread());
+                  PsGetCurrentThread()));
 
     ExReleaseResourceLite( Resource);
 
@@ -290,11 +288,11 @@ void
 AFSConvertToShared( IN PERESOURCE Resource)
 {
 
-    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
                   "AFSConvertToShared Converting lock %p Thread %08lX\n",
                   Resource,
-                  PsGetCurrentThread());
+                  PsGetCurrentThread()));
 
     ExConvertExclusiveToSharedLite( Resource);
 
@@ -662,10 +660,10 @@ AFSInitializeGlobalDirectoryEntries()
         if( pObjectInfoCB == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSInitializeGlobalDirectory AFSAllocateObjectInfo failure %08lX\n",
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -673,11 +671,11 @@ AFSInitializeGlobalDirectoryEntries()
         lCount = AFSObjectInfoIncrement( pObjectInfoCB,
                                          AFS_OBJECT_REFERENCE_GLOBAL);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeGlobalDirectoryEntries Increment count on object %p Cnt %d\n",
                       pObjectInfoCB,
-                      lCount);
+                      lCount));
 
         ntStatus = STATUS_SUCCESS;
 
@@ -691,19 +689,32 @@ AFSInitializeGlobalDirectoryEntries()
         if( pDirNode == NULL)
         {
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                           AFS_TRACE_LEVEL_ERROR,
-                          "AFSInitializeGlobalDirectory AFS_DIR_ENTRY_TAG allocation failure\n");
+                          "AFSInitializeGlobalDirectory AFS_DIR_ENTRY_TAG allocation failure\n"));
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeGlobalDirectory AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
+                      pDirNode));
 
         pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSLibExAllocatePoolWithTag( NonPagedPool,
                                                                                    sizeof( AFSNonPagedDirectoryCB),
@@ -714,11 +725,24 @@ AFSInitializeGlobalDirectoryEntries()
 
             ExFreePool( pDirNode);
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
-                          "AFSInitializeGlobalDirectory AFS_DIR_ENTRY_NP_TAG allocation failure\n");
+                          "AFSInitializeGlobalDirectory AFS_DIR_ENTRY_NP_TAG allocation failure\n"));
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -775,10 +799,10 @@ AFSInitializeGlobalDirectoryEntries()
         if( pObjectInfoCB == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSInitializeGlobalDirectory AFSAllocateObjectInfo (2) failure %08lX\n",
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -786,11 +810,11 @@ AFSInitializeGlobalDirectoryEntries()
         lCount = AFSObjectInfoIncrement( pObjectInfoCB,
                                          AFS_OBJECT_REFERENCE_GLOBAL);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeGlobalDirectoryEntries Increment count on object %p Cnt %d\n",
                       pObjectInfoCB,
-                      lCount);
+                      lCount));
 
         ntStatus = STATUS_SUCCESS;
 
@@ -804,19 +828,32 @@ AFSInitializeGlobalDirectoryEntries()
         if( pDirNode == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                           AFS_TRACE_LEVEL_ERROR,
-                          "AFSInitializeGlobalDirectoryEntries AFS_DIR_ENTRY_TAG allocation failure\n");
+                          "AFSInitializeGlobalDirectoryEntries AFS_DIR_ENTRY_TAG allocation failure\n"));
+
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeGlobalDirectoryEntries AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
+                      pDirNode));
 
         pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSLibExAllocatePoolWithTag( NonPagedPool,
                                                                                    sizeof( AFSNonPagedDirectoryCB),
@@ -827,7 +864,20 @@ AFSInitializeGlobalDirectoryEntries()
 
             ExFreePool( pDirNode);
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -884,7 +934,20 @@ try_exit:
             if( AFSGlobalDotDirEntry != NULL)
             {
 
-                AFSDeleteObjectInfo( &AFSGlobalDotDirEntry->ObjectInformation);
+                lCount = AFSObjectInfoDecrement( AFSGlobalDotDirEntry->ObjectInformation,
+                                                 AFS_OBJECT_REFERENCE_GLOBAL);
+
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                              AFS_TRACE_LEVEL_VERBOSE,
+                              "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                              AFSGlobalDotDirEntry->ObjectInformation,
+                              lCount));
+
+                if ( lCount == 0)
+                {
+
+                    AFSDeleteObjectInfo( &AFSGlobalDotDirEntry->ObjectInformation);
+                }
 
                 ExDeleteResourceLite( &AFSGlobalDotDirEntry->NonPaged->Lock);
 
@@ -898,7 +961,20 @@ try_exit:
             if( AFSGlobalDotDotDirEntry != NULL)
             {
 
-                AFSDeleteObjectInfo( &AFSGlobalDotDotDirEntry->ObjectInformation);
+                lCount = AFSObjectInfoDecrement( AFSGlobalDotDotDirEntry->ObjectInformation,
+                                                 AFS_OBJECT_REFERENCE_GLOBAL);
+
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                              AFS_TRACE_LEVEL_VERBOSE,
+                              "AFSInitializeGlobalDirectoryEntries Decrement count on object %p Cnt %d\n",
+                              AFSGlobalDotDotDirEntry->ObjectInformation,
+                              lCount));
+
+                if ( lCount == 0)
+                {
+
+                    AFSDeleteObjectInfo( &AFSGlobalDotDotDirEntry->ObjectInformation);
+                }
 
                 ExDeleteResourceLite( &AFSGlobalDotDotDirEntry->NonPaged->Lock);
 
@@ -934,14 +1010,14 @@ AFSInitDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitDirEntry Initializing entry %wZ parent FID %08lX-%08lX-%08lX-%08lX\n",
                       FileName,
                       ParentObjectInfo->FileId.Cell,
                       ParentObjectInfo->FileId.Volume,
                       ParentObjectInfo->FileId.Vnode,
-                      ParentObjectInfo->FileId.Unique);
+                      ParentObjectInfo->FileId.Unique));
 
         //
         // First thing is to locate/create our object information block
@@ -978,22 +1054,27 @@ AFSInitDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
 
             bAllocatedObjectCB = TRUE;
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInitDirEntry initialized object %p Parent Object %p for %wZ\n",
                           pObjectInfoCB,
                           ParentObjectInfo,
-                          FileName);
+                          FileName));
         }
 
+        //
+        // This reference count is either stored into the return DirectoryCB
+        // or released before function exit.
+        //
+
         lCount = AFSObjectInfoIncrement( pObjectInfoCB,
                                          AFS_OBJECT_REFERENCE_DIRENTRY);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitDirEntry Increment count on object %p Cnt %d\n",
                       pObjectInfoCB,
-                      lCount);
+                      lCount));
 
         AFSReleaseResource( ParentObjectInfo->VolumeCB->ObjectInfoTree.TreeLock);
 
@@ -1018,10 +1099,10 @@ AFSInitDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitDirEntry AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
+                      pDirNode));
 
         pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSExAllocatePoolWithTag( NonPagedPool,
                                                                                 sizeof( AFSNonPagedDirectoryCB),
@@ -1081,7 +1162,7 @@ AFSInitDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
                                                                            TRUE);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitDirEntry Initialized DE %p for %wZ in parent FID %08lX-%08lX-%08lX-%08lX\n",
                       pDirNode,
@@ -1089,7 +1170,7 @@ AFSInitDirEntry( IN AFSObjectInfoCB *ParentObjectInfo,
                       ParentObjectInfo->FileId.Cell,
                       ParentObjectInfo->FileId.Volume,
                       ParentObjectInfo->FileId.Vnode,
-                      ParentObjectInfo->FileId.Unique);
+                      ParentObjectInfo->FileId.Unique));
 
         if( TargetName != NULL &&
             TargetName->Length > 0)
@@ -1215,10 +1296,10 @@ try_exit:
             if( pDirNode != NULL)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+                AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInitDirEntry AFS_DIR_ENTRY_TAG deallocating %p\n",
-                              pDirNode);
+                              pDirNode));
 
                 AFSExFreePoolWithTag( pDirNode, AFS_DIR_ENTRY_TAG);
 
@@ -1235,17 +1316,16 @@ try_exit:
                 lCount = AFSObjectInfoDecrement( pObjectInfoCB,
                                                  AFS_OBJECT_REFERENCE_DIRENTRY);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInitDirEntry Decrement count on object %p Cnt %d\n",
                               pObjectInfoCB,
-                              lCount);
+                              lCount));
 
-                if( bAllocatedObjectCB)
+                if( bAllocatedObjectCB &&
+                    lCount == 0)
                 {
 
-                    ASSERT( pObjectInfoCB->ObjectReferenceCount == 0);
-
                     AFSDeleteObjectInfo( &pObjectInfoCB);
                 }
             }
@@ -1486,10 +1566,10 @@ AFSValidateSymLink( IN GUID *AuthGroup,
             pDirEntry->FileType == AFS_FILE_TYPE_INVALID)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE_2,
                           "AFSValidateSymLink Invalid type Status %08lX\n",
-                          STATUS_OBJECT_NAME_NOT_FOUND);
+                          STATUS_OBJECT_NAME_NOT_FOUND));
 
             try_return( ntStatus = STATUS_OBJECT_NAME_NOT_FOUND);
         }
@@ -1620,7 +1700,7 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
     ULONG ulFilter = 0;
     AFSObjectInfoCB * pParentObjectInfo = NULL;
 
-    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
                   "AFSInvalidateObject Invalidation on node type %d for fid %08lX-%08lX-%08lX-%08lX Reason %d\n",
                   (*ppObjectInfo)->FileType,
@@ -1628,7 +1708,7 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
                   (*ppObjectInfo)->FileId.Volume,
                   (*ppObjectInfo)->FileId.Vnode,
                   (*ppObjectInfo)->FileId.Unique,
-                  Reason);
+                  Reason));
 
     if ( BooleanFlagOn( (*ppObjectInfo)->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
     {
@@ -1668,13 +1748,13 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
 
             (*ppObjectInfo)->TargetFileId.Unique = 0;
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateObject Setting VERIFY flag on fid %08lX-%08lX-%08lX-%08lX\n",
                           (*ppObjectInfo)->FileId.Cell,
                           (*ppObjectInfo)->FileId.Volume,
                           (*ppObjectInfo)->FileId.Vnode,
-                          (*ppObjectInfo)->FileId.Unique);
+                          (*ppObjectInfo)->FileId.Unique));
 
             SetFlag( (*ppObjectInfo)->Flags, AFS_OBJECT_FLAGS_VERIFY);
         }
@@ -1726,24 +1806,24 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
 
             SetFlag( (*ppObjectInfo)->Flags, AFS_OBJECT_FLAGS_DELETED);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateObject Set DELETE flag on fid %08lX-%08lX-%08lX-%08lX\n",
                           (*ppObjectInfo)->FileId.Cell,
                           (*ppObjectInfo)->FileId.Volume,
                           (*ppObjectInfo)->FileId.Vnode,
-                          (*ppObjectInfo)->FileId.Unique);
+                          (*ppObjectInfo)->FileId.Unique));
 
             if( pParentObjectInfo != NULL)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateObject Set VERIFY flag on parent fid %08lX-%08lX-%08lX-%08lX\n",
                               pParentObjectInfo->FileId.Cell,
                               pParentObjectInfo->FileId.Volume,
                               pParentObjectInfo->FileId.Vnode,
-                              pParentObjectInfo->FileId.Unique);
+                              pParentObjectInfo->FileId.Unique));
 
                 SetFlag( pParentObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY);
 
@@ -1782,13 +1862,13 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
                 (*ppObjectInfo)->Fcb != NULL)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateObject Flush/purge file fid %08lX-%08lX-%08lX-%08lX\n",
                               (*ppObjectInfo)->FileId.Cell,
                               (*ppObjectInfo)->FileId.Volume,
                               (*ppObjectInfo)->FileId.Vnode,
-                              (*ppObjectInfo)->FileId.Unique);
+                              (*ppObjectInfo)->FileId.Unique));
 
                 AFSAcquireExcl( &(*ppObjectInfo)->Fcb->NPFcb->SectionObjectResource,
                                 TRUE);
@@ -1804,7 +1884,7 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
                     if( !NT_SUCCESS( stIoStatus.Status))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSInvalidateObject CcFlushCache failure FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                       (*ppObjectInfo)->FileId.Cell,
@@ -1812,7 +1892,7 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
                                       (*ppObjectInfo)->FileId.Vnode,
                                       (*ppObjectInfo)->FileId.Unique,
                                       stIoStatus.Status,
-                                      stIoStatus.Information);
+                                      stIoStatus.Information));
 
                         ntStatus = stIoStatus.Status;
                     }
@@ -1827,13 +1907,13 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
                                                    FALSE))
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                           AFS_TRACE_LEVEL_WARNING,
                                           "AFSInvalidateObject CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                           (*ppObjectInfo)->FileId.Cell,
                                           (*ppObjectInfo)->FileId.Volume,
                                           (*ppObjectInfo)->FileId.Vnode,
-                                          (*ppObjectInfo)->FileId.Unique);
+                                          (*ppObjectInfo)->FileId.Unique));
 
                             SetFlag( (*ppObjectInfo)->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                         }
@@ -1844,14 +1924,14 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
 
                     ntStatus = GetExceptionCode();
 
-                    AFSDbgLogMsg( 0,
+                    AFSDbgTrace(( 0,
                                   0,
                                   "EXCEPTION - AFSInvalidateObject Cc FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                   (*ppObjectInfo)->FileId.Cell,
                                   (*ppObjectInfo)->FileId.Volume,
                                   (*ppObjectInfo)->FileId.Vnode,
                                   (*ppObjectInfo)->FileId.Unique,
-                                  ntStatus);
+                                  ntStatus));
 
                     SetFlag( (*ppObjectInfo)->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                 }
@@ -1874,13 +1954,13 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
             if( (*ppObjectInfo)->FileType == AFS_FILE_TYPE_FILE)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateObject Setting VERIFY_DATA flag on fid %08lX-%08lX-%08lX-%08lX\n",
                               (*ppObjectInfo)->FileId.Cell,
                               (*ppObjectInfo)->FileId.Volume,
                               (*ppObjectInfo)->FileId.Vnode,
-                              (*ppObjectInfo)->FileId.Unique);
+                              (*ppObjectInfo)->FileId.Unique));
 
                 SetFlag( (*ppObjectInfo)->Flags, AFS_OBJECT_FLAGS_VERIFY_DATA);
             }
@@ -1937,13 +2017,13 @@ AFSInvalidateObject( IN OUT AFSObjectInfoCB **ppObjectInfo,
 
             (*ppObjectInfo)->Expiration.QuadPart = 0;
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateObject Setting VERIFY flag on fid %08lX-%08lX-%08lX-%08lX\n",
                           (*ppObjectInfo)->FileId.Cell,
                           (*ppObjectInfo)->FileId.Volume,
                           (*ppObjectInfo)->FileId.Vnode,
-                          (*ppObjectInfo)->FileId.Unique);
+                          (*ppObjectInfo)->FileId.Unique));
 
             SetFlag( (*ppObjectInfo)->Flags, AFS_OBJECT_FLAGS_VERIFY);
 
@@ -1989,7 +2069,7 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateCache Invalidation FID %08lX-%08lX-%08lX-%08lX Type %d WholeVolume %d Reason %d\n",
                       InvalidateCB->FileID.Cell,
@@ -1998,17 +2078,17 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
                       InvalidateCB->FileID.Unique,
                       InvalidateCB->FileType,
                       InvalidateCB->WholeVolume,
-                      InvalidateCB->Reason);
+                      InvalidateCB->Reason));
 
         //
         // Need to locate the Fcb for the directory to purge
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateCache Acquiring RDR VolumeTreeLock lock %p SHARED %08lX\n",
                       &pDevExt->Specific.RDR.VolumeTreeLock,
-                      PsGetCurrentThread());
+                      PsGetCurrentThread()));
 
         //
         // Starve any exclusive waiters on this paticular call
@@ -2032,11 +2112,11 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
             lCount = AFSVolumeIncrement( pVolumeCB,
                                          AFS_VOLUME_REFERENCE_INVALIDATE);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateCache Increment count on volume %p Cnt %d\n",
                           pVolumeCB,
-                          lCount);
+                          lCount));
         }
 
         AFSReleaseResource( &pDevExt->Specific.RDR.VolumeTreeLock);
@@ -2045,14 +2125,14 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
             pVolumeCB == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_WARNING,
                           "AFSInvalidateCache Invalidation FAILURE Unable to locate volume node FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
                           InvalidateCB->FileID.Cell,
                           InvalidateCB->FileID.Volume,
                           InvalidateCB->FileID.Vnode,
                           InvalidateCB->FileID.Unique,
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus = STATUS_SUCCESS);
         }
@@ -2098,11 +2178,11 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
             lCount = AFSObjectInfoIncrement( pObjectInfo,
                                              AFS_OBJECT_REFERENCE_INVALIDATION);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateCache Increment count on object %p Cnt %d\n",
                           pObjectInfo,
-                          lCount);
+                          lCount));
         }
 
         AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
@@ -2111,14 +2191,14 @@ AFSInvalidateCache( IN AFSInvalidateCacheCB *InvalidateCB)
             pObjectInfo == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateCache Invalidation FAILURE Unable to locate object FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
                           InvalidateCB->FileID.Cell,
                           InvalidateCB->FileID.Volume,
                           InvalidateCB->FileID.Vnode,
                           InvalidateCB->FileID.Unique,
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus = STATUS_SUCCESS);
         }
@@ -2134,11 +2214,11 @@ try_exit:
             lCount = AFSObjectInfoDecrement( pObjectInfo,
                                              AFS_OBJECT_REFERENCE_INVALIDATION);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateCache Decrement count on object %p Cnt %d\n",
                           pObjectInfo,
-                          lCount);
+                          lCount));
         }
 
         if ( pVolumeCB != NULL)
@@ -2147,11 +2227,11 @@ try_exit:
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          AFS_VOLUME_REFERENCE_INVALIDATE);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateCache Decrement count on volume %p Cnt %d\n",
                           pVolumeCB,
-                          lCount);
+                          lCount));
         }
     }
 
@@ -2325,11 +2405,11 @@ AFSSubstituteSysName( IN UNICODE_STRING *ComponentName,
 
 #endif
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSSubstituteSysName Acquiring SysName lock %p SHARED %08lX\n",
                       pSysNameLock,
-                      PsGetCurrentThread());
+                      PsGetCurrentThread()));
 
         AFSAcquireShared( pSysNameLock,
                           TRUE);
@@ -2350,11 +2430,11 @@ AFSSubstituteSysName( IN UNICODE_STRING *ComponentName,
         if( pSysName == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE_2,
                           "AFSSubstituteSysName No sysname %wZ Status %08lX\n",
                           &ComponentName,
-                          STATUS_OBJECT_NAME_NOT_FOUND);
+                          STATUS_OBJECT_NAME_NOT_FOUND));
 
             try_return( ntStatus = STATUS_OBJECT_NAME_NOT_FOUND);
         }
@@ -2569,14 +2649,14 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateVolume Invalidate volume fid %08lX-%08lX-%08lX-%08lX Reason %08lX\n",
                       VolumeCB->ObjectInformation.FileId.Cell,
                       VolumeCB->ObjectInformation.FileId.Volume,
                       VolumeCB->ObjectInformation.FileId.Vnode,
                       VolumeCB->ObjectInformation.FileId.Unique,
-                      Reason);
+                      Reason));
 
         //
         // Depending on the reason for invalidation then perform work on the node
@@ -2612,11 +2692,11 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
             lCount = AFSObjectInfoIncrement( pCurrentObject,
                                              AFS_OBJECT_REFERENCE_INVALIDATION);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateVolumeObjects Increment count on object %p Cnt %d\n",
                           pCurrentObject,
-                          lCount);
+                          lCount));
 
             AFSInvalidateObject( &pCurrentObject,
                                  Reason);
@@ -2627,11 +2707,11 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
                 lCount = AFSObjectInfoDecrement( pCurrentObject,
                                                  AFS_OBJECT_REFERENCE_INVALIDATION);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateVolumeObjects Decrement count on object %p Cnt %d\n",
                               pCurrentObject,
-                              lCount);
+                              lCount));
             }
         }
 
@@ -2654,11 +2734,11 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
             lCount = AFSObjectInfoIncrement( pCurrentObject,
                                              AFS_OBJECT_REFERENCE_INVALIDATION);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateVolumeObjects Increment count on object %p Cnt %d\n",
                           pCurrentObject,
-                          lCount);
+                          lCount));
         }
 
         while( pCurrentObject != NULL)
@@ -2676,11 +2756,11 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
                 lCount = AFSObjectInfoIncrement( pNextObject,
                                                  AFS_OBJECT_REFERENCE_INVALIDATION);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateVolumeObjects Increment count on object %p Cnt %d\n",
                               pNextObject,
-                              lCount);
+                              lCount));
             }
 
             AFSReleaseResource( VolumeCB->ObjectInfoTree.TreeLock);
@@ -2694,11 +2774,11 @@ AFSInvalidateVolume( IN AFSVolumeCB *VolumeCB,
                 lCount = AFSObjectInfoDecrement( pCurrentObject,
                                                  AFS_OBJECT_REFERENCE_INVALIDATION);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInvalidateVolumeObjects Decrement count on object %p Cnt %d\n",
                               pCurrentObject,
-                              lCount);
+                              lCount));
             }
 
             AFSAcquireShared( VolumeCB->ObjectInfoTree.TreeLock,
@@ -2723,11 +2803,11 @@ AFSInvalidateAllVolumes( VOID)
 
     pRDRDeviceExt = (AFSDeviceExt *)AFSRDRDeviceObject->DeviceExtension;
 
-    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
                   "AFSInvalidateAllVolumes Acquiring RDR VolumeListLock lock %p SHARED %08lX\n",
                   &pRDRDeviceExt->Specific.RDR.VolumeListLock,
-                  PsGetCurrentThread());
+                  PsGetCurrentThread()));
 
     AFSAcquireShared( &pRDRDeviceExt->Specific.RDR.VolumeListLock,
                       TRUE);
@@ -2737,20 +2817,20 @@ AFSInvalidateAllVolumes( VOID)
     if ( pVolumeCB)
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateAllVolumes Acquiring VolumeRoot ObjectInfoTree lock %p SHARED %08lX\n",
                       pVolumeCB->ObjectInfoTree.TreeLock,
-                      PsGetCurrentThread());
+                      PsGetCurrentThread()));
 
         lCount = AFSVolumeIncrement( pVolumeCB,
                                      AFS_VOLUME_REFERENCE_INVALIDATE);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateAllVolumes Increment count on volume %p Cnt %d\n",
                       pVolumeCB,
-                      lCount);
+                      lCount));
     }
 
     while( pVolumeCB != NULL)
@@ -2764,11 +2844,11 @@ AFSInvalidateAllVolumes( VOID)
             lCount = AFSVolumeIncrement( pNextVolumeCB,
                                          AFS_VOLUME_REFERENCE_INVALIDATE);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInvalidateAllVolumes Increment count on volume %p Cnt %d\n",
                           pVolumeCB,
-                          lCount);
+                          lCount));
         }
 
         AFSReleaseResource( &pRDRDeviceExt->Specific.RDR.VolumeListLock);
@@ -2783,11 +2863,11 @@ AFSInvalidateAllVolumes( VOID)
         lCount = AFSVolumeDecrement( pVolumeCB,
                                      AFS_VOLUME_REFERENCE_INVALIDATE);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInvalidateAllVolumes Decrement count on volume %p Cnt %d\n",
                       pVolumeCB,
-                      lCount);
+                      lCount));
 
         pVolumeCB = pNextVolumeCB;
     }
@@ -2808,14 +2888,14 @@ AFSVerifyEntry( IN GUID *AuthGroup,
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE_2,
                       "AFSVerifyEntry Verifying entry %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                       &DirEntry->NameInformation.FileName,
                       pObjectInfo->FileId.Cell,
                       pObjectInfo->FileId.Volume,
                       pObjectInfo->FileId.Vnode,
-                      pObjectInfo->FileId.Unique);
+                      pObjectInfo->FileId.Unique));
 
         ntStatus = AFSEvaluateTargetByID( pObjectInfo,
                                           AuthGroup,
@@ -2825,7 +2905,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
         if( !NT_SUCCESS( ntStatus))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSVerifyEntry Evaluate Target failed %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                           &DirEntry->NameInformation.FileName,
@@ -2833,7 +2913,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                           pObjectInfo->FileId.Volume,
                           pObjectInfo->FileId.Vnode,
                           pObjectInfo->FileId.Unique,
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus);
         }
@@ -2847,7 +2927,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
             if ( !BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY_DATA))
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSVerifyEntry No DV change %I64X for Fcb %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                               pObjectInfo->DataVersion.QuadPart,
@@ -2855,7 +2935,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                               pObjectInfo->FileId.Cell,
                               pObjectInfo->FileId.Volume,
                               pObjectInfo->FileId.Vnode,
-                              pObjectInfo->FileId.Unique);
+                              pObjectInfo->FileId.Unique));
 
                 //
                 // We are ok, just get out
@@ -2930,7 +3010,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                 if ( pObjectInfo->DataVersion.QuadPart != pDirEnumEntry->DataVersion.QuadPart)
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry DV Change %wZ FID %08lX-%08lX-%08lX-%08lX (%08lX != %08lX)\n",
                                   &DirEntry->NameInformation.FileName,
@@ -2939,8 +3019,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                   pObjectInfo->FileId.Vnode,
                                   pObjectInfo->FileId.Unique,
                                   pObjectInfo->DataVersion.LowPart,
-                                  pDirEnumEntry->DataVersion.LowPart
-                                  );
+                                  pDirEnumEntry->DataVersion.LowPart));
 
                     bPurgeExtents = TRUE;
                 }
@@ -2950,14 +3029,14 @@ AFSVerifyEntry( IN GUID *AuthGroup,
 
                     bPurgeExtents = TRUE;
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry Clearing VERIFY_DATA flag %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                   &DirEntry->NameInformation.FileName,
                                   pObjectInfo->FileId.Cell,
                                   pObjectInfo->FileId.Volume,
                                   pObjectInfo->FileId.Vnode,
-                                  pObjectInfo->FileId.Unique);
+                                  pObjectInfo->FileId.Unique));
 
                     ClearFlag( pObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY_DATA);
                 }
@@ -2965,14 +3044,14 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                 if( pObjectInfo->Fcb != NULL)
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry Flush/purge entry %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                   &DirEntry->NameInformation.FileName,
                                   pObjectInfo->FileId.Cell,
                                   pObjectInfo->FileId.Volume,
                                   pObjectInfo->FileId.Vnode,
-                                  pObjectInfo->FileId.Unique);
+                                  pObjectInfo->FileId.Unique));
 
                     AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                     TRUE);
@@ -2988,7 +3067,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                         if( !NT_SUCCESS( stIoStatus.Status))
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                           AFS_TRACE_LEVEL_ERROR,
                                           "AFSVerifyEntry CcFlushCache failure %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                           &DirEntry->NameInformation.FileName,
@@ -2997,7 +3076,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                           pObjectInfo->FileId.Vnode,
                                           pObjectInfo->FileId.Unique,
                                           stIoStatus.Status,
-                                          stIoStatus.Information);
+                                          stIoStatus.Information));
 
                             ntStatus = stIoStatus.Status;
                         }
@@ -3012,14 +3091,14 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                                        FALSE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                               AFS_TRACE_LEVEL_WARNING,
                                               "AFSVerifyEntry CcPurgeCacheSection failure %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                               &DirEntry->NameInformation.FileName,
                                               pObjectInfo->FileId.Cell,
                                               pObjectInfo->FileId.Volume,
                                               pObjectInfo->FileId.Vnode,
-                                              pObjectInfo->FileId.Unique);
+                                              pObjectInfo->FileId.Unique));
 
                                 SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                             }
@@ -3029,7 +3108,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                     {
                         ntStatus = GetExceptionCode();
 
-                        AFSDbgLogMsg( 0,
+                        AFSDbgTrace(( 0,
                                       0,
                                       "EXCEPTION - AFSVerifyEntry CcFlushCache or CcPurgeCacheSection %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                       &DirEntry->NameInformation.FileName,
@@ -3037,7 +3116,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
                                       pObjectInfo->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                     }
@@ -3054,11 +3133,11 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                     // Reacquire the Fcb to purge the cache
                     //
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry Acquiring Fcb lock %p EXCL %08lX\n",
                                   &pObjectInfo->Fcb->NPFcb->Resource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->Resource,
                                     TRUE);
@@ -3073,7 +3152,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                     if( !NT_SUCCESS( ntStatus))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSVerifyEntry Meta Data Update failed %wZ FID %08lX-%08lX-%08lX-%08lX ntStatus %08lX\n",
                                       &DirEntry->NameInformation.FileName,
@@ -3081,7 +3160,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
                                       pObjectInfo->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         break;
                     }
@@ -3094,11 +3173,11 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                     pObjectInfo->Fcb->Header.FileSize.QuadPart        = pObjectInfo->EndOfFile.QuadPart;
                     pObjectInfo->Fcb->Header.ValidDataLength.QuadPart = pObjectInfo->EndOfFile.QuadPart;
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                   &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                     TRUE);
@@ -3111,11 +3190,11 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                         (PCC_FILE_SIZES)&pObjectInfo->Fcb->Header.AllocationSize);
                     }
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSVerifyEntry Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                                   &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSReleaseResource( &pObjectInfo->Fcb->NPFcb->SectionObjectResource);
 
@@ -3134,7 +3213,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                     if( !NT_SUCCESS( ntStatus))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSVerifyEntry Meta Data Update failed %wZ FID %08lX-%08lX-%08lX-%08lX ntStatus %08lX\n",
                                       &DirEntry->NameInformation.FileName,
@@ -3142,19 +3221,19 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
                                       pObjectInfo->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         break;
                     }
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_WARNING,
                                   "AFSVerifyEntry Fcb NULL %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                   &DirEntry->NameInformation.FileName,
                                   pObjectInfo->FileId.Cell,
                                   pObjectInfo->FileId.Volume,
                                   pObjectInfo->FileId.Vnode,
-                                  pObjectInfo->FileId.Unique);
+                                  pObjectInfo->FileId.Unique));
                 }
 
                 ClearFlag( pObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY);
@@ -3173,14 +3252,14 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                 if( BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED))
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE_2,
                                   "AFSVerifyEntry Validating directory content for entry %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                   &DirEntry->NameInformation.FileName,
                                   pObjectInfo->FileId.Cell,
                                   pObjectInfo->FileId.Volume,
                                   pObjectInfo->FileId.Vnode,
-                                  pObjectInfo->FileId.Unique);
+                                  pObjectInfo->FileId.Unique));
 
                     AFSAcquireExcl( pObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
                                     TRUE);
@@ -3275,7 +3354,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
 
             default:
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_WARNING,
                               "AFSVerifyEntry Attempt to verify node of type %d %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                               pObjectInfo->FileType,
@@ -3283,7 +3362,7 @@ AFSVerifyEntry( IN GUID *AuthGroup,
                               pObjectInfo->FileId.Cell,
                               pObjectInfo->FileId.Volume,
                               pObjectInfo->FileId.Vnode,
-                              pObjectInfo->FileId.Unique);
+                              pObjectInfo->FileId.Unique));
 
                 break;
         }
@@ -3313,22 +3392,22 @@ AFSSetVolumeState( IN AFSVolumeStatusCB *VolumeStatus)
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSSetVolumeState Marking volume state %d Volume Cell %08lX Volume %08lX\n",
                       VolumeStatus->Online,
                       VolumeStatus->FileID.Cell,
-                      VolumeStatus->FileID.Volume);
+                      VolumeStatus->FileID.Volume));
 
         //
         // Need to locate the Fcb for the directory to purge
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSSetVolumeState Acquiring RDR VolumeTreeLock lock %p SHARED %08lX\n",
                       &pDevExt->Specific.RDR.VolumeTreeLock,
-                      PsGetCurrentThread());
+                      PsGetCurrentThread()));
 
         AFSAcquireShared( &pDevExt->Specific.RDR.VolumeTreeLock, TRUE);
 
@@ -3348,11 +3427,11 @@ AFSSetVolumeState( IN AFSVolumeStatusCB *VolumeStatus)
             lCount = AFSVolumeIncrement( pVolumeCB,
                                          AFS_VOLUME_REFERENCE_INVALIDATE);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSSetVolumeState Increment count on volume %p Cnt %d\n",
                           pVolumeCB,
-                          lCount);
+                          lCount));
 
             AFSReleaseResource( &pDevExt->Specific.RDR.VolumeTreeLock);
 
@@ -3432,22 +3511,22 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSValidateDirectoryCache Validating content for FID %08lX-%08lX-%08lX-%08lX\n",
                       ObjectInfo->FileId.Cell,
                       ObjectInfo->FileId.Volume,
                       ObjectInfo->FileId.Vnode,
-                      ObjectInfo->FileId.Unique);
+                      ObjectInfo->FileId.Unique));
 
         if( !ExIsResourceAcquiredLite( ObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSValidateDirectoryCache Acquiring DirectoryNodeHdr.TreeLock lock %p EXCL %08lX\n",
                           ObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
-                          PsGetCurrentThread());
+                          PsGetCurrentThread()));
 
             AFSAcquireExcl( ObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
                             TRUE);
@@ -3463,14 +3542,14 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
              ObjectInfo->Specific.Directory.DirectoryNodeCount > 0)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSValidateDirectoryCache Empty Node List but Non-Zero Node Count %d for dir FID %08lX-%08lX-%08lX-%08lX\n",
                           ObjectInfo->Specific.Directory.DirectoryNodeCount,
                           ObjectInfo->FileId.Cell,
                           ObjectInfo->FileId.Volume,
                           ObjectInfo->FileId.Vnode,
-                          ObjectInfo->FileId.Unique);
+                          ObjectInfo->FileId.Unique));
         }
 
         //
@@ -3496,11 +3575,11 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
                     pCurrentDirEntry->NameArrayReferenceCount <= 0)
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSValidateDirectoryCache Deleting dir entry %p name %wZ\n",
                                   pCurrentDirEntry,
-                                  &pCurrentDirEntry->NameInformation.FileName);
+                                  &pCurrentDirEntry->NameInformation.FileName));
 
                     AFSDeleteDirEntry( ObjectInfo,
                                        pCurrentDirEntry);
@@ -3510,11 +3589,11 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
 
                     ClearFlag( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_VALID);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSValidateDirectoryCache Clear VALID flag on DE %p Reference count %d\n",
                                   pCurrentDirEntry,
-                                  pCurrentDirEntry->DirOpenReferenceCount);
+                                  pCurrentDirEntry->DirOpenReferenceCount));
 
                     //
                     // We pull the short name from the parent tree since it could change below
@@ -3523,12 +3602,12 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
                     if( BooleanFlagOn( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_INSERTED_SHORT_NAME))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSValidateDirectoryCache Removing DE %p (%08lX) from shortname tree for %wZ\n",
                                       pCurrentDirEntry,
                                       pCurrentDirEntry->Type.Data.ShortNameTreeEntry.HashIndex,
-                                      &pCurrentDirEntry->NameInformation.FileName);
+                                      &pCurrentDirEntry->NameInformation.FileName));
 
                         AFSRemoveShortNameDirEntry( &ObjectInfo->Specific.Directory.ShortNameTree,
                                                     pCurrentDirEntry);
@@ -3577,11 +3656,11 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
 
                         ObjectInfo->Specific.Directory.ShortNameTree = pCurrentDirEntry;
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSValidateDirectoryCache Insert DE %p to head of shortname tree for %wZ\n",
                                       pCurrentDirEntry,
-                                      &pCurrentDirEntry->NameInformation.FileName);
+                                      &pCurrentDirEntry->NameInformation.FileName));
 
                         SetFlag( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_INSERTED_SHORT_NAME);
                     }
@@ -3591,22 +3670,22 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
                         if( !NT_SUCCESS( AFSInsertShortNameDirEntry( ObjectInfo->Specific.Directory.ShortNameTree,
                                                                      pCurrentDirEntry)))
                         {
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSValidateDirectoryCache Failed to insert DE %p (%08lX) to shortname tree for %wZ\n",
                                           pCurrentDirEntry,
                                           pCurrentDirEntry->Type.Data.ShortNameTreeEntry.HashIndex,
-                                          &pCurrentDirEntry->NameInformation.FileName);
+                                          &pCurrentDirEntry->NameInformation.FileName));
                         }
                         else
                         {
                             SetFlag( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_INSERTED_SHORT_NAME);
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSValidateDirectoryCache Insert DE %p to shortname tree for %wZ\n",
                                           pCurrentDirEntry,
-                                          &pCurrentDirEntry->NameInformation.FileName);
+                                          &pCurrentDirEntry->NameInformation.FileName));
                         }
                     }
                 }
@@ -3616,24 +3695,24 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
                 continue;
             }
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSValidateDirectoryCache Processing INVALID DE %p Reference count %d\n",
                           pCurrentDirEntry,
-                          pCurrentDirEntry->DirOpenReferenceCount);
+                          pCurrentDirEntry->DirOpenReferenceCount));
 
             if( pCurrentDirEntry->DirOpenReferenceCount <= 0 &&
                 pCurrentDirEntry->NameArrayReferenceCount <= 0)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSValidateDirectoryCache Deleting dir entry %wZ from parent FID %08lX-%08lX-%08lX-%08lX\n",
                               &pCurrentDirEntry->NameInformation.FileName,
                               ObjectInfo->FileId.Cell,
                               ObjectInfo->FileId.Volume,
                               ObjectInfo->FileId.Vnode,
-                              ObjectInfo->FileId.Unique);
+                              ObjectInfo->FileId.Unique));
 
                 AFSDeleteDirEntry( ObjectInfo,
                                    pCurrentDirEntry);
@@ -3641,7 +3720,7 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
             else
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSValidateDirectoryCache Setting dir entry %p Name %wZ DELETED in parent FID %08lX-%08lX-%08lX-%08lX\n",
                               pCurrentDirEntry,
@@ -3649,7 +3728,7 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo,
                               ObjectInfo->FileId.Cell,
                               ObjectInfo->FileId.Volume,
                               ObjectInfo->FileId.Vnode,
-                              ObjectInfo->FileId.Unique);
+                              ObjectInfo->FileId.Unique));
 
                 SetFlag( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_DELETED);
 
@@ -3877,7 +3956,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
         // correct order
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE_2,
                       "AFSValidateEntry Validating entry %wZ FID %08lX-%08lX-%08lX-%08lX FastCall %u\n",
                       &DirEntry->NameInformation.FileName,
@@ -3885,7 +3964,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                       pObjectInfo->FileId.Volume,
                       pObjectInfo->FileId.Vnode,
                       pObjectInfo->FileId.Unique,
-                      FastCall);
+                      FastCall));
 
         //
         // If this is a fake node then bail since the service knows nothing about it
@@ -3912,14 +3991,14 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
             pObjectInfo->Expiration.QuadPart >= liSystemTime.QuadPart)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE_2,
                           "AFSValidateEntry Directory entry %wZ FID %08lX-%08lX-%08lX-%08lX VALID\n",
                           &DirEntry->NameInformation.FileName,
                           pObjectInfo->FileId.Cell,
                           pObjectInfo->FileId.Volume,
                           pObjectInfo->FileId.Vnode,
-                          pObjectInfo->FileId.Unique);
+                          pObjectInfo->FileId.Unique));
 
             try_return( ntStatus);
         }
@@ -3936,7 +4015,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
         if( !NT_SUCCESS( ntStatus))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSValidateEntry Failed to evaluate entry FastCall %d %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
                           FastCall,
@@ -3945,7 +4024,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                           pObjectInfo->FileId.Volume,
                           pObjectInfo->FileId.Vnode,
                           pObjectInfo->FileId.Unique,
-                          ntStatus);
+                          ntStatus));
 
             //
             // Failed validation of node so return access-denied
@@ -3954,7 +4033,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
             try_return( ntStatus);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSValidateEntry Validating entry FastCall %d %wZ FID %08lX-%08lX-%08lX-%08lX DV %I64X returned DV %I64X FT %d\n",
                       FastCall,
@@ -3965,7 +4044,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                       pObjectInfo->FileId.Unique,
                       pObjectInfo->DataVersion.QuadPart,
                       pDirEnumEntry->DataVersion.QuadPart,
-                      pDirEnumEntry->FileType);
+                      pDirEnumEntry->FileType));
 
 
         //
@@ -4035,11 +4114,11 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                     if( !ExIsResourceAcquiredLite( &pCurrentFcb->NPFcb->Resource))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSValidateEntry Acquiring Fcb lock %p EXCL %08lX\n",
                                       &pCurrentFcb->NPFcb->Resource,
-                                      PsGetCurrentThread());
+                                      PsGetCurrentThread()));
 
                         AFSAcquireExcl( &pCurrentFcb->NPFcb->Resource,
                                         TRUE);
@@ -4052,19 +4131,19 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
 
                         IO_STATUS_BLOCK stIoStatus;
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE_2,
                                       "AFSValidateEntry Flush/purge entry %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                       &DirEntry->NameInformation.FileName,
                                       pObjectInfo->FileId.Cell,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
-                                      pObjectInfo->FileId.Unique);
+                                      pObjectInfo->FileId.Unique));
 
                         if ( pObjectInfo->DataVersion.QuadPart != pDirEnumEntry->DataVersion.QuadPart)
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSValidateEntry DV Change %wZ FID %08lX-%08lX-%08lX-%08lX (%08lX != %08lX)\n",
                                           &DirEntry->NameInformation.FileName,
@@ -4073,8 +4152,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                           pObjectInfo->FileId.Vnode,
                                           pObjectInfo->FileId.Unique,
                                           pObjectInfo->DataVersion.LowPart,
-                                          pDirEnumEntry->DataVersion.LowPart
-                                          );
+                                          pDirEnumEntry->DataVersion.LowPart));
 
                             bPurgeExtents = TRUE;
                         }
@@ -4086,23 +4164,23 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                             {
                                 bPurgeExtents = TRUE;
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSVerifyEntry Clearing VERIFY_DATA flag %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                               &DirEntry->NameInformation.FileName,
                                               pObjectInfo->FileId.Cell,
                                               pObjectInfo->FileId.Volume,
                                               pObjectInfo->FileId.Vnode,
-                                              pObjectInfo->FileId.Unique);
+                                              pObjectInfo->FileId.Unique));
 
                                 ClearFlag( pObjectInfo->Flags, AFS_OBJECT_FLAGS_VERIFY_DATA);
                             }
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSValidateEntry Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                           &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                             TRUE);
@@ -4124,7 +4202,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                 if( !NT_SUCCESS( stIoStatus.Status))
                                 {
 
-                                    AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                    AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                   AFS_TRACE_LEVEL_ERROR,
                                                   "AFSValidateEntry CcFlushCache failure %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                                   &DirEntry->NameInformation.FileName,
@@ -4133,7 +4211,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                                   pObjectInfo->FileId.Vnode,
                                                   pObjectInfo->FileId.Unique,
                                                   stIoStatus.Status,
-                                                  stIoStatus.Information);
+                                                  stIoStatus.Information));
 
                                     ntStatus = stIoStatus.Status;
                                 }
@@ -4148,14 +4226,14 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                                                FALSE))
                                     {
 
-                                        AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                        AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                       AFS_TRACE_LEVEL_WARNING,
                                                       "AFSValidateEntry CcPurgeCacheSection failure %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                                       &DirEntry->NameInformation.FileName,
                                                       pObjectInfo->FileId.Cell,
                                                       pObjectInfo->FileId.Volume,
                                                       pObjectInfo->FileId.Vnode,
-                                                      pObjectInfo->FileId.Unique);
+                                                      pObjectInfo->FileId.Unique));
 
                                         SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                                     }
@@ -4165,7 +4243,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                             {
                                 ntStatus = GetExceptionCode();
 
-                                AFSDbgLogMsg( 0,
+                                AFSDbgTrace(( 0,
                                               0,
                                               "EXCEPTION - AFSValidateEntry CcFlushCache or CcPurgeCacheSection %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                               &DirEntry->NameInformation.FileName,
@@ -4173,16 +4251,16 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                               pObjectInfo->FileId.Volume,
                                               pObjectInfo->FileId.Vnode,
                                               pObjectInfo->FileId.Unique,
-                                              ntStatus);
+                                              ntStatus));
 
                                 SetFlag( pObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                             }
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSValidateEntry Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                           &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSReleaseResource( &pObjectInfo->Fcb->NPFcb->SectionObjectResource);
 
@@ -4231,7 +4309,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                     if( !NT_SUCCESS( ntStatus))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSValidateEntry Meta Data Update failed %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                       &DirEntry->NameInformation.FileName,
@@ -4239,7 +4317,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
                                       pObjectInfo->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         break;
                     }
@@ -4254,11 +4332,11 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                     {
                         FILE_OBJECT *pCCFileObject;
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSValidateEntry Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                       &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                      PsGetCurrentThread());
+                                      PsGetCurrentThread()));
 
                         AFSAcquireExcl( &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                         TRUE);
@@ -4275,11 +4353,11 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                             (PCC_FILE_SIZES)&pObjectInfo->Fcb->Header.AllocationSize);
                         }
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE,
                                       "AFSValidateEntry Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                                       &pObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                      PsGetCurrentThread());
+                                      PsGetCurrentThread()));
 
                         AFSReleaseResource( &pObjectInfo->Fcb->NPFcb->SectionObjectResource);
                     }
@@ -4298,23 +4376,23 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                     // the directory enumeration.
                     //
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSValidateEntry Acquiring DirectoryNodeHdr.TreeLock lock %p EXCL %08lX\n",
                                   pObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     if( BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_VERBOSE_2,
                                       "AFSValidateEntry Validating directory content for %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                                       &DirEntry->NameInformation.FileName,
                                       pObjectInfo->FileId.Cell,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
-                                      pObjectInfo->FileId.Unique);
+                                      pObjectInfo->FileId.Unique));
 
                         AFSAcquireExcl( pObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
                                         TRUE);
@@ -4328,7 +4406,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                     if( !NT_SUCCESS( ntStatus))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSValidateEntry Failed to re-enumerate %wZ FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
                                       &DirEntry->NameInformation.FileName,
@@ -4336,7 +4414,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                                       pObjectInfo->FileId.Volume,
                                       pObjectInfo->FileId.Vnode,
                                       pObjectInfo->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         break;
                     }
@@ -4360,7 +4438,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
 
             default:
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_WARNING,
                               "AFSValidateEntry Attempt to verify node of type %d FastCall %d %wZ FID %08lX-%08lX-%08lX-%08lX\n",
                               pObjectInfo->FileType,
@@ -4369,7 +4447,7 @@ AFSValidateEntry( IN AFSDirectoryCB *DirEntry,
                               pObjectInfo->FileId.Cell,
                               pObjectInfo->FileId.Volume,
                               pObjectInfo->FileId.Vnode,
-                              pObjectInfo->FileId.Unique);
+                              pObjectInfo->FileId.Unique));
 
                 break;
         }
@@ -4422,11 +4500,11 @@ AFSInitializeSpecialShareNameList()
         lCount = AFSObjectInfoIncrement( pObjectInfoCB,
                                          AFS_OBJECT_REFERENCE_GLOBAL);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeSpecialShareNameList (srvsvc) Increment count on object %p Cnt %d\n",
                       pObjectInfoCB,
-                      lCount);
+                      lCount));
 
         pObjectInfoCB->FileType = (ULONG) AFS_FILE_TYPE_SPECIAL_SHARE_NAME;
 
@@ -4440,15 +4518,28 @@ AFSInitializeSpecialShareNameList()
         if( pDirNode == NULL)
         {
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeSpecialShareNameList Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeSpecialShareNameList (srvsvc) AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
+                      pDirNode));
 
         pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSLibExAllocatePoolWithTag( NonPagedPool,
                                                                                    sizeof( AFSNonPagedDirectoryCB),
@@ -4459,7 +4550,20 @@ AFSInitializeSpecialShareNameList()
 
             ExFreePool( pDirNode);
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeSpecialShareNameList Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -4515,11 +4619,11 @@ AFSInitializeSpecialShareNameList()
         lCount = AFSObjectInfoIncrement( pObjectInfoCB,
                                          AFS_OBJECT_REFERENCE_GLOBAL);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeSpecialShareNameList (ipc$) Incrementing count on object %p Cnt %d\n",
                       pObjectInfoCB,
-                      lCount);
+                      lCount));
 
         pObjectInfoCB->FileType = (ULONG) AFS_FILE_TYPE_SPECIAL_SHARE_NAME;
 
@@ -4533,15 +4637,28 @@ AFSInitializeSpecialShareNameList()
         if( pDirNode == NULL)
         {
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeSpecialShareNameList Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeSpecialShareNameList (ipc$) AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
+                      pDirNode));
 
         pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSLibExAllocatePoolWithTag( NonPagedPool,
                                                                                    sizeof( AFSNonPagedDirectoryCB),
@@ -4552,7 +4669,20 @@ AFSInitializeSpecialShareNameList()
 
             ExFreePool( pDirNode);
 
-            AFSDeleteObjectInfo( &pObjectInfoCB);
+            lCount = AFSObjectInfoDecrement( pObjectInfoCB,
+                                             AFS_OBJECT_REFERENCE_GLOBAL);
+
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSInitializeSpecialShareNameList Decrement count on object %p Cnt %d\n",
+                          pObjectInfoCB,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &pObjectInfoCB);
+            }
 
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
@@ -4607,7 +4737,20 @@ try_exit:
 
                     pLastDirNode = (AFSDirectoryCB *)pDirNode->ListEntry.fLink;
 
-                    AFSDeleteObjectInfo( &pDirNode->ObjectInformation);
+                    lCount = AFSObjectInfoDecrement( pDirNode->ObjectInformation,
+                                                     AFS_OBJECT_REFERENCE_GLOBAL);
+
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                                  AFS_TRACE_LEVEL_VERBOSE,
+                                  "AFSInitializeSpecialShareNameList Decrement count on object %p Cnt %d\n",
+                                  pDirNode->ObjectInformation,
+                                  lCount));
+
+                    if ( lCount == 0)
+                    {
+
+                        AFSDeleteObjectInfo( &pDirNode->ObjectInformation);
+                    }
 
                     ExDeleteResourceLite( &pDirNode->NonPaged->Lock);
 
@@ -4639,11 +4782,11 @@ AFSGetSpecialShareNameEntry( IN UNICODE_STRING *ShareName,
     {
 
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE_2,
                       "AFSGetSpecialShareNameEntry share name %wZ secondary name %wZ\n",
                       ShareName,
-                      SecondaryName);
+                      SecondaryName));
 
         uniFullShareName = *ShareName;
 
@@ -4759,11 +4902,11 @@ AFSResetDirectoryContent( IN AFSObjectInfoCB *ObjectInfoCB)
                 pCurrentDirEntry->NameArrayReferenceCount <= 0)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSResetDirectoryContent Deleting dir entry %p for %wZ\n",
                               pCurrentDirEntry,
-                              &pCurrentDirEntry->NameInformation.FileName);
+                              &pCurrentDirEntry->NameInformation.FileName));
 
                 AFSDeleteDirEntry( ObjectInfoCB,
                                    pCurrentDirEntry);
@@ -4771,11 +4914,11 @@ AFSResetDirectoryContent( IN AFSObjectInfoCB *ObjectInfoCB)
             else
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSResetDirectoryContent Setting DELETE flag in dir entry %p for %wZ\n",
                               pCurrentDirEntry,
-                              &pCurrentDirEntry->NameInformation.FileName);
+                              &pCurrentDirEntry->NameInformation.FileName));
 
                 SetFlag( pCurrentDirEntry->Flags, AFS_DIR_ENTRY_DELETED);
 
@@ -4798,13 +4941,13 @@ AFSResetDirectoryContent( IN AFSObjectInfoCB *ObjectInfoCB)
 
         ObjectInfoCB->Specific.Directory.DirectoryNodeCount = 0;
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIR_NODE_COUNT,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIR_NODE_COUNT,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSResetDirectoryContent Reset count to 0 on parent FID %08lX-%08lX-%08lX-%08lX\n",
                       ObjectInfoCB->FileId.Cell,
                       ObjectInfoCB->FileId.Volume,
                       ObjectInfoCB->FileId.Vnode,
-                      ObjectInfoCB->FileId.Unique);
+                      ObjectInfoCB->FileId.Unique));
     }
 
     return ntStatus;
@@ -4821,11 +4964,11 @@ AFSEnumerateGlobalRoot( IN GUID *AuthGroup)
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSEnumerateGlobalRoot Acquiring GlobalRoot DirectoryNodeHdr.TreeLock lock %p EXCL %08lX\n",
                       AFSGlobalRoot->ObjectInformation.Specific.Directory.DirectoryNodeHdr.TreeLock,
-                      PsGetCurrentThread());
+                      PsGetCurrentThread()));
 
         AFSAcquireExcl( AFSGlobalRoot->ObjectInformation.Specific.Directory.DirectoryNodeHdr.TreeLock,
                         TRUE);
@@ -5072,185 +5215,92 @@ try_exit:
     return ntStatus;
 }
 
-AFSNameArrayHdr *
-AFSInitNameArray( IN AFSDirectoryCB *DirectoryCB,
-                  IN ULONG InitialElementCount)
+void
+AFSSetEnumerationEvent( IN AFSFcb *Fcb)
 {
-
-    AFSNameArrayHdr *pNameArray = NULL;
-    AFSNameArrayCB *pCurrentElement = NULL;
-    AFSDeviceExt *pDevExt = (AFSDeviceExt *) AFSRDRDeviceObject->DeviceExtension;
     LONG lCount;
 
-    __Enter
-    {
-
-        if( InitialElementCount == 0)
-        {
-
-            InitialElementCount = pDevExt->Specific.RDR.NameArrayLength;
-        }
+    //
+    // Depending on the type of node, set the event
+    //
 
-        pNameArray = (AFSNameArrayHdr *)AFSExAllocatePoolWithTag( PagedPool,
-                                                                  sizeof( AFSNameArrayHdr) +
-                                                                    (InitialElementCount * sizeof( AFSNameArrayCB)),
-                                                                  AFS_NAME_ARRAY_TAG);
+    switch( Fcb->Header.NodeTypeCode)
+    {
 
-        if( pNameArray == NULL)
+        case AFS_DIRECTORY_FCB:
+        case AFS_ROOT_FCB:
+        case AFS_ROOT_ALL:
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSInitNameArray Failed to allocate name array\n");
+            lCount = InterlockedIncrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount);
 
-            try_return( pNameArray);
+            break;
         }
+    }
 
-        RtlZeroMemory( pNameArray,
-                       sizeof( AFSNameArrayHdr) +
-                          (InitialElementCount * sizeof( AFSNameArrayCB)));
-
-        pNameArray->MaxElementCount = InitialElementCount;
-
-        if( DirectoryCB != NULL)
-        {
-
-            pCurrentElement = &pNameArray->ElementArray[ 0];
-
-            pNameArray->CurrentEntry = pCurrentElement;
-
-            pNameArray->Count = 1;
-
-            pNameArray->LinkCount = 0;
+    return;
+}
 
-            lCount = InterlockedIncrement( &DirectoryCB->NameArrayReferenceCount);
+void
+AFSClearEnumerationEvent( IN AFSFcb *Fcb)
+{
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSInitNameArray [NA:%p] Increment count on %wZ DE %p Cnt %d\n",
-                          pNameArray,
-                          &DirectoryCB->NameInformation.FileName,
-                          DirectoryCB,
-                          lCount);
+    LONG lCount;
 
-            pCurrentElement->DirectoryCB = DirectoryCB;
+    //
+    // Depending on the type of node, set the event
+    //
 
-            pCurrentElement->Component = DirectoryCB->NameInformation.FileName;
+    switch( Fcb->Header.NodeTypeCode)
+    {
 
-            pCurrentElement->FileId = DirectoryCB->ObjectInformation->FileId;
+        case AFS_DIRECTORY_FCB:
+        case AFS_ROOT_FCB:
+        case AFS_ROOT_ALL:
+        {
 
-            if( pCurrentElement->FileId.Vnode == 1)
-            {
+            ASSERT( Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0);
 
-                SetFlag( pCurrentElement->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
-            }
+            lCount = InterlockedDecrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSInitNameArray [NA:%p] Element[0] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                          pNameArray,
-                          pCurrentElement->DirectoryCB,
-                          pCurrentElement->FileId.Cell,
-                          pCurrentElement->FileId.Volume,
-                          pCurrentElement->FileId.Vnode,
-                          pCurrentElement->FileId.Unique,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB->ObjectInformation->FileType);
+            break;
         }
-
-try_exit:
-
-        NOTHING;
     }
 
-    return pNameArray;
+    return;
 }
 
-NTSTATUS
-AFSPopulateNameArray( IN AFSNameArrayHdr *NameArray,
-                      IN UNICODE_STRING *Path,
-                      IN AFSDirectoryCB *DirectoryCB)
+BOOLEAN
+AFSIsEnumerationInProcess( IN AFSObjectInfoCB *ObjectInfo)
 {
 
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSNameArrayCB *pCurrentElement = NULL;
-    LONG lCount;
+    BOOLEAN bIsInProcess = FALSE;
 
     __Enter
     {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSPopulateNameArray [NA:%p] passed Path %wZ DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      &Path,
-                      DirectoryCB,
-                      DirectoryCB->ObjectInformation->FileId.Cell,
-                      DirectoryCB->ObjectInformation->FileId.Volume,
-                      DirectoryCB->ObjectInformation->FileId.Vnode,
-                      DirectoryCB->ObjectInformation->FileId.Unique,
-                      &DirectoryCB->NameInformation.FileName,
-                      DirectoryCB->ObjectInformation->FileType);
-
-        //
-        // Init some info in the header
-        //
-
-        pCurrentElement = &NameArray->ElementArray[ 0];
-
-        NameArray->CurrentEntry = pCurrentElement;
-
-        //
-        // The first entry points at the root
-        //
-
-        pCurrentElement->DirectoryCB = DirectoryCB->ObjectInformation->VolumeCB->DirectoryCB;
-
-        lCount = InterlockedIncrement( &pCurrentElement->DirectoryCB->NameArrayReferenceCount);
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSPopulateNameArray [NA:%p] Increment count on volume %wZ DE %p Cnt %d\n",
-                      NameArray,
-                      &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                      pCurrentElement->DirectoryCB,
-                      lCount);
-
-        pCurrentElement->Component = DirectoryCB->ObjectInformation->VolumeCB->DirectoryCB->NameInformation.FileName;
-
-        pCurrentElement->FileId = DirectoryCB->ObjectInformation->VolumeCB->ObjectInformation.FileId;
-
-        pCurrentElement->Flags = 0;
-
-        if( pCurrentElement->FileId.Vnode == 1)
+        if( ObjectInfo->Fcb == NULL)
         {
 
-            SetFlag( pCurrentElement->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
+            try_return( bIsInProcess);
         }
 
-        NameArray->Count = 1;
+        switch( ObjectInfo->Fcb->Header.NodeTypeCode)
+        {
 
-        NameArray->LinkCount = 0;
+            case AFS_DIRECTORY_FCB:
+            case AFS_ROOT_FCB:
+            case AFS_ROOT_ALL:
+            {
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSPopulateNameArray [NA:%p] Element[0] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      pCurrentElement->DirectoryCB,
-                      pCurrentElement->FileId.Cell,
-                      pCurrentElement->FileId.Volume,
-                      pCurrentElement->FileId.Vnode,
-                      pCurrentElement->FileId.Unique,
-                      &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                      pCurrentElement->DirectoryCB->ObjectInformation->FileType);
+                if( ObjectInfo->Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0)
+                {
 
-        //
-        // If the root is the parent then we are done ...
-        //
+                    bIsInProcess = TRUE;
+                }
 
-        if( &DirectoryCB->ObjectInformation->VolumeCB->ObjectInformation == DirectoryCB->ObjectInformation)
-        {
-            try_return( ntStatus);
+                break;
+            }
         }
 
 try_exit:
@@ -5258,733 +5308,78 @@ try_exit:
         NOTHING;
     }
 
+    return bIsInProcess;
+}
+
+NTSTATUS
+AFSVerifyVolume( IN ULONGLONG ProcessId,
+                 IN AFSVolumeCB *VolumeCB)
+{
+
+    UNREFERENCED_PARAMETER(ProcessId);
+    UNREFERENCED_PARAMETER(VolumeCB);
+    NTSTATUS ntStatus = STATUS_SUCCESS;
+
+
     return ntStatus;
 }
 
 NTSTATUS
-AFSPopulateNameArrayFromRelatedArray( IN AFSNameArrayHdr *NameArray,
-                                      IN AFSNameArrayHdr *RelatedNameArray,
-                                      IN AFSDirectoryCB *DirectoryCB)
+AFSInitPIOCtlDirectoryCB( IN AFSObjectInfoCB *ParentObjectInfo)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSNameArrayCB *pCurrentElement = NULL, *pCurrentRelatedElement = NULL;
+    AFSObjectInfoCB *pObjectInfoCB = NULL;
+    AFSDirectoryCB *pDirNode = NULL;
+    ULONG ulEntryLength = 0;
+    AFSNonPagedDirectoryCB *pNonPagedDirEntry = NULL;
     LONG lCount;
 
     __Enter
     {
 
-        if ( DirectoryCB)
-        {
+        pObjectInfoCB = AFSAllocateObjectInfo( ParentObjectInfo,
+                                               0);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSPopulateNameArray [NA:%p] passed RelatedNameArray %p DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                          NameArray,
-                          RelatedNameArray,
-                          DirectoryCB,
-                          DirectoryCB->ObjectInformation->FileId.Cell,
-                          DirectoryCB->ObjectInformation->FileId.Volume,
-                          DirectoryCB->ObjectInformation->FileId.Vnode,
-                          DirectoryCB->ObjectInformation->FileId.Unique,
-                          &DirectoryCB->NameInformation.FileName,
-                          DirectoryCB->ObjectInformation->FileType);
-        }
-        else
+        if( pObjectInfoCB == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSPopulateNameArray [NA:%p] passed RelatedNameArray %p DE NULL\n",
-                          NameArray,
-                          RelatedNameArray);
+            try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
-        //
-        // Init some info in the header
-        //
+        lCount = AFSObjectInfoIncrement( pObjectInfoCB,
+                                         AFS_OBJECT_REFERENCE_DIRENTRY);
 
-        pCurrentElement = &NameArray->ElementArray[ 0];
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                      AFS_TRACE_LEVEL_VERBOSE,
+                      "AFSInitPIOCtlDirectoryCB Increment count on object %p Cnt %d\n",
+                      pObjectInfoCB,
+                      lCount));
 
-        pCurrentRelatedElement = &RelatedNameArray->ElementArray[ 0];
+        pObjectInfoCB->FileType = (ULONG) AFS_FILE_TYPE_PIOCTL;
 
-        NameArray->Count = 0;
+        pObjectInfoCB->FileAttributes = FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
 
-        NameArray->LinkCount = RelatedNameArray->LinkCount;
+        ulEntryLength = sizeof( AFSDirectoryCB) + AFSPIOCtlName.Length;
 
-        //
-        // Populate the name array with the data from the related array
-        //
+        pDirNode = (AFSDirectoryCB *)AFSExAllocatePoolWithTag( PagedPool,
+                                                               ulEntryLength,
+                                                               AFS_DIR_ENTRY_TAG);
 
-        while( TRUE)
+        if( pDirNode == NULL)
         {
 
-            pCurrentElement->DirectoryCB = pCurrentRelatedElement->DirectoryCB;
-
-            pCurrentElement->Component = pCurrentRelatedElement->DirectoryCB->NameInformation.FileName;
+            try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
+        }
 
-            pCurrentElement->FileId    = pCurrentElement->DirectoryCB->ObjectInformation->FileId;
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+                      AFS_TRACE_LEVEL_VERBOSE,
+                      "AFSInitPIOCtlDirectoryCB AFS_DIR_ENTRY_TAG allocated %p\n",
+                      pDirNode));
 
-            pCurrentElement->Flags = 0;
-
-            if( pCurrentElement->FileId.Vnode == 1)
-            {
-
-                SetFlag( pCurrentElement->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
-            }
-
-            lCount = InterlockedIncrement( &pCurrentElement->DirectoryCB->NameArrayReferenceCount);
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSPopulateNameArrayFromRelatedArray [NA:%p] Increment count on %wZ DE %p Cnt %d\n",
-                          NameArray,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB,
-                          lCount);
-
-            lCount = InterlockedIncrement( &NameArray->Count);
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSPopulateNameArrayFromRelatedArray [NA:%p] Element[%d] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                          NameArray,
-                          lCount - 1,
-                          pCurrentElement->DirectoryCB,
-                          pCurrentElement->FileId.Cell,
-                          pCurrentElement->FileId.Volume,
-                          pCurrentElement->FileId.Vnode,
-                          pCurrentElement->FileId.Unique,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB->ObjectInformation->FileType);
-
-            if( pCurrentElement->DirectoryCB == DirectoryCB ||
-                NameArray->Count == RelatedNameArray->Count)
-            {
-
-                //
-                // Done ...
-                //
-
-                break;
-            }
-
-            pCurrentElement++;
-
-            pCurrentRelatedElement++;
-        }
-
-        NameArray->CurrentEntry = NameArray->Count > 0 ? pCurrentElement : NULL;
-    }
-
-    return ntStatus;
-}
-
-NTSTATUS
-AFSFreeNameArray( IN AFSNameArrayHdr *NameArray)
-{
-
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSNameArrayCB *pCurrentElement = NULL;
-    LONG lCount, lElement;
-
-    __Enter
-    {
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSFreeNameArray [NA:%p]\n",
-                      NameArray);
-
-        for ( lElement = 0; lElement < NameArray->Count; lElement++)
-        {
-
-            pCurrentElement = &NameArray->ElementArray[ lElement];
-
-            lCount = InterlockedDecrement( &pCurrentElement->DirectoryCB->NameArrayReferenceCount);
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSFreeNameArray [NA:%p] Decrement count on %wZ DE %p Cnt %d\n",
-                          NameArray,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB,
-                          lCount);
-
-            ASSERT( lCount >= 0);
-        }
-
-        AFSExFreePoolWithTag( NameArray, AFS_NAME_ARRAY_TAG);
-    }
-
-    return ntStatus;
-}
-
-NTSTATUS
-AFSInsertNextElement( IN AFSNameArrayHdr *NameArray,
-                      IN AFSDirectoryCB *DirectoryCB)
-{
-
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSNameArrayCB *pCurrentElement = NULL;
-    LONG lCount;
-
-    __Enter
-    {
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSInsertNextElement [NA:%p] passed DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      DirectoryCB,
-                      DirectoryCB->ObjectInformation->FileId.Cell,
-                      DirectoryCB->ObjectInformation->FileId.Volume,
-                      DirectoryCB->ObjectInformation->FileId.Vnode,
-                      DirectoryCB->ObjectInformation->FileId.Unique,
-                      &DirectoryCB->NameInformation.FileName,
-                      DirectoryCB->ObjectInformation->FileType);
-
-        if( NameArray->Count == (LONG) NameArray->MaxElementCount)
-        {
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSInsertNextElement [NA:%p] Name has reached Maximum Size\n",
-                          NameArray);
-
-            try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
-        }
-
-        for ( lCount = 0; lCount < NameArray->Count; lCount++)
-        {
-
-            if ( AFSIsEqualFID( &NameArray->ElementArray[ lCount].FileId,
-                                &DirectoryCB->ObjectInformation->FileId) )
-            {
-
-                AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                              AFS_TRACE_LEVEL_WARNING,
-                              "AFSInsertNextElement [NA:%p] DE %p recursion Status %08X\n",
-                              NameArray,
-                              DirectoryCB,
-                              STATUS_ACCESS_DENIED);
-
-                try_return( ntStatus = STATUS_ACCESS_DENIED);
-            }
-        }
-
-        if( NameArray->Count > 0)
-        {
-
-            NameArray->CurrentEntry++;
-        }
-        else
-        {
-            NameArray->CurrentEntry = &NameArray->ElementArray[ 0];
-        }
-
-        pCurrentElement = NameArray->CurrentEntry;
-
-        lCount = InterlockedIncrement( &NameArray->Count);
-
-        lCount = InterlockedIncrement( &DirectoryCB->NameArrayReferenceCount);
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSInsertNextElement [NA:%p] Increment count on %wZ DE %p Cnt %d\n",
-                      NameArray,
-                      &DirectoryCB->NameInformation.FileName,
-                      DirectoryCB,
-                      lCount);
-
-        ASSERT( lCount > 0);
-
-        pCurrentElement->DirectoryCB = DirectoryCB;
-
-        pCurrentElement->Component = DirectoryCB->NameInformation.FileName;
-
-        pCurrentElement->FileId = DirectoryCB->ObjectInformation->FileId;
-
-        pCurrentElement->Flags = 0;
-
-        if( pCurrentElement->FileId.Vnode == 1)
-        {
-
-            SetFlag( pCurrentElement->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
-        }
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSInsertNextElement [NA:%p] Element[%d] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      NameArray->Count - 1,
-                      pCurrentElement->DirectoryCB,
-                      pCurrentElement->FileId.Cell,
-                      pCurrentElement->FileId.Volume,
-                      pCurrentElement->FileId.Vnode,
-                      pCurrentElement->FileId.Unique,
-                      &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                      pCurrentElement->DirectoryCB->ObjectInformation->FileType);
-
-try_exit:
-
-        NOTHING;
-    }
-
-    return ntStatus;
-}
-
-AFSDirectoryCB *
-AFSBackupEntry( IN AFSNameArrayHdr *NameArray)
-{
-
-    AFSDirectoryCB *pDirectoryCB = NULL;
-    AFSNameArrayCB *pCurrentElement = NULL;
-    BOOLEAN         bVolumeRoot = FALSE;
-    LONG lCount;
-
-    __Enter
-    {
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSBackupEntry [NA:%p]\n",
-                      NameArray);
-
-        if( NameArray->Count == 0)
-        {
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSBackupEntry [NA:%p] No more entries\n",
-                          NameArray);
-
-            try_return( pCurrentElement);
-        }
-
-        lCount = InterlockedDecrement( &NameArray->CurrentEntry->DirectoryCB->NameArrayReferenceCount);
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSBackupEntry [NA:%p] Decrement count on %wZ DE %p Cnt %d\n",
-                      NameArray,
-                      &NameArray->CurrentEntry->DirectoryCB->NameInformation.FileName,
-                      NameArray->CurrentEntry->DirectoryCB,
-                      lCount);
-
-        ASSERT( lCount >= 0);
-
-        NameArray->CurrentEntry->DirectoryCB = NULL;
-
-        lCount = InterlockedDecrement( &NameArray->Count);
-
-        if( lCount == 0)
-        {
-            NameArray->CurrentEntry = NULL;
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSBackupEntry [NA:%p] No more entries\n",
-                          NameArray);
-        }
-        else
-        {
-
-            bVolumeRoot = BooleanFlagOn( NameArray->CurrentEntry->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
-
-            NameArray->CurrentEntry--;
-
-            pCurrentElement = NameArray->CurrentEntry;
-
-            pDirectoryCB = pCurrentElement->DirectoryCB;
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSBackupEntry [NA:%p] Returning Element[%d] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                          NameArray,
-                          NameArray->Count - 1,
-                          pCurrentElement->DirectoryCB,
-                          pCurrentElement->FileId.Cell,
-                          pCurrentElement->FileId.Volume,
-                          pCurrentElement->FileId.Vnode,
-                          pCurrentElement->FileId.Unique,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB->ObjectInformation->FileType);
-
-            //
-            // If the entry we are removing is a volume root,
-            // we must remove the mount point entry as well.
-            // If the NameArray was constructed by checking the
-            // share name via the service, the name array can
-            // contain two volume roots in sequence without a
-            // mount point separating them.
-            //
-
-            if ( bVolumeRoot &&
-                 !BooleanFlagOn( NameArray->CurrentEntry->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT))
-            {
-
-                pDirectoryCB = AFSBackupEntry( NameArray);
-            }
-        }
-
-
-try_exit:
-
-        NOTHING;
-    }
-
-    return pDirectoryCB;
-}
-
-AFSDirectoryCB *
-AFSGetParentEntry( IN AFSNameArrayHdr *NameArray)
-{
-
-    AFSDirectoryCB *pDirEntry = NULL;
-    AFSNameArrayCB *pElement = NULL;
-
-    __Enter
-    {
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSGetParentEntry [NA:%p]\n",
-                      NameArray);
-
-        if( NameArray->Count == 0 ||
-            NameArray->Count == 1)
-        {
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSGetParentEntry [NA:%p] No more entries\n",
-                          NameArray);
-
-            try_return( pDirEntry = NULL);
-        }
-
-        pElement = &NameArray->ElementArray[ NameArray->Count - 2];
-
-        pDirEntry = pElement->DirectoryCB;
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSGetParentEntry [NA:%p] Returning Element[%d] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      NameArray->Count - 2,
-                      pElement->DirectoryCB,
-                      pElement->FileId.Cell,
-                      pElement->FileId.Volume,
-                      pElement->FileId.Vnode,
-                      pElement->FileId.Unique,
-                      &pElement->DirectoryCB->NameInformation.FileName,
-                      pElement->DirectoryCB->ObjectInformation->FileType);
-
-try_exit:
-
-        NOTHING;
-    }
-
-    return pDirEntry;
-}
-
-void
-AFSResetNameArray( IN AFSNameArrayHdr *NameArray,
-                   IN AFSDirectoryCB *DirectoryCB)
-{
-
-    AFSNameArrayCB *pCurrentElement = NULL;
-    AFSDeviceExt *pDevExt = (AFSDeviceExt *) AFSRDRDeviceObject->DeviceExtension;
-    LONG lCount, lElement;
-
-    __Enter
-    {
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSResetNameArray [NA:%p] passed DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                      NameArray,
-                      DirectoryCB,
-                      DirectoryCB->ObjectInformation->FileId.Cell,
-                      DirectoryCB->ObjectInformation->FileId.Volume,
-                      DirectoryCB->ObjectInformation->FileId.Vnode,
-                      DirectoryCB->ObjectInformation->FileId.Unique,
-                      &DirectoryCB->NameInformation.FileName,
-                      DirectoryCB->ObjectInformation->FileType);
-        //
-        // Dereference previous name array contents
-        //
-
-        for ( lElement = 0; lElement < NameArray->Count; lElement++)
-        {
-
-            pCurrentElement = &NameArray->ElementArray[ lElement];
-
-            lCount = InterlockedDecrement( &pCurrentElement->DirectoryCB->NameArrayReferenceCount);
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSResetNameArray [NA:%p] Decrement count on %wZ DE %p Cnt %d\n",
-                          NameArray,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB,
-                          lCount);
-
-            ASSERT( lCount >= 0);
-        }
-
-        RtlZeroMemory( NameArray,
-                       sizeof( AFSNameArrayHdr) +
-                          ((pDevExt->Specific.RDR.NameArrayLength - 1) * sizeof( AFSNameArrayCB)));
-
-        NameArray->MaxElementCount = pDevExt->Specific.RDR.NameArrayLength;
-
-        if( DirectoryCB != NULL)
-        {
-
-            pCurrentElement = &NameArray->ElementArray[ 0];
-
-            NameArray->CurrentEntry = pCurrentElement;
-
-            NameArray->Count = 1;
-
-            NameArray->LinkCount = 0;
-
-            lCount = InterlockedIncrement( &DirectoryCB->NameArrayReferenceCount);
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_REF_COUNTING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSResetNameArray [NA:%p] Increment count on %wZ DE %p Cnt %d\n",
-                          NameArray,
-                          &DirectoryCB->NameInformation.FileName,
-                          DirectoryCB,
-                          lCount);
-
-            pCurrentElement->DirectoryCB = DirectoryCB;
-
-            pCurrentElement->Component = DirectoryCB->NameInformation.FileName;
-
-            pCurrentElement->FileId = DirectoryCB->ObjectInformation->FileId;
-
-            pCurrentElement->Flags  = 0;
-
-            if( pCurrentElement->FileId.Vnode == 1)
-            {
-
-                SetFlag( pCurrentElement->Flags, AFS_NAME_ARRAY_FLAG_ROOT_ELEMENT);
-            }
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NAME_ARRAY_PROCESSING,
-                          AFS_TRACE_LEVEL_VERBOSE,
-                          "AFSResetNameArray [NA:%p] Element[0] DE %p FID %08lX-%08lX-%08lX-%08lX %wZ Type %d\n",
-                          NameArray,
-                          pCurrentElement->DirectoryCB,
-                          pCurrentElement->FileId.Cell,
-                          pCurrentElement->FileId.Volume,
-                          pCurrentElement->FileId.Vnode,
-                          pCurrentElement->FileId.Unique,
-                          &pCurrentElement->DirectoryCB->NameInformation.FileName,
-                          pCurrentElement->DirectoryCB->ObjectInformation->FileType);
-        }
-    }
-
-    return;
-}
-
-void
-AFSDumpNameArray( IN AFSNameArrayHdr *NameArray)
-{
-
-    AFSNameArrayCB *pCurrentElement = NULL;
-
-    pCurrentElement = &NameArray->ElementArray[ 0];
-
-    AFSPrint("AFSDumpNameArray Start (%d)\n", NameArray->Count);
-
-    while( pCurrentElement->DirectoryCB != NULL)
-    {
-
-        AFSPrint("FID %08lX-%08lX-%08lX-%08lX %wZ\n",
-                  pCurrentElement->FileId.Cell,
-                  pCurrentElement->FileId.Volume,
-                  pCurrentElement->FileId.Vnode,
-                  pCurrentElement->FileId.Unique,
-                  &pCurrentElement->DirectoryCB->NameInformation.FileName);
-
-        pCurrentElement++;
-    }
-
-    AFSPrint("AFSDumpNameArray End\n\n");
-
-    return;
-}
-
-void
-AFSSetEnumerationEvent( IN AFSFcb *Fcb)
-{
-    LONG lCount;
-
-    //
-    // Depending on the type of node, set the event
-    //
-
-    switch( Fcb->Header.NodeTypeCode)
-    {
-
-        case AFS_DIRECTORY_FCB:
-        case AFS_ROOT_FCB:
-        case AFS_ROOT_ALL:
-        {
-
-            lCount = InterlockedIncrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount);
-
-            break;
-        }
-    }
-
-    return;
-}
-
-void
-AFSClearEnumerationEvent( IN AFSFcb *Fcb)
-{
-
-    LONG lCount;
-
-    //
-    // Depending on the type of node, set the event
-    //
-
-    switch( Fcb->Header.NodeTypeCode)
-    {
-
-        case AFS_DIRECTORY_FCB:
-        case AFS_ROOT_FCB:
-        case AFS_ROOT_ALL:
-        {
-
-            ASSERT( Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0);
-
-            lCount = InterlockedDecrement( &Fcb->NPFcb->Specific.Directory.DirectoryEnumCount);
-
-            break;
-        }
-    }
-
-    return;
-}
-
-BOOLEAN
-AFSIsEnumerationInProcess( IN AFSObjectInfoCB *ObjectInfo)
-{
-
-    BOOLEAN bIsInProcess = FALSE;
-
-    __Enter
-    {
-
-        if( ObjectInfo->Fcb == NULL)
-        {
-
-            try_return( bIsInProcess);
-        }
-
-        switch( ObjectInfo->Fcb->Header.NodeTypeCode)
-        {
-
-            case AFS_DIRECTORY_FCB:
-            case AFS_ROOT_FCB:
-            case AFS_ROOT_ALL:
-            {
-
-                if( ObjectInfo->Fcb->NPFcb->Specific.Directory.DirectoryEnumCount > 0)
-                {
-
-                    bIsInProcess = TRUE;
-                }
-
-                break;
-            }
-        }
-
-try_exit:
-
-        NOTHING;
-    }
-
-    return bIsInProcess;
-}
-
-NTSTATUS
-AFSVerifyVolume( IN ULONGLONG ProcessId,
-                 IN AFSVolumeCB *VolumeCB)
-{
-
-    UNREFERENCED_PARAMETER(ProcessId);
-    UNREFERENCED_PARAMETER(VolumeCB);
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-
-
-    return ntStatus;
-}
-
-NTSTATUS
-AFSInitPIOCtlDirectoryCB( IN AFSObjectInfoCB *ParentObjectInfo)
-{
-
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSObjectInfoCB *pObjectInfoCB = NULL;
-    AFSDirectoryCB *pDirNode = NULL;
-    ULONG ulEntryLength = 0;
-    AFSNonPagedDirectoryCB *pNonPagedDirEntry = NULL;
-    LONG lCount;
-
-    __Enter
-    {
-
-        pObjectInfoCB = AFSAllocateObjectInfo( ParentObjectInfo,
-                                               0);
-
-        if( pObjectInfoCB == NULL)
-        {
-
-            try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
-        }
-
-        lCount = AFSObjectInfoIncrement( pObjectInfoCB,
-                                         AFS_OBJECT_REFERENCE_DIRENTRY);
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSInitPIOCtlDirectoryCB Increment count on object %p Cnt %d\n",
-                      pObjectInfoCB,
-                      lCount);
-
-        pObjectInfoCB->FileType = (ULONG) AFS_FILE_TYPE_PIOCTL;
-
-        pObjectInfoCB->FileAttributes = FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
-
-        ulEntryLength = sizeof( AFSDirectoryCB) + AFSPIOCtlName.Length;
-
-        pDirNode = (AFSDirectoryCB *)AFSExAllocatePoolWithTag( PagedPool,
-                                                               ulEntryLength,
-                                                               AFS_DIR_ENTRY_TAG);
-
-        if( pDirNode == NULL)
-        {
-
-            try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
-        }
-
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
-                      AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSInitPIOCtlDirectoryCB AFS_DIR_ENTRY_TAG allocated %p\n",
-                      pDirNode);
-
-        pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSExAllocatePoolWithTag( NonPagedPool,
-                                                                                sizeof( AFSNonPagedDirectoryCB),
-                                                                                AFS_DIR_ENTRY_NP_TAG);
+        pNonPagedDirEntry = (AFSNonPagedDirectoryCB *)AFSExAllocatePoolWithTag( NonPagedPool,
+                                                                                sizeof( AFSNonPagedDirectoryCB),
+                                                                                AFS_DIR_ENTRY_NP_TAG);
 
         if( pNonPagedDirEntry == NULL)
         {
@@ -6028,11 +5423,11 @@ AFSInitPIOCtlDirectoryCB( IN AFSObjectInfoCB *ParentObjectInfo)
         if ( InterlockedCompareExchangePointer( (PVOID *)&ParentObjectInfo->Specific.Directory.PIOCtlDirectoryCB, pDirNode, NULL) != NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_WARNING,
                           "AFSInitPIOCtlDirectoryCB Raced PIOCtlDirectoryCB %p pFcb %p\n",
                           ParentObjectInfo->Specific.Directory.PIOCtlDirectoryCB,
-                          pDirNode);
+                          pDirNode));
 
             try_return( ntStatus = STATUS_REPARSE);
         }
@@ -6045,10 +5440,10 @@ try_exit:
             if ( pDirNode != NULL)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+                AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInitPIOCtlDirectoryCB AFS_DIR_ENTRY_TAG deallocating %p\n",
-                              pDirNode);
+                              pDirNode));
 
                 AFSExFreePoolWithTag( pDirNode, AFS_DIR_ENTRY_TAG);
             }
@@ -6067,13 +5462,17 @@ try_exit:
                 lCount = AFSObjectInfoDecrement( pObjectInfoCB,
                                                  AFS_OBJECT_REFERENCE_DIRENTRY);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSInitPIOCtlDirectoryCB Decrement count on object %p Cnt %d\n",
                               pObjectInfoCB,
-                              lCount);
+                              lCount));
 
-                AFSDeleteObjectInfo( &pObjectInfoCB);
+                if ( lCount == 0)
+                {
+
+                    AFSDeleteObjectInfo( &pObjectInfoCB);
+                }
             }
         }
     }
@@ -6313,10 +5712,10 @@ AFSRetrieveFileAttributes( IN AFSDirectoryCB *ParentDirectoryCB,
 
                 AFSReleaseResource( &DirectoryCB->NonPaged->Lock);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_ERROR,
                               "AFSRetrieveFileAttributes Name %wZ contains invalid server name\n",
-                              &uniFullPathName);
+                              &uniFullPathName));
 
                 try_return( ntStatus = STATUS_OBJECT_PATH_INVALID);
             }
@@ -6356,22 +5755,22 @@ AFSRetrieveFileAttributes( IN AFSDirectoryCB *ParentDirectoryCB,
         lCount = AFSVolumeIncrement( pVolumeCB,
                                      VolumeReferenceReason);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRetrieveFileAttributes Increment count on volume %p Reason %u Cnt %d\n",
                       pVolumeCB,
                       VolumeReferenceReason,
-                      lCount);
+                      lCount));
 
         lCount = InterlockedIncrement( &pParentDirEntry->DirOpenReferenceCount);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRetrieveFileAttributes Increment count on %wZ DE %p Ccb %p Cnt %d\n",
                       &pParentDirEntry->NameInformation.FileName,
                       pParentDirEntry,
                       NULL,
-                      lCount);
+                      lCount));
 
         ntStatus = AFSLocateNameEntry( NULL,
                                        NULL,
@@ -6400,12 +5799,12 @@ AFSRetrieveFileAttributes( IN AFSDirectoryCB *ParentDirectoryCB,
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRetrieveFileAttributes Decrement count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
 
             pVolumeCB = pNewVolumeCB;
 
@@ -6424,12 +5823,12 @@ AFSRetrieveFileAttributes( IN AFSDirectoryCB *ParentDirectoryCB,
 
         lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRetrieveFileAttributes DecrementX count on %wZ DE %p Cnt %d\n",
                       &pParentDirEntry->NameInformation.FileName,
                       pParentDirEntry,
-                      lCount);
+                      lCount));
 
         pParentDirEntry = pNewParentDirEntry;
 
@@ -6498,13 +5897,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pDirectoryEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRetrieveFileAttributes Decrement1 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pDirectoryEntry->NameInformation.FileName,
                           pDirectoryEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -6514,13 +5913,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRetrieveFileAttributes Decrement2 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pParentDirEntry->NameInformation.FileName,
                           pParentDirEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -6531,12 +5930,12 @@ try_exit:
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRetrieveFileAttributes Decrement2 count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
         }
 
         if( pNameArray != NULL)
@@ -6625,11 +6024,11 @@ AFSAllocateObjectInfo( IN AFSObjectInfoCB *ParentObjectInfo,
             lCount = AFSObjectInfoIncrement( ParentObjectInfo,
                                              AFS_OBJECT_REFERENCE_CHILD);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSAllocateObjectInfo Increment count on parent object %p Cnt %d\n",
                           ParentObjectInfo,
-                          lCount);
+                          lCount));
         }
 
         //
@@ -6778,6 +6177,7 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB,
     DWORD            ntStatus = STATUS_SUCCESS;
     ULONGLONG        ullIndex;
     AFSObjectInfoCB *pObjectInfo = NULL;
+    LONG             lCount;
 
     if ( AFSIsEqualFID( &VolumeCB->ObjectInformation.FileId, FileId))
     {
@@ -6801,8 +6201,14 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB,
 
     if ( NT_SUCCESS( ntStatus)) {
 
-        AFSObjectInfoIncrement( pObjectInfo,
-                                AFS_OBJECT_REFERENCE_FIND);
+        lCount = AFSObjectInfoIncrement( pObjectInfo,
+                                         AFS_OBJECT_REFERENCE_FIND);
+
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                      AFS_TRACE_LEVEL_VERBOSE,
+                      "AFSFindObjectInfo Decrement count on object %p Cnt %d\n",
+                      pObjectInfo,
+                      lCount));
     }
 
     return pObjectInfo;
@@ -6811,9 +6217,16 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB,
 void
 AFSReleaseObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
 {
+    LONG lCount;
+
+    lCount = AFSObjectInfoDecrement( *ppObjectInfo,
+                                     AFS_OBJECT_REFERENCE_FIND);
 
-    AFSObjectInfoDecrement( *ppObjectInfo,
-                            AFS_OBJECT_REFERENCE_FIND);
+    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                  AFS_TRACE_LEVEL_VERBOSE,
+                  "AFSReleaseObjectInfo Decrement count on object %p Cnt %d\n",
+                  *ppObjectInfo,
+                  lCount));
 
     *ppObjectInfo = NULL;
 }
@@ -6823,13 +6236,13 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
 {
 
     BOOLEAN bAcquiredTreeLock = FALSE;
-    AFSObjectInfoCB *pObjectInfo = (*ppObjectInfo);
-    BOOLEAN bHeldInService = BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_HELD_IN_SERVICE);
+    AFSObjectInfoCB *pObjectInfo = NULL;
+    BOOLEAN bHeldInService;
     AFSObjectInfoCB * pParentObjectInfo = NULL;
     AFSFileID FileId;
     LONG lCount;
 
-    if ( BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_ROOT_VOLUME))
+    if ( BooleanFlagOn( (*ppObjectInfo)->Flags, AFS_OBJECT_ROOT_VOLUME))
     {
 
         //
@@ -6837,14 +6250,22 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
         // embedded in the VolumeCB.
         //
 
-        ASSERT( TRUE);
+        ASSERT( FALSE);
 
         return;
     }
 
-    ASSERT( pObjectInfo->ObjectReferenceCount == 0);
+    pObjectInfo = (AFSObjectInfoCB *) InterlockedCompareExchangePointer( (PVOID *)ppObjectInfo,
+                                                                         NULL,
+                                                                         *ppObjectInfo);
 
-    (*ppObjectInfo) = NULL;
+    if ( pObjectInfo == NULL)
+    {
+
+        return;
+    }
+
+    ASSERT( *ppObjectInfo == NULL);
 
     if( !ExIsResourceAcquiredExclusiveLite( pObjectInfo->VolumeCB->ObjectInfoTree.TreeLock))
     {
@@ -6857,6 +6278,10 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
         bAcquiredTreeLock = TRUE;
     }
 
+    ASSERT( pObjectInfo->ObjectReferenceCount == 0);
+
+    bHeldInService = BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_HELD_IN_SERVICE);
+
     if ( BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
     {
 
@@ -6921,11 +6346,11 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
         lCount = AFSObjectInfoDecrement( pParentObjectInfo,
                                          AFS_OBJECT_REFERENCE_CHILD);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSDeleteObjectInfo Decrement count on parent object %p Cnt %d\n",
                       pParentObjectInfo,
-                      lCount);
+                      lCount));
 
         AFSReleaseObjectInfo( &pParentObjectInfo);
     }
@@ -6942,6 +6367,8 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo)
         FileId = pObjectInfo->FileId;
     }
 
+    ASSERT( pObjectInfo->ObjectReferenceCount == 0);
+
     ExDeleteResourceLite( &pObjectInfo->NonPagedInfo->ObjectInfoLock);
 
     ExDeleteResourceLite( &pObjectInfo->NonPagedInfo->DirectoryNodeHdrLock);
@@ -7141,22 +6568,22 @@ AFSEvaluateRootEntry( IN AFSDirectoryCB *DirectoryCB,
         lCount = AFSVolumeIncrement( pVolumeCB,
                                      VolumeReferenceReason);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSEvaluateRootEntry Increment count on volume %p Reason %u Cnt %d\n",
                       pVolumeCB,
                       VolumeReferenceReason,
-                      lCount);
+                      lCount));
 
         lCount = InterlockedIncrement( &pParentDirEntry->DirOpenReferenceCount);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSEvaluateRootEntry Increment count on %wZ DE %p Ccb %p Cnt %d\n",
                       &pParentDirEntry->NameInformation.FileName,
                       pParentDirEntry,
                       NULL,
-                      lCount);
+                      lCount));
 
         ntStatus = AFSLocateNameEntry( NULL,
                                        NULL,
@@ -7185,12 +6612,12 @@ AFSEvaluateRootEntry( IN AFSDirectoryCB *DirectoryCB,
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSEvaluateRootEntry Decrement count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
 
             pVolumeCB = pNewVolumeCB;
 
@@ -7209,12 +6636,12 @@ AFSEvaluateRootEntry( IN AFSDirectoryCB *DirectoryCB,
 
         lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSEvaluateRootEntry DecrementX count on %wZ DE %p Cnt %d\n",
                       &pParentDirEntry->NameInformation.FileName,
                       pParentDirEntry,
-                      lCount);
+                      lCount));
 
         pParentDirEntry = pNewParentDirEntry;
 
@@ -7245,13 +6672,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pDirectoryEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSEvaluateRootEntry Decrement1 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pDirectoryEntry->NameInformation.FileName,
                           pDirectoryEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -7261,13 +6688,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSEvaluateRootEntry Decrement2 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pParentDirEntry->NameInformation.FileName,
                           pParentDirEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -7284,12 +6711,12 @@ try_exit:
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSEvaluateRootEntry Decrement2 count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
         }
 
         if( pNameArray != NULL)
@@ -7347,11 +6774,11 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                 !BooleanFlagOn( Fcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_DELETED))
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanupEntry Acquiring Fcb lock %p SHARED %08lX\n",
                               &Fcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSAcquireShared( &Fcb->NPFcb->Resource,
                                   TRUE);
@@ -7359,11 +6786,11 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                 if( Fcb->OpenReferenceCount > 0)
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanupEntry Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                   &Fcb->NPFcb->SectionObjectResource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSAcquireExcl( &Fcb->NPFcb->SectionObjectResource,
                                     TRUE);
@@ -7379,7 +6806,7 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                         if( !NT_SUCCESS( stIoStatus.Status))
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                           AFS_TRACE_LEVEL_ERROR,
                                           "AFSCleanupFcb CcFlushCache [1] failure FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                           Fcb->ObjectInformation->FileId.Cell,
@@ -7387,7 +6814,7 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                                           Fcb->ObjectInformation->FileId.Vnode,
                                           Fcb->ObjectInformation->FileId.Unique,
                                           stIoStatus.Status,
-                                          stIoStatus.Information);
+                                          stIoStatus.Information));
 
                             ntStatus = stIoStatus.Status;
                         }
@@ -7401,13 +6828,13 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                                                        FALSE))
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                               AFS_TRACE_LEVEL_WARNING,
                                               "AFSCleanupFcb CcPurgeCacheSection [1] failure FID %08lX-%08lX-%08lX-%08lX\n",
                                               Fcb->ObjectInformation->FileId.Cell,
                                               Fcb->ObjectInformation->FileId.Volume,
                                               Fcb->ObjectInformation->FileId.Vnode,
-                                              Fcb->ObjectInformation->FileId.Unique);
+                                              Fcb->ObjectInformation->FileId.Unique));
 
                                 SetFlag( Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                             }
@@ -7418,32 +6845,32 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
 
                         ntStatus = GetExceptionCode();
 
-                        AFSDbgLogMsg( 0,
+                        AFSDbgTrace(( 0,
                                       0,
                                       "EXCEPTION - AFSCleanupFcb Cc [1] FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                       Fcb->ObjectInformation->FileId.Cell,
                                       Fcb->ObjectInformation->FileId.Volume,
                                       Fcb->ObjectInformation->FileId.Vnode,
                                       Fcb->ObjectInformation->FileId.Unique,
-                                      ntStatus);
+                                      ntStatus));
 
                         SetFlag( Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                     }
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSCleanupFcb Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                                   &Fcb->NPFcb->SectionObjectResource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSReleaseResource( &Fcb->NPFcb->SectionObjectResource);
                 }
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanupEntry Releasing Fcb lock %p SHARED %08lX\n",
                               &Fcb->NPFcb->Resource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSReleaseResource( &Fcb->NPFcb->Resource);
 
@@ -7525,11 +6952,11 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                                         (AFS_SERVER_PURGE_SLEEP * pControlDeviceExt->Specific.Control.FcbPurgeTimeCount.QuadPart))))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSCleanupFcb Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                           &Fcb->NPFcb->SectionObjectResource,
-                          PsGetCurrentThread());
+                          PsGetCurrentThread()));
 
             if ( AFSAcquireExcl( &Fcb->NPFcb->SectionObjectResource, ForceFlush))
             {
@@ -7545,7 +6972,7 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                     if( !NT_SUCCESS( stIoStatus.Status))
                     {
 
-                        AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                        AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                       AFS_TRACE_LEVEL_ERROR,
                                       "AFSCleanupFcb CcFlushCache [2] failure FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
                                       Fcb->ObjectInformation->FileId.Cell,
@@ -7553,7 +6980,7 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                                       Fcb->ObjectInformation->FileId.Vnode,
                                       Fcb->ObjectInformation->FileId.Unique,
                                       stIoStatus.Status,
-                                      stIoStatus.Information);
+                                      stIoStatus.Information));
 
                         ntStatus = stIoStatus.Status;
                     }
@@ -7568,13 +6995,13 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
                                                    FALSE))
                         {
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                           AFS_TRACE_LEVEL_WARNING,
                                           "AFSCleanupFcb CcPurgeCacheSection [2] failure FID %08lX-%08lX-%08lX-%08lX\n",
                                           Fcb->ObjectInformation->FileId.Cell,
                                           Fcb->ObjectInformation->FileId.Volume,
                                           Fcb->ObjectInformation->FileId.Vnode,
-                                          Fcb->ObjectInformation->FileId.Unique);
+                                          Fcb->ObjectInformation->FileId.Unique));
 
                             SetFlag( Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                         }
@@ -7585,21 +7012,21 @@ AFSCleanupFcb( IN AFSFcb *Fcb,
 
                     ntStatus = GetExceptionCode();
 
-                    AFSDbgLogMsg( 0,
+                    AFSDbgTrace(( 0,
                                   0,
                                   "EXCEPTION - AFSCleanupFcb Cc [2] FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                   Fcb->ObjectInformation->FileId.Cell,
                                   Fcb->ObjectInformation->FileId.Volume,
                                   Fcb->ObjectInformation->FileId.Vnode,
                                   Fcb->ObjectInformation->FileId.Unique,
-                                  ntStatus);
+                                  ntStatus));
                 }
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSCleanupFcb Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                               &Fcb->NPFcb->SectionObjectResource,
-                              PsGetCurrentThread());
+                              PsGetCurrentThread()));
 
                 AFSReleaseResource( &Fcb->NPFcb->SectionObjectResource);
 
@@ -7906,11 +7333,11 @@ AFSRemoveNameEntry( IN AFSObjectInfoCB *ParentObjectInfo,
         if( BooleanFlagOn( DirEntry->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRemoveNameEntry DE %p for %wZ has NOT_IN flag set\n",
                           DirEntry,
-                          &DirEntry->NameInformation.FileName);
+                          &DirEntry->NameInformation.FileName));
 
             try_return( ntStatus);
         }
@@ -7921,20 +7348,20 @@ AFSRemoveNameEntry( IN AFSObjectInfoCB *ParentObjectInfo,
         // Remove the entry from the parent tree
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRemoveNameEntry DE %p for %wZ removing from case sensitive tree\n",
                       DirEntry,
-                      &DirEntry->NameInformation.FileName);
+                      &DirEntry->NameInformation.FileName));
 
         AFSRemoveCaseSensitiveDirEntry( &ParentObjectInfo->Specific.Directory.DirectoryNodeHdr.CaseSensitiveTreeHead,
                                         DirEntry);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRemoveNameEntry DE %p for %wZ removing from case insensitive tree\n",
                       DirEntry,
-                      &DirEntry->NameInformation.FileName);
+                      &DirEntry->NameInformation.FileName));
 
         AFSRemoveCaseInsensitiveDirEntry( &ParentObjectInfo->Specific.Directory.DirectoryNodeHdr.CaseInsensitiveTreeHead,
                                           DirEntry);
@@ -7946,11 +7373,11 @@ AFSRemoveNameEntry( IN AFSObjectInfoCB *ParentObjectInfo,
             // From the short name tree
             //
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSRemoveNameEntry DE %p for %wZ removing from shortname tree\n",
                           DirEntry,
-                          &DirEntry->NameInformation.FileName);
+                          &DirEntry->NameInformation.FileName));
 
             AFSRemoveShortNameDirEntry( &ParentObjectInfo->Specific.Directory.ShortNameTree,
                                         DirEntry);
@@ -7958,11 +7385,11 @@ AFSRemoveNameEntry( IN AFSObjectInfoCB *ParentObjectInfo,
             ClearFlag( DirEntry->Flags, AFS_DIR_ENTRY_INSERTED_SHORT_NAME);
         }
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSRemoveNameEntry DE %p for %wZ setting NOT_IN flag\n",
                       DirEntry,
-                      &DirEntry->NameInformation.FileName);
+                      &DirEntry->NameInformation.FileName));
 
         SetFlag( DirEntry->Flags, AFS_DIR_ENTRY_NOT_IN_PARENT_TREE);
 
@@ -8005,9 +7432,9 @@ AFSGetAuthenticationId()
             if( hToken == NULL)
             {
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_NETWORK_PROVIDER,
+                AFSDbgTrace(( AFS_SUBSYSTEM_NETWORK_PROVIDER,
                               AFS_TRACE_LEVEL_ERROR,
-                              "AFSGetAuthenticationId Failed to retrieve impersonation or primary token\n");
+                              "AFSGetAuthenticationId Failed to retrieve impersonation or primary token\n"));
 
                 try_return( ntStatus);
             }
@@ -8022,9 +7449,10 @@ AFSGetAuthenticationId()
         if( !NT_SUCCESS( ntStatus))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_NETWORK_PROVIDER,
+            AFSDbgTrace(( AFS_SUBSYSTEM_NETWORK_PROVIDER,
                           AFS_TRACE_LEVEL_ERROR,
-                          "AFSGetAuthenticationId Failed to retrieve information Status %08lX\n", ntStatus);
+                          "AFSGetAuthenticationId Failed to retrieve information Status %08lX\n",
+                          ntStatus));
 
             try_return( ntStatus);
         }
@@ -8032,10 +7460,10 @@ AFSGetAuthenticationId()
         liAuthId.HighPart = pTokenInfo->AuthenticationId.HighPart;
         liAuthId.LowPart = pTokenInfo->AuthenticationId.LowPart;
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_NETWORK_PROVIDER,
+        AFSDbgTrace(( AFS_SUBSYSTEM_NETWORK_PROVIDER,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSGetAuthenticationId Successfully retrieved authentication ID %I64X\n",
-                      liAuthId.QuadPart);
+                      liAuthId.QuadPart));
 
 try_exit:
 
@@ -8212,6 +7640,8 @@ AFSInitializeLibrary( IN AFSLibraryInitCB *LibraryInit)
 
         AFSDbgLogMsg = LibraryInit->AFSDbgLogMsg;
 
+        AFSDebugTraceFnc = AFSDbgLogMsg;
+
         AFSAddConnectionEx = LibraryInit->AFSAddConnectionEx;
 
         AFSExAllocatePoolWithTag = LibraryInit->AFSExAllocatePoolWithTag;
@@ -8260,10 +7690,10 @@ AFSInitializeLibrary( IN AFSLibraryInitCB *LibraryInit)
         if( !NT_SUCCESS( ntStatus))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSInitializeLibrary AFSInitVolume failure %08lX\n",
-                          ntStatus);
+                          ntStatus));
 
             try_return( ntStatus);
         }
@@ -8274,19 +7704,19 @@ AFSInitializeLibrary( IN AFSLibraryInitCB *LibraryInit)
         if( !NT_SUCCESS( ntStatus))
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
                           AFS_TRACE_LEVEL_ERROR,
                           "AFSInitializeLibrary AFSInitRootFcb failure %08lX\n",
-                          ntStatus);
+                          ntStatus));
 
             lCount = AFSVolumeDecrement( AFSGlobalRoot,
                                          AFS_VOLUME_REFERENCE_GLOBAL_ROOT);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSInitializeLibrary Decrement count on volume %p Cnt %d\n",
                           AFSGlobalRoot,
-                          lCount);
+                          lCount));
 
             AFSReleaseResource( AFSGlobalRoot->VolumeLock);
 
@@ -8317,11 +7747,11 @@ AFSInitializeLibrary( IN AFSLibraryInitCB *LibraryInit)
         lCount = AFSVolumeDecrement( AFSGlobalRoot,
                                      AFS_VOLUME_REFERENCE_GLOBAL_ROOT);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSInitializeLibrary Decrement count on volume %p Cnt %d\n",
                       AFSGlobalRoot,
-                      lCount);
+                      lCount));
 
         AFSReleaseResource( AFSGlobalRoot->VolumeLock);
 
@@ -8352,7 +7782,17 @@ AFSCloseLibrary()
             lCount = AFSObjectInfoDecrement( AFSGlobalDotDirEntry->ObjectInformation,
                                              AFS_OBJECT_REFERENCE_GLOBAL);
 
-            AFSDeleteObjectInfo( &AFSGlobalDotDirEntry->ObjectInformation);
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSCloseLibrary Decrement count on parent object %p Cnt %d\n",
+                          AFSGlobalDotDirEntry->ObjectInformation,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &AFSGlobalDotDirEntry->ObjectInformation);
+            }
 
             ExDeleteResourceLite( &AFSGlobalDotDirEntry->NonPaged->Lock);
 
@@ -8369,7 +7809,17 @@ AFSCloseLibrary()
             lCount = AFSObjectInfoDecrement( AFSGlobalDotDotDirEntry->ObjectInformation,
                                              AFS_OBJECT_REFERENCE_GLOBAL);
 
-            AFSDeleteObjectInfo( &AFSGlobalDotDotDirEntry->ObjectInformation);
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                          AFS_TRACE_LEVEL_VERBOSE,
+                          "AFSCloseLibrary Decrement count on parent object %p Cnt %d\n",
+                          AFSGlobalDotDotDirEntry->ObjectInformation,
+                          lCount));
+
+            if ( lCount == 0)
+            {
+
+                AFSDeleteObjectInfo( &AFSGlobalDotDotDirEntry->ObjectInformation);
+            }
 
             ExDeleteResourceLite( &AFSGlobalDotDotDirEntry->NonPaged->Lock);
 
@@ -8393,7 +7843,17 @@ AFSCloseLibrary()
                 lCount = AFSObjectInfoDecrement( pDirNode->ObjectInformation,
                                                  AFS_OBJECT_REFERENCE_GLOBAL);
 
-                AFSDeleteObjectInfo( &pDirNode->ObjectInformation);
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                              AFS_TRACE_LEVEL_VERBOSE,
+                              "AFSCloseLibrary Decrement count on parent object %p Cnt %d\n",
+                              pDirNode->ObjectInformation,
+                              lCount));
+
+                if ( lCount == 0)
+                {
+
+                    AFSDeleteObjectInfo( &pDirNode->ObjectInformation);
+                }
 
                 ExDeleteResourceLite( &pDirNode->NonPaged->Lock);
 
@@ -8500,12 +7960,12 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
                 lCount = AFSVolumeIncrement( pVolumeCB,
                                              VolumeReferenceReason);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSGetObjectStatus Increment count on volume %p Reason %u Cnt %d\n",
                               pVolumeCB,
                               VolumeReferenceReason,
-                              lCount);
+                              lCount));
             }
 
             AFSReleaseResource( &pDevExt->Specific.RDR.VolumeTreeLock);
@@ -8524,11 +7984,11 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
                 lCount = AFSObjectInfoIncrement( pObjectInfo,
                                                  AFS_OBJECT_REFERENCE_STATUS);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSGetObjectStatus Increment1 count on object %p Cnt %d\n",
                               pObjectInfo,
-                              lCount);
+                              lCount));
             }
             else
             {
@@ -8552,11 +8012,11 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
                     lCount = AFSObjectInfoIncrement( pObjectInfo,
                                                      AFS_OBJECT_REFERENCE_STATUS);
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSGetObjectStatus Increment2 count on object %p Cnt %d\n",
                                   pObjectInfo,
-                                  lCount);
+                                  lCount));
                 }
 
                 AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
@@ -8594,10 +8054,10 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
                                          &AFSServerName,
                                          TRUE) != 0)
             {
-                AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_ERROR,
                               "AFSGetObjectStatus Name %wZ contains invalid server name\n",
-                              &uniFullPathName);
+                              &uniFullPathName));
 
                 try_return( ntStatus = STATUS_OBJECT_PATH_INVALID);
             }
@@ -8631,22 +8091,22 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
             lCount = AFSVolumeIncrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Increment2 count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
 
             lCount = InterlockedIncrement( &pParentDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Increment count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pParentDirEntry->NameInformation.FileName,
                           pParentDirEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ntStatus = AFSLocateNameEntry( NULL,
                                            NULL,
@@ -8677,12 +8137,12 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
                 lCount = AFSVolumeDecrement( pVolumeCB,
                                              VolumeReferenceReason);
 
-                AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+                AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                               AFS_TRACE_LEVEL_VERBOSE,
                               "AFSGetObjectStatus Decrement count on volume %p Reason %u Cnt %d\n",
                               pVolumeCB,
                               VolumeReferenceReason,
-                              lCount);
+                              lCount));
 
                 pVolumeCB = pNewVolumeCB;
 
@@ -8701,12 +8161,12 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
 
             lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus DecrementX count on %wZ DE %p Cnt %d\n",
                           &pParentDirEntry->NameInformation.FileName,
                           pParentDirEntry,
-                          lCount);
+                          lCount));
 
             pParentDirEntry = pNewParentDirEntry;
 
@@ -8726,11 +8186,11 @@ AFSGetObjectStatus( IN AFSGetStatusInfoCB *GetStatusInfo,
             lCount = AFSObjectInfoIncrement( pObjectInfo,
                                              AFS_OBJECT_REFERENCE_STATUS);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Increment3 count on object %p Cnt %d\n",
                           pObjectInfo,
-                          lCount);
+                          lCount));
         }
 
         //
@@ -8780,13 +8240,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pDirectoryEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Decrement1 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pDirectoryEntry->NameInformation.FileName,
                           pDirectoryEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -8796,13 +8256,13 @@ try_exit:
 
             lCount = InterlockedDecrement( &pParentDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Decrement2 count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pParentDirEntry->NameInformation.FileName,
                           pParentDirEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -8813,11 +8273,11 @@ try_exit:
             lCount = AFSObjectInfoDecrement( pObjectInfo,
                                              AFS_OBJECT_REFERENCE_STATUS);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Decrement count on object %p Cnt %d\n",
                           pObjectInfo,
-                          lCount);
+                          lCount));
         }
 
         if( pVolumeCB != NULL)
@@ -8826,12 +8286,12 @@ try_exit:
             lCount = AFSVolumeDecrement( pVolumeCB,
                                          VolumeReferenceReason);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_VOLUME_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSGetObjectStatus Decrement4 count on volume %p Reason %u Cnt %d\n",
                           pVolumeCB,
                           VolumeReferenceReason,
-                          lCount);
+                          lCount));
         }
 
         if( pNameArray != NULL)
@@ -8862,10 +8322,10 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
         // Search for the entry in the parent
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE_2,
                       "AFSCheckSymlinkAccess Searching for entry %wZ case sensitive\n",
-                      ComponentName);
+                      ComponentName));
 
         ulCRC = AFSGenerateCRC( ComponentName,
                                 FALSE);
@@ -8884,10 +8344,10 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
             // Missed so perform a case insensitive lookup
             //
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE_2,
                           "AFSCheckSymlinkAccess Searching for entry %wZ case insensitive\n",
-                          ComponentName);
+                          ComponentName));
 
             ulCRC = AFSGenerateCRC( ComponentName,
                                     TRUE);
@@ -8910,10 +8370,10 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
                                             NULL))
                 {
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE_2,
                                   "AFSCheckSymlinkAccess Searching for entry %wZ short name\n",
-                                  ComponentName);
+                                  ComponentName));
 
                     AFSLocateShortNameDirEntry( ParentDirectoryCB->ObjectInformation->Specific.Directory.ShortNameTree,
                                                 ulCRC,
@@ -8926,13 +8386,13 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
         {
             lCount = InterlockedIncrement( &pDirEntry->DirOpenReferenceCount);
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                           AFS_TRACE_LEVEL_VERBOSE,
                           "AFSCheckSymlinkAccess Increment count on %wZ DE %p Ccb %p Cnt %d\n",
                           &pDirEntry->NameInformation.FileName,
                           pDirEntry,
                           NULL,
-                          lCount);
+                          lCount));
 
             ASSERT( lCount >= 0);
         }
@@ -8942,11 +8402,11 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
         if( pDirEntry == NULL)
         {
 
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+            AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                           AFS_TRACE_LEVEL_VERBOSE_2,
                           "AFSCheckSymlinkAccess Failed to locate entry %wZ ntStatus %08X\n",
                           ComponentName,
-                          STATUS_OBJECT_NAME_NOT_FOUND);
+                          STATUS_OBJECT_NAME_NOT_FOUND));
 
             try_return( ntStatus = STATUS_OBJECT_NAME_NOT_FOUND);
         }
@@ -8956,22 +8416,22 @@ AFSCheckSymlinkAccess( IN AFSDirectoryCB *ParentDirectoryCB,
         // denied.
         //
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_FILE_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE_2,
                       "AFSCheckSymlinkAccess Failing symlink access to entry %wZ REPARSE_POINT_NOT_RESOLVED\n",
-                      ComponentName);
+                      ComponentName));
 
         ntStatus = STATUS_REPARSE_POINT_NOT_RESOLVED;
 
         lCount = InterlockedDecrement( &pDirEntry->DirOpenReferenceCount);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSCheckSymlinkAccess Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
                       &pDirEntry->NameInformation.FileName,
                       pDirEntry,
                       NULL,
-                      lCount);
+                      lCount));
 
         ASSERT( lCount >= 0);
 
@@ -9081,6 +8541,7 @@ AFSCreateDefaultSecurityDescriptor()
         if( pWorldSID == NULL)
         {
             AFSPrint( "AFSCreateDefaultSecurityDescriptor unable to allocate World SID\n");
+
             try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
         }
 
@@ -9521,11 +8982,11 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
 
                     bLocked = TRUE;
 
-                    AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                    AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                   AFS_TRACE_LEVEL_VERBOSE,
                                   "AFSPerformObjectInvalidate Acquiring Fcb extents lock %p SHARED %08lX\n",
                                   &ObjectInfo->Fcb->NPFcb->Specific.File.ExtentsResource,
-                                  PsGetCurrentThread());
+                                  PsGetCurrentThread()));
 
                     AFSAcquireShared( &ObjectInfo->Fcb->NPFcb->Specific.File.ExtentsResource,
                                       TRUE);
@@ -9573,11 +9034,11 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                             else
                             {
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSPerformObjectInvalidation Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                               &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                              PsGetCurrentThread());
+                                              PsGetCurrentThread()));
 
                                 AFSAcquireExcl( &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                                 TRUE);
@@ -9596,13 +9057,13 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                                                               FALSE))
                                     {
 
-                                        AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                        AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                       AFS_TRACE_LEVEL_WARNING,
                                                       "AFSPerformObjectInvalidation CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                                       ObjectInfo->FileId.Cell,
                                                       ObjectInfo->FileId.Volume,
                                                       ObjectInfo->FileId.Vnode,
-                                                      ObjectInfo->FileId.Unique);
+                                                      ObjectInfo->FileId.Unique));
 
                                         SetFlag( ObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                                     }
@@ -9617,23 +9078,23 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
 
                                     ntStatus = GetExceptionCode();
 
-                                    AFSDbgLogMsg( 0,
+                                    AFSDbgTrace(( 0,
                                                   0,
                                                   "EXCEPTION - AFSPerformObjectInvalidation FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX\n",
                                                   ObjectInfo->FileId.Cell,
                                                   ObjectInfo->FileId.Volume,
                                                   ObjectInfo->FileId.Vnode,
                                                   ObjectInfo->FileId.Unique,
-                                                  ntStatus);
+                                                  ntStatus));
 
                                     SetFlag( ObjectInfo->Fcb->Flags, AFS_FCB_FLAG_PURGE_ON_CLOSE);
                                 }
 
-                                AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                                AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                               AFS_TRACE_LEVEL_VERBOSE,
                                               "AFSPerformObjectInvalidation Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                                               &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                              PsGetCurrentThread());
+                                              PsGetCurrentThread()));
 
                                 AFSReleaseResource( &ObjectInfo->Fcb->NPFcb->SectionObjectResource);
                             }
@@ -9645,11 +9106,11 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
 
                             bExtentsLocked = FALSE;
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSPerformObjectInvalidation Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
                                           &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSAcquireExcl( &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
                                             TRUE);
@@ -9698,13 +9159,13 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                                                                       FALSE))
                                             {
 
-                                                AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                                AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                               AFS_TRACE_LEVEL_WARNING,
                                                               "AFSPerformObjectInvalidation [1] CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                                               ObjectInfo->FileId.Cell,
                                                               ObjectInfo->FileId.Volume,
                                                               ObjectInfo->FileId.Vnode,
-                                                              ObjectInfo->FileId.Unique);
+                                                              ObjectInfo->FileId.Unique));
 
                                                 bPurgeOnClose = TRUE;
                                             }
@@ -9756,13 +9217,13 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                                                                           FALSE))
                                                 {
 
-                                                    AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                                    AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                                   AFS_TRACE_LEVEL_WARNING,
                                                                   "AFSPerformObjectInvalidation [2] CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                                                   ObjectInfo->FileId.Cell,
                                                                   ObjectInfo->FileId.Volume,
                                                                   ObjectInfo->FileId.Vnode,
-                                                                  ObjectInfo->FileId.Unique);
+                                                                  ObjectInfo->FileId.Unique));
 
                                                     bPurgeOnClose = TRUE;
                                                 }
@@ -9796,13 +9257,13 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                                                                               FALSE))
                                                     {
 
-                                                        AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                                        AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                                       AFS_TRACE_LEVEL_WARNING,
                                                                       "AFSPerformObjectInvalidation [3] CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                                                       ObjectInfo->FileId.Cell,
                                                                       ObjectInfo->FileId.Volume,
                                                                       ObjectInfo->FileId.Vnode,
-                                                                      ObjectInfo->FileId.Unique);
+                                                                      ObjectInfo->FileId.Unique));
 
                                                         bPurgeOnClose = TRUE;
                                                     }
@@ -9830,13 +9291,13 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
                                                                   FALSE))
                                         {
 
-                                            AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+                                            AFSDbgTrace(( AFS_SUBSYSTEM_IO_PROCESSING,
                                                           AFS_TRACE_LEVEL_WARNING,
                                                           "AFSPerformObjectInvalidation [4] CcPurgeCacheSection failure FID %08lX-%08lX-%08lX-%08lX\n",
                                                           ObjectInfo->FileId.Cell,
                                                           ObjectInfo->FileId.Volume,
                                                           ObjectInfo->FileId.Vnode,
-                                                          ObjectInfo->FileId.Unique);
+                                                          ObjectInfo->FileId.Unique));
 
                                             bPurgeOnClose = TRUE;
                                         }
@@ -9859,21 +9320,21 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
 
                                 ntStatus = GetExceptionCode();
 
-                                AFSDbgLogMsg( 0,
+                                AFSDbgTrace(( 0,
                                               0,
                                               "EXCEPTION - AFSPerformObjectInvalidation FID %08lX-%08lX-%08lX-%08lX Status %08lX\n",
                                               ObjectInfo->FileId.Cell,
                                               ObjectInfo->FileId.Volume,
                                               ObjectInfo->FileId.Vnode,
                                               ObjectInfo->FileId.Unique,
-                                              ntStatus);
+                                              ntStatus));
                             }
 
-                            AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+                            AFSDbgTrace(( AFS_SUBSYSTEM_LOCK_PROCESSING,
                                           AFS_TRACE_LEVEL_VERBOSE,
                                           "AFSPerformObjectInvalidation Releasing Fcb SectionObject lock %p EXCL %08lX\n",
                                           &ObjectInfo->Fcb->NPFcb->SectionObjectResource,
-                                          PsGetCurrentThread());
+                                          PsGetCurrentThread()));
 
                             AFSReleaseResource( &ObjectInfo->Fcb->NPFcb->SectionObjectResource);
                         }
@@ -9911,11 +9372,11 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo,
         lCount = AFSObjectInfoDecrement( ObjectInfo,
                                          AFS_OBJECT_REFERENCE_INVALIDATION);
 
-        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+        AFSDbgTrace(( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
                       "AFSPerformObjectInvalidation Decrement count on object %p Cnt %d\n",
                       ObjectInfo,
-                      lCount);
+                      lCount));
     }
 
     return ntStatus;