Windows: Trace DirectoryCB allocations
[openafs.git] / src / WINNT / afsrdr / kernel / lib / AFSWorker.cpp
index bd90b46..4eee3a0 100644 (file)
@@ -320,7 +320,7 @@ AFSRemoveWorkerPool()
     //
     // Loop through the IO workers shutting them down in two stages.
     // First, clear AFS_WORKER_PROCESS_REQUESTS so that workers
-    // stop processing requests.  Second, call AFSShutdownWorkerThread()
+    // stop processing requests.  Second, call AFSShutdownIOWorkerThread()
     // to wake the workers and wait for them to exit.
     //
 
@@ -380,7 +380,7 @@ AFSInitVolumeWorker( IN AFSVolumeCB *VolumeCB)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSWorkQueueContext *pWorker = &VolumeCB->VolumeWorkerContext;
+    AFSWorkQueueContext *pWorker = &VolumeCB->NonPagedVcb->VolumeWorkerContext;
     HANDLE hThread;
     AFSDeviceExt *pControlDeviceExt = (AFSDeviceExt *)AFSControlDeviceObject->DeviceExtension;
     PKSTART_ROUTINE pStartRoutine = NULL;
@@ -389,16 +389,13 @@ AFSInitVolumeWorker( IN AFSVolumeCB *VolumeCB)
     __Enter
     {
 
-        if( VolumeCB == AFSGlobalRoot)
+        if ( VolumeCB != AFSGlobalRoot)
         {
 
-            pStartRoutine = AFSPrimaryVolumeWorkerThread;
+            return STATUS_INVALID_PARAMETER;
         }
-        else
-        {
 
-            pStartRoutine = AFSVolumeWorkerThread;
-        }
+        pStartRoutine = AFSPrimaryVolumeWorkerThread;
 
         //
         // Initialize the worker thread
@@ -530,23 +527,25 @@ AFSShutdownVolumeWorker( IN AFSVolumeCB *VolumeCB)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSWorkQueueContext *pWorker = &VolumeCB->VolumeWorkerContext;
+    AFSWorkQueueContext *pWorker = &VolumeCB->NonPagedVcb->VolumeWorkerContext;
 
-    if( pWorker->WorkerThreadObject != NULL &&
-        BooleanFlagOn( pWorker->State, AFS_WORKER_INITIALIZED))
-    {
+    //
+    // Clear the 'keep processing' flag
+    //
 
-        //
-        // Clear the 'keep processing' flag
-        //
+    ClearFlag( pWorker->State, AFS_WORKER_PROCESS_REQUESTS);
 
-        ClearFlag( pWorker->State, AFS_WORKER_PROCESS_REQUESTS);
+    if( pWorker->WorkerThreadObject != NULL)
+    {
+        while ( BooleanFlagOn( pWorker->State, AFS_WORKER_INITIALIZED) )
+        {
 
-        ntStatus = KeWaitForSingleObject( pWorker->WorkerThreadObject,
-                                          Executive,
-                                          KernelMode,
-                                          FALSE,
-                                          NULL);
+            ntStatus = KeWaitForSingleObject( pWorker->WorkerThreadObject,
+                                              Executive,
+                                              KernelMode,
+                                              FALSE,
+                                              NULL);
+        }
 
         ObDereferenceObject( pWorker->WorkerThreadObject);
 
@@ -575,23 +574,26 @@ AFSShutdownWorkerThread( IN AFSWorkQueueContext *PoolContext)
     NTSTATUS ntStatus = STATUS_SUCCESS;
     AFSDeviceExt *pDeviceExt = (AFSDeviceExt *)AFSLibraryDeviceObject->DeviceExtension;
 
-    if( PoolContext->WorkerThreadObject != NULL &&
-        BooleanFlagOn( PoolContext->State, AFS_WORKER_INITIALIZED))
+    if( PoolContext->WorkerThreadObject != NULL)
     {
 
-        //
-        // Wake up the thread if it is a sleep
-        //
+        while ( BooleanFlagOn( PoolContext->State, AFS_WORKER_INITIALIZED) )
+        {
 
-        KeSetEvent( &pDeviceExt->Specific.Library.WorkerQueueHasItems,
-                    0,
-                    FALSE);
+            //
+            // Wake up the thread if it is a sleep
+            //
 
-        ntStatus = KeWaitForSingleObject( PoolContext->WorkerThreadObject,
-                                          Executive,
-                                          KernelMode,
-                                          FALSE,
-                                          NULL);
+            KeSetEvent( &pDeviceExt->Specific.Library.WorkerQueueHasItems,
+                        0,
+                        FALSE);
+
+            ntStatus = KeWaitForSingleObject( PoolContext->WorkerThreadObject,
+                                              Executive,
+                                              KernelMode,
+                                              FALSE,
+                                              NULL);
+        }
 
         ObDereferenceObject( PoolContext->WorkerThreadObject);
 
@@ -620,23 +622,26 @@ AFSShutdownIOWorkerThread( IN AFSWorkQueueContext *PoolContext)
     NTSTATUS ntStatus = STATUS_SUCCESS;
     AFSDeviceExt *pDeviceExt = (AFSDeviceExt *)AFSLibraryDeviceObject->DeviceExtension;
 
-    if( PoolContext->WorkerThreadObject != NULL &&
-        BooleanFlagOn( PoolContext->State, AFS_WORKER_INITIALIZED))
+    if( PoolContext->WorkerThreadObject != NULL)
     {
 
-        //
-        // Wake up the thread if it is a sleep
-        //
+        while ( BooleanFlagOn( PoolContext->State, AFS_WORKER_INITIALIZED) )
+        {
 
-        KeSetEvent( &pDeviceExt->Specific.Library.IOWorkerQueueHasItems,
-                    0,
-                    FALSE);
+            //
+            // Wake up the thread if it is a sleep
+            //
 
-        ntStatus = KeWaitForSingleObject( PoolContext->WorkerThreadObject,
-                                          Executive,
-                                          KernelMode,
-                                          FALSE,
-                                          NULL);
+            KeSetEvent( &pDeviceExt->Specific.Library.IOWorkerQueueHasItems,
+                        0,
+                        FALSE);
+
+            ntStatus = KeWaitForSingleObject( PoolContext->WorkerThreadObject,
+                                              Executive,
+                                              KernelMode,
+                                              FALSE,
+                                              NULL);
+        }
 
         ObDereferenceObject( PoolContext->WorkerThreadObject);
 
@@ -948,20 +953,19 @@ void
 AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 {
 
+    UNREFERENCED_PARAMETER(Context);
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSWorkQueueContext *pPoolContext = (AFSWorkQueueContext *)&AFSGlobalRoot->VolumeWorkerContext;
+    AFSWorkQueueContext *pPoolContext = (AFSWorkQueueContext *)&AFSGlobalRoot->NonPagedVcb->VolumeWorkerContext;
     AFSDeviceExt *pControlDeviceExt = NULL;
     AFSDeviceExt *pRDRDeviceExt = NULL;
     LARGE_INTEGER DueTime;
     LONG TimeOut;
     KTIMER Timer;
-    BOOLEAN bFoundOpenEntry = FALSE;
     AFSObjectInfoCB *pCurrentObject = NULL, *pNextObject = NULL, *pCurrentChildObject = NULL;
     AFSDirectoryCB *pCurrentDirEntry = NULL, *pNextDirEntry = NULL;
     BOOLEAN bReleaseVolumeLock = FALSE;
     AFSVolumeCB *pVolumeCB = NULL, *pNextVolume = NULL;
     AFSFcb *pFcb = NULL;
-    LONG lFileType;
     LARGE_INTEGER liCurrentTime;
     BOOLEAN bVolumeObject = FALSE;
     BOOLEAN bFcbBusy = FALSE;
@@ -1081,6 +1085,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                 if( pVolumeCB->ObjectInfoListHead == NULL &&
                     pVolumeCB->DirectoryCB->DirOpenReferenceCount <= 0 &&
+                    pVolumeCB->DirectoryCB->NameArrayReferenceCount <= 0 &&
                     pVolumeCB->VolumeReferenceCount == 1 &&
                     ( pVolumeCB->RootFcb == NULL ||
                       pVolumeCB->RootFcb->OpenReferenceCount == 0) &&
@@ -1212,6 +1217,11 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                                         AFSExFreePoolWithTag( pCurrentChildObject->Specific.Directory.PIOCtlDirectoryCB->NonPaged, AFS_DIR_ENTRY_NP_TAG);
 
+                                        AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+                                                      AFS_TRACE_LEVEL_VERBOSE,
+                                                      "AFSPrimaryVolumeWorkerThread (pioctl) AFS_DIR_ENTRY_TAG deallocating %p\n",
+                                                      pCurrentObject->Specific.Directory.PIOCtlDirectoryCB);
+
                                         AFSExFreePoolWithTag( pCurrentObject->Specific.Directory.PIOCtlDirectoryCB, AFS_DIR_ENTRY_TAG);
                                     }
 
@@ -1219,7 +1229,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                                     AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                                                   AFS_TRACE_LEVEL_VERBOSE,
-                                                  "AFSPrimaryVolumeWorkerThread Deleting deleted object %08lX\n",
+                                                  "AFSPrimaryVolumeWorkerThread Deleting deleted object %p\n",
                                                   pCurrentObject);
 
                                     AFSDeleteObjectInfo( pCurrentObject);
@@ -1273,6 +1283,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                         {
 
                             if( pCurrentDirEntry->DirOpenReferenceCount > 0 ||
+                                pCurrentDirEntry->NameArrayReferenceCount > 0 ||
                                 ( pCurrentDirEntry->ObjectInformation->Fcb != NULL &&
                                   pCurrentDirEntry->ObjectInformation->Fcb->OpenReferenceCount > 0) ||
                                 liCurrentTime.QuadPart <= pCurrentDirEntry->ObjectInformation->LastAccessCount.QuadPart ||
@@ -1338,6 +1349,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                                 {
 
                                     if( pCurrentDirEntry->DirOpenReferenceCount > 0 ||
+                                        pCurrentDirEntry->NameArrayReferenceCount > 0 ||
                                         ( pCurrentDirEntry->ObjectInformation->Fcb != NULL &&
                                           pCurrentDirEntry->ObjectInformation->Fcb->OpenReferenceCount > 0) ||
                                         liCurrentTime.QuadPart <= pCurrentDirEntry->ObjectInformation->LastAccessCount.QuadPart ||
@@ -1382,7 +1394,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                                     AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
                                                   AFS_TRACE_LEVEL_VERBOSE,
-                                                  "AFSPrimaryVolumeWorkerThread Deleting DE %wZ Object %08lX\n",
+                                                  "AFSPrimaryVolumeWorkerThread Deleting DE %wZ Object %p\n",
                                                   &pCurrentDirEntry->NameInformation.FileName,
                                                   pCurrentChildObject);
 
@@ -1395,7 +1407,14 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                                     // with an invalidation call from the service during AFSCleanupFcb
                                     //
 
-                                    lCount = AFSObjectInfoIncrement( pCurrentChildObject);
+                                    lCount = AFSObjectInfoIncrement( pCurrentChildObject,
+                                                                     AFS_OBJECT_REFERENCE_WORKER);
+
+                                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                                                  AFS_TRACE_LEVEL_VERBOSE,
+                                                  "AFSPrimaryVolumeWorkerThread Increment count on object %p Cnt %d\n",
+                                                  pCurrentChildObject,
+                                                  lCount);
 
                                     if( lCount == 1 &&
                                         pCurrentChildObject->Fcb != NULL &&
@@ -1432,7 +1451,14 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                                                         TRUE);
                                     }
 
-                                    lCount = AFSObjectInfoDecrement( pCurrentChildObject);
+                                    lCount = AFSObjectInfoDecrement( pCurrentChildObject,
+                                                                     AFS_OBJECT_REFERENCE_WORKER);
+
+                                    AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                                                  AFS_TRACE_LEVEL_VERBOSE,
+                                                  "AFSPrimaryVolumeWorkerThread Decrement1 count on object %p Cnt %d\n",
+                                                  pCurrentChildObject,
+                                                  lCount);
 
                                     AFSAcquireExcl( &pCurrentChildObject->NonPagedInfo->ObjectInfoLock,
                                                     TRUE);
@@ -1459,6 +1485,11 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                                             AFSExFreePoolWithTag( pCurrentChildObject->Specific.Directory.PIOCtlDirectoryCB->NonPaged, AFS_DIR_ENTRY_NP_TAG);
 
+                                            AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_ALLOCATION,
+                                                          AFS_TRACE_LEVEL_VERBOSE,
+                                                          "AFSPrimaryVolumeWorkerThread (pioctl) AFS_DIR_ENTRY_TAG deallocating %p\n",
+                                                          pCurrentChildObject->Specific.Directory.PIOCtlDirectoryCB);
+
                                             AFSExFreePoolWithTag( pCurrentChildObject->Specific.Directory.PIOCtlDirectoryCB, AFS_DIR_ENTRY_TAG);
                                         }
 
@@ -1466,7 +1497,7 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
                                         AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                                                       AFS_TRACE_LEVEL_VERBOSE,
-                                                      "AFSPrimaryVolumeWorkerThread Deleting object %08lX\n",
+                                                      "AFSPrimaryVolumeWorkerThread Deleting object %p\n",
                                                       pCurrentChildObject);
 
                                         AFSDeleteObjectInfo( pCurrentChildObject);
@@ -1561,7 +1592,14 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                     else if( pCurrentObject->FileType == AFS_FILE_TYPE_FILE)
                     {
 
-                        lCount = AFSObjectInfoIncrement( pCurrentObject);
+                        lCount = AFSObjectInfoIncrement( pCurrentObject,
+                                                         AFS_OBJECT_REFERENCE_WORKER);
+
+                        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                                      AFS_TRACE_LEVEL_VERBOSE,
+                                      "AFSPrimaryVolumeWorkerThread Increment2 count on object %p Cnt %d\n",
+                                      pCurrentObject,
+                                      lCount);
 
                         AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
 
@@ -1583,7 +1621,14 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
                             }
                         }
 
-                        lCount = AFSObjectInfoDecrement( pCurrentObject);
+                        lCount = AFSObjectInfoDecrement( pCurrentObject,
+                                                         AFS_OBJECT_REFERENCE_WORKER);
+
+                        AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
+                                      AFS_TRACE_LEVEL_VERBOSE,
+                                      "AFSPrimaryVolumeWorkerThread Decrement2 count on object %p Cnt %d\n",
+                                      pCurrentObject,
+                                      lCount);
 
                         if( !AFSAcquireExcl( pVolumeCB->ObjectInfoTree.TreeLock,
                                              FALSE))
@@ -1648,6 +1693,8 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
 
     KeCancelTimer( &Timer);
 
+    ClearFlag( pPoolContext->State, AFS_WORKER_INITIALIZED);
+
     AFSDbgLogMsg( AFS_SUBSYSTEM_CLEANUP_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
                   "AFSPrimaryVolumeWorkerThread Exiting\n");
@@ -1667,103 +1714,6 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
     return;
 }
 
-void
-AFSVolumeWorkerThread( IN PVOID Context)
-{
-
-    NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSVolumeCB *pVolumeCB = (AFSVolumeCB * )Context;
-    AFSWorkQueueContext *pPoolContext = (AFSWorkQueueContext *)&pVolumeCB->VolumeWorkerContext;
-    AFSDeviceExt *pControlDeviceExt = NULL;
-    AFSDeviceExt *pRDRDeviceExt = NULL;
-    BOOLEAN exitThread = FALSE;
-    LARGE_INTEGER DueTime;
-    LONG TimeOut;
-    KTIMER Timer;
-    LONG lCount;
-
-    pControlDeviceExt = (AFSDeviceExt *)AFSControlDeviceObject->DeviceExtension;
-
-    pRDRDeviceExt = (AFSDeviceExt *)AFSRDRDeviceObject->DeviceExtension;
-
-    //
-    // Initialize the timer for the worker thread
-    //
-
-    DueTime.QuadPart = -(5000);
-
-    TimeOut = 5000;
-
-    KeInitializeTimerEx( &Timer,
-                         SynchronizationTimer);
-
-    KeSetTimerEx( &Timer,
-                  DueTime,
-                  TimeOut,
-                  NULL);
-
-    //
-    // Indicate that we are initialized and ready
-    //
-
-    KeSetEvent( &pPoolContext->WorkerThreadReady,
-                0,
-                FALSE);
-
-    //
-    // Indicate we are initialized
-    //
-
-    SetFlag( pPoolContext->State, AFS_WORKER_INITIALIZED);
-
-    while( BooleanFlagOn( pPoolContext->State, AFS_WORKER_PROCESS_REQUESTS))
-    {
-
-        ntStatus = KeWaitForSingleObject( &Timer,
-                                          Executive,
-                                          KernelMode,
-                                          FALSE,
-                                          NULL);
-
-        if( !NT_SUCCESS( ntStatus))
-        {
-
-            AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
-                          AFS_TRACE_LEVEL_ERROR,
-                          "AFSVolumeWorkerThread Wait for queue items failed Status %08lX\n", ntStatus);
-        }
-        else
-        {
-
-            //
-            // If we are in shutdown mode and the dirty flag is clear then get out now
-            //
-
-            if( BooleanFlagOn( pRDRDeviceExt->DeviceFlags, AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN))
-            {
-
-                break;
-            }
-        }
-    } // worker thread loop
-
-    KeCancelTimer( &Timer);
-
-    lCount = InterlockedDecrement( &pControlDeviceExt->Specific.Control.VolumeWorkerThreadCount);
-
-    if( lCount == 0)
-    {
-
-        KeSetEvent( &pControlDeviceExt->Specific.Control.VolumeWorkerCloseEvent,
-                    0,
-                    FALSE);
-    }
-
-    PsTerminateSystemThread( 0);
-
-    return;
-}
-
 NTSTATUS
 AFSInsertWorkitem( IN AFSWorkItem *WorkItem)
 {
@@ -1776,7 +1726,7 @@ AFSInsertWorkitem( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertWorkitem Acquiring Control QueueLock lock %08lX EXCL %08lX\n",
+                  "AFSInsertWorkitem Acquiring Control QueueLock lock %p EXCL %08lX\n",
                   &pDevExt->Specific.Library.QueueLock,
                   PsGetCurrentThread());
 
@@ -1787,7 +1737,7 @@ AFSInsertWorkitem( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertWorkitem Inserting work item %08lX Count %08lX\n",
+                  "AFSInsertWorkitem Inserting work item %p Count %d\n",
                   WorkItem,
                   lCount);
 
@@ -1827,7 +1777,7 @@ AFSInsertIOWorkitem( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertIOWorkitem Acquiring Control QueueLock lock %08lX EXCL %08lX\n",
+                  "AFSInsertIOWorkitem Acquiring Control QueueLock lock %p EXCL %08lX\n",
                   &pDevExt->Specific.Library.IOQueueLock,
                   PsGetCurrentThread());
 
@@ -1838,7 +1788,7 @@ AFSInsertIOWorkitem( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertWorkitem Inserting IO work item %08lX Count %08lX\n",
+                  "AFSInsertWorkitem Inserting IO work item %p Count %d\n",
                   WorkItem,
                   lCount);
 
@@ -1878,7 +1828,7 @@ AFSInsertWorkitemAtHead( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertWorkitemAtHead Acquiring Control QueueLock lock %08lX EXCL %08lX\n",
+                  "AFSInsertWorkitemAtHead Acquiring Control QueueLock lock %p EXCL %08lX\n",
                   &pDevExt->Specific.Library.QueueLock,
                   PsGetCurrentThread());
 
@@ -1893,7 +1843,7 @@ AFSInsertWorkitemAtHead( IN AFSWorkItem *WorkItem)
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSInsertWorkitemAtHead Inserting work item %08lX Count %08lX\n",
+                  "AFSInsertWorkitemAtHead Inserting work item %p Count %d\n",
                   WorkItem,
                   lCount);
 
@@ -1914,7 +1864,6 @@ AFSWorkItem *
 AFSRemoveWorkItem()
 {
 
-    NTSTATUS ntStatus = STATUS_SUCCESS;
     AFSWorkItem        *pWorkItem = NULL;
     AFSDeviceExt *pDevExt = NULL;
     LONG lCount;
@@ -1923,7 +1872,7 @@ AFSRemoveWorkItem()
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSRemoveWorkItem Acquiring Control QueueLock lock %08lX EXCL %08lX\n",
+                  "AFSRemoveWorkItem Acquiring Control QueueLock lock %p EXCL %08lX\n",
                   &pDevExt->Specific.Library.QueueLock,
                   PsGetCurrentThread());
 
@@ -1939,7 +1888,7 @@ AFSRemoveWorkItem()
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSRemoveWorkItem Removing work item %08lX Count %08lX Thread %08lX\n",
+                      "AFSRemoveWorkItem Removing work item %p Count %d Thread %08lX\n",
                       pWorkItem,
                       lCount,
                       PsGetCurrentThreadId());
@@ -1973,7 +1922,6 @@ AFSWorkItem *
 AFSRemoveIOWorkItem()
 {
 
-    NTSTATUS ntStatus = STATUS_SUCCESS;
     AFSWorkItem        *pWorkItem = NULL;
     AFSDeviceExt *pDevExt = NULL;
     LONG lCount;
@@ -1982,7 +1930,7 @@ AFSRemoveIOWorkItem()
 
     AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
                   AFS_TRACE_LEVEL_VERBOSE,
-                  "AFSRemoveIOWorkItem Acquiring Control QueueLock lock %08lX EXCL %08lX\n",
+                  "AFSRemoveIOWorkItem Acquiring Control QueueLock lock %p EXCL %08lX\n",
                   &pDevExt->Specific.Library.IOQueueLock,
                   PsGetCurrentThread());
 
@@ -1998,7 +1946,7 @@ AFSRemoveIOWorkItem()
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSRemoveWorkItem Removing work item %08lX Count %08lX Thread %08lX\n",
+                      "AFSRemoveWorkItem Removing work item %p Count %d Thread %08lX\n",
                       pWorkItem,
                       lCount,
                       PsGetCurrentThreadId());
@@ -2033,7 +1981,6 @@ AFSQueueWorkerRequest( IN AFSWorkItem *WorkItem)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSDeviceExt *pDevExt = NULL;
     BOOLEAN bWait = BooleanFlagOn( WorkItem->RequestFlags, AFS_SYNCHRONOUS_REQUEST);
 
     //
@@ -2064,7 +2011,6 @@ AFSQueueIOWorkerRequest( IN AFSWorkItem *WorkItem)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSDeviceExt *pDevExt = NULL;
     BOOLEAN bWait = BooleanFlagOn( WorkItem->RequestFlags, AFS_SYNCHRONOUS_REQUEST);
 
     //
@@ -2095,7 +2041,6 @@ AFSQueueWorkerRequestAtHead( IN AFSWorkItem *WorkItem)
 {
 
     NTSTATUS ntStatus = STATUS_SUCCESS;
-    AFSDeviceExt *pDevExt = NULL;
     BOOLEAN bWait = BooleanFlagOn( WorkItem->RequestFlags, AFS_SYNCHRONOUS_REQUEST);
 
     //
@@ -2224,13 +2169,13 @@ AFSQueueFlushExtents( IN AFSFcb *Fcb,
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSQueueFlushExtents Increment count on Fcb %08lX Cnt %d\n",
+                      "AFSQueueFlushExtents Increment count on Fcb %p Cnt %d\n",
                       Fcb,
                       lCount);
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSQueueFlushExtents Workitem %08lX for FID %08lX-%08lX-%08lX-%08lX\n",
+                      "AFSQueueFlushExtents Workitem %p for FID %08lX-%08lX-%08lX-%08lX\n",
                       pWorkItem,
                       Fcb->ObjectInformation->FileId.Cell,
                       Fcb->ObjectInformation->FileId.Volume,
@@ -2256,7 +2201,7 @@ try_exit:
 
         lCount = InterlockedDecrement( &Fcb->Specific.File.QueuedFlushCount);
 
-       ASSERT( lCount >= 0);
+        ASSERT( lCount >= 0);
 
         if( lCount == 0)
         {
@@ -2327,7 +2272,7 @@ AFSQueueGlobalRootEnumeration()
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSQueueGlobalRootEnumeration Workitem %08lX\n",
+                      "AFSQueueGlobalRootEnumeration Workitem %p\n",
                       pWorkItem);
 
         ntStatus = AFSQueueWorkerRequest( pWorkItem);
@@ -2438,7 +2383,7 @@ AFSQueueStartIos( IN PFILE_OBJECT CacheFileObject,
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSQueueStartIos Queuing IO Workitem %08lX\n",
+                      "AFSQueueStartIos Queuing IO Workitem %p\n",
                       pWorkItem);
 
         ntStatus = AFSQueueIOWorkerRequest( pWorkItem);
@@ -2510,7 +2455,7 @@ AFSQueueInvalidateObject( IN AFSObjectInfoCB *ObjectInfo,
 
         AFSDbgLogMsg( AFS_SUBSYSTEM_WORKER_PROCESSING,
                       AFS_TRACE_LEVEL_VERBOSE,
-                      "AFSQueueInvalidateObject Workitem %08lX\n",
+                      "AFSQueueInvalidateObject Workitem %p\n",
                       pWorkItem);
 
         ntStatus = AFSQueueWorkerRequest( pWorkItem);