+display also 'object header reference count' of dumped 'FileObject'
[captive.git] / src / TraceFS / TraceFS-W32 / TraceFS.c
index ed4890a..61ac199 100644 (file)
@@ -289,9 +289,11 @@ static void dump_FileObject(FILE_OBJECT *FileObject)
                DBGSINGLE0("FileObject=NULL");\r
                return;\r
                }\r
-       DBGSINGLE5("FileObject=0x%lX: FileName=%s,Flags=0x%lX,SectionObjectPointer=0x%lX,->SharedCacheMap=0x%lX",\r
+       DBGSINGLE6("FileObject=0x%lX: FileName=%s,ref=%+ld,Flags=0x%lX,SectionObjectPointer=0x%lX,->SharedCacheMap=0x%lX",\r
                        (long)FileObject,\r
-                       dbg_unicode_string(&FileObject->FileName),FileObject->Flags,\r
+                       dbg_unicode_string(&FileObject->FileName),\r
+                       *(LONG *)(((char *)FileObject)-0x18),\r
+                       FileObject->Flags,\r
                        (long)FileObject->SectionObjectPointer,\r
                        (!FileObject->SectionObjectPointer ? -1 : (long)FileObject->SectionObjectPointer->SharedCacheMap));\r
        SectionObjectPointer_set(FileObject);\r
@@ -1567,3 +1569,62 @@ Wait
        DBGSINGLELEAVE1("CcZeroData: r=%d",r);\r
        return r;\r
 }\r
+\r
+BOOLEAN\r
+CcIsThereDirtyData (\r
+    IN PVPB Vpb\r
+    );\r
+BOOLEAN\r
+TcIsThereDirtyData (\r
+    IN PVPB Vpb\r
+    )\r
+{\r
+BOOLEAN r;\r
+\r
+       DBGSINGLEENTER1("CcIsThereDirtyData: Vpb=0x%lX",(long)Vpb);\r
+       r=CcIsThereDirtyData (\r
+Vpb\r
+    );\r
+       DBGSINGLELEAVE1("CcIsThereDirtyData: r=%d",r);\r
+       return r;\r
+}\r
+\r
+VOID\r
+CcRepinBcb (\r
+    IN PVOID Bcb\r
+    );\r
+VOID\r
+TcRepinBcb (\r
+    IN PVOID Bcb\r
+    )\r
+{\r
+       DBGSINGLEENTER1("CcRepinBcb: Bcb=0x%lX",(long)Bcb);\r
+       CcRepinBcb (\r
+Bcb\r
+    );\r
+       DBGSINGLELEAVE0("CcRepinBcb");\r
+}\r
+\r
+VOID\r
+CcUnpinRepinnedBcb (\r
+    IN PVOID Bcb,\r
+    IN BOOLEAN WriteThrough,\r
+    OUT PIO_STATUS_BLOCK IoStatus\r
+    );\r
+VOID\r
+TcUnpinRepinnedBcb (\r
+    IN PVOID Bcb,\r
+    IN BOOLEAN WriteThrough,\r
+    OUT PIO_STATUS_BLOCK IoStatus\r
+    )\r
+{\r
+       DBGSINGLEENTER2("CcUnpinRepinnedBcb: Bcb=0x%lX,WriteThrough=%d",\r
+                       (long)Bcb,WriteThrough);\r
+       CcUnpinRepinnedBcb (\r
+Bcb,\r
+WriteThrough,\r
+IoStatus\r
+    );\r
+       DBGSINGLELEAVE2("CcUnpinRepinnedBcb: IoStatus->Status=0x%lX,IoStatus->Information=0x%lX",\r
+                       (!IoStatus ? -1 : (long)IoStatus->Status),(!IoStatus ? -1 : (long)IoStatus->Information));\r
+}\r