ReactOS  0.4.14-dev-337-gf981a68
cc.h
Go to the documentation of this file.
1 #pragma once
2 
3 //
4 // Define this if you want debugging support
5 //
6 #define _CC_DEBUG_ 0x00
7 
8 //
9 // These define the Debug Masks Supported
10 //
11 #define CC_API_DEBUG 0x01
12 
13 //
14 // Debug/Tracing support
15 //
16 #if _CC_DEBUG_
17 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
18 #define CCTRACE(x, ...) \
19  { \
20  DbgPrintEx("%s [%.16s] - ", \
21  __FUNCTION__, \
22  PsGetCurrentProcess()->ImageFileName); \
23  DbgPrintEx(__VA_ARGS__); \
24  }
25 #else
26 #define CCTRACE(x, ...) \
27  if (x & CcRosTraceLevel) \
28  { \
29  DbgPrint("%s [%.16s] - ", \
30  __FUNCTION__, \
31  PsGetCurrentProcess()->ImageFileName); \
32  DbgPrint(__VA_ARGS__); \
33  }
34 #endif
35 #else
36 #define CCTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
37 #endif
38 
39 //
40 // Global Cc Data
41 //
42 extern ULONG CcRosTraceLevel;
55 
56 //
57 // Counters
58 //
59 extern ULONG CcLazyWritePages;
60 extern ULONG CcLazyWriteIos;
61 extern ULONG CcMapDataWait;
62 extern ULONG CcMapDataNoWait;
63 extern ULONG CcPinReadWait;
64 extern ULONG CcPinReadNoWait;
66 extern ULONG CcDataPages;
67 extern ULONG CcDataFlushes;
68 
69 typedef struct _PF_SCENARIO_ID
70 {
74 
75 typedef struct _PF_LOG_ENTRY
76 {
79  union
80  {
83  };
85 
86 typedef struct _PFSN_LOG_ENTRIES
87 {
93 
94 typedef struct _PF_SECTION_INFO
95 {
101 
102 typedef struct _PF_TRACE_HEADER
103 {
108  ULONG ScenarioType; // PF_SCENARIO_TYPE
119 
120 typedef struct _PFSN_TRACE_DUMP
121 {
125 
126 typedef struct _PFSN_TRACE_HEADER
127 {
131  ULONG ScenarioType; // PF_SCENARIO_TYPE
157 
159 {
169 
170 typedef struct _ROS_SHARED_CACHE_MAP
171 {
188 
189  /* ROS specific */
193 #if DBG
194  BOOLEAN Trace; /* enable extra trace output for this cache map and it's VACBs */
195 #endif
197 
198 #define READAHEAD_DISABLED 0x1
199 #define WRITEBEHIND_DISABLED 0x2
200 
201 typedef struct _ROS_VACB
202 {
203  /* Base address of the region where the view's data is mapped. */
205  /* Memory area representing the region where the view's data is mapped. */
207  /* Are the contents of the view valid. */
209  /* Are the contents of the view newer than those on disk. */
211  /* Page out in progress */
214  /* Entry in the list of VACBs for this shared cache map. */
216  /* Entry in the list of VACBs which are dirty. */
218  /* Entry in the list of VACBs. */
220  /* Offset in the file which this view maps. */
222  /* Number of references. */
224  /* Pointer to the shared cache map for the file which this view maps data for. */
226  /* Pointer to the next VACB in a chain. */
227 } ROS_VACB, *PROS_VACB;
228 
229 typedef struct _INTERNAL_BCB
230 {
231  /* Lock */
236  CSHORT RefCount; /* (At offset 0x34 on WinNT4) */
239 
240 typedef struct _LAZY_WRITER
241 {
249 
250 typedef struct _WORK_QUEUE_ENTRY
251 {
253  union
254  {
255  struct
256  {
258  } Read;
259  struct
260  {
261  SHARED_CACHE_MAP *SharedCacheMap;
262  } Write;
263  struct
264  {
266  } Event;
267  struct
268  {
269  unsigned long Reason;
270  } Notification;
271  } Parameters;
272  unsigned char Function;
274 
276 {
279  LazyScan = 3,
280  SetDone = 4,
282 
283 extern LAZY_WRITER LazyWriter;
284 
285 #define NODE_TYPE_DEFERRED_WRITE 0x02FC
286 #define NODE_TYPE_PRIVATE_MAP 0x02FE
287 #define NODE_TYPE_SHARED_MAP 0x02FF
288 
289 INIT_FUNCTION
290 VOID
291 NTAPI
293  VOID
294 );
295 
296 VOID
297 NTAPI
301 );
302 
303 VOID
304 NTAPI
309 );
310 
311 NTSTATUS
312 NTAPI
314 
315 NTSTATUS
316 NTAPI
318  PROS_SHARED_CACHE_MAP SharedCacheMap,
320  PLONGLONG BaseOffset,
322  PBOOLEAN UptoDate,
323  PROS_VACB *Vacb
324 );
325 
326 INIT_FUNCTION
327 VOID
328 NTAPI
330 
331 VOID
332 NTAPI
334 
335 NTSTATUS
336 NTAPI
338 
339 NTSTATUS
340 NTAPI
342 
343 INIT_FUNCTION
344 BOOLEAN
345 NTAPI
347 
348 NTSTATUS
349 NTAPI
351  PROS_SHARED_CACHE_MAP SharedCacheMap,
353  BOOLEAN NowDirty
354 );
355 
356 PROS_VACB
357 NTAPI
359  PROS_SHARED_CACHE_MAP SharedCacheMap,
361 );
362 
363 VOID
364 NTAPI
366 
367 NTSTATUS
368 NTAPI
370  PROS_SHARED_CACHE_MAP SharedCacheMap,
372 );
373 
374 VOID
375 NTAPI
377  PROS_VACB Vacb);
378 
379 VOID
380 NTAPI
382  PROS_VACB Vacb,
383  BOOLEAN LockViews);
384 
385 NTSTATUS
386 NTAPI
388  ULONG Target,
389  PULONG Count,
390  BOOLEAN Wait,
391  BOOLEAN CalledFromLazy
392 );
393 
394 VOID
395 NTAPI
397 
398 VOID
399 NTAPI
401 
402 VOID
403 NTAPI
405 
406 NTSTATUS
407 NTAPI
409  PROS_SHARED_CACHE_MAP SharedCacheMap,
410  PROS_VACB Vacb,
411  BOOLEAN Valid,
412  BOOLEAN Dirty,
413  BOOLEAN Mapped
414 );
415 
416 NTSTATUS
417 NTAPI
419  PROS_SHARED_CACHE_MAP SharedCacheMap,
422  PBOOLEAN UptoDate,
423  PROS_VACB *Vacb
424 );
425 
426 NTSTATUS
427 NTAPI
431  BOOLEAN PinAccess,
432  PCACHE_MANAGER_CALLBACKS CallBacks,
433  PVOID LazyWriterContext
434 );
435 
436 NTSTATUS
437 NTAPI
440 );
441 
442 VOID
443 NTAPI
445 
446 VOID
447 NTAPI
449 
450 VOID
451 NTAPI
452 CcScanDpc(
453  PKDPC Dpc,
457 
458 VOID
460 
461 VOID
463 
464 VOID
466  IN PWORK_QUEUE_ENTRY WorkItem,
468 
469 VOID
472 
473 NTSTATUS
475  IN PROS_VACB Vacb);
476 
478 BOOLEAN
484 {
485  if (Offset1 + Length1 <= Offset2)
486  return FALSE;
487  if (Offset2 + Length2 <= Offset1)
488  return FALSE;
489  return TRUE;
490 }
491 
493 BOOLEAN
498 {
499  return DoRangesIntersect(Offset1, Length1, Point, 1);
500 }
501 
502 #define CcBugCheck(A, B, C) KeBugCheckEx(CACHE_MANAGER, BugCheckFileId | ((ULONG)(__LINE__)), A, B, C)
503 
504 #if DBG
505 #define CcRosVacbIncRefCount(vacb) CcRosVacbIncRefCount_(vacb,__FILE__,__LINE__)
506 #define CcRosVacbDecRefCount(vacb) CcRosVacbDecRefCount_(vacb,__FILE__,__LINE__)
507 #define CcRosVacbGetRefCount(vacb) CcRosVacbGetRefCount_(vacb,__FILE__,__LINE__)
508 
509 ULONG
510 CcRosVacbIncRefCount_(
511  PROS_VACB vacb,
512  PCSTR file,
513  INT line);
514 
515 ULONG
516 CcRosVacbDecRefCount_(
517  PROS_VACB vacb,
518  PCSTR file,
519  INT line);
520 
521 ULONG
522 CcRosVacbGetRefCount_(
523  PROS_VACB vacb,
524  PCSTR file,
525  INT line);
526 
527 #else
528 #define CcRosVacbIncRefCount(vacb) InterlockedIncrement((PLONG)&(vacb)->ReferenceCount)
530 ULONG
532  PROS_VACB vacb)
533 {
534  ULONG Refs;
535 
536  Refs = InterlockedDecrement((PLONG)&vacb->ReferenceCount);
537  if (Refs == 0)
538  {
539  CcRosInternalFreeVacb(vacb);
540  }
541  return Refs;
542 }
543 #define CcRosVacbGetRefCount(vacb) InterlockedCompareExchange((PLONG)&(vacb)->ReferenceCount, 0, 0)
544 #endif
PROS_VACB NTAPI CcRosLookupVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset)
Definition: view.c:458
struct _WORK_QUEUE_ENTRY::@1694::@1698 Notification
BOOLEAN PinAccess
Definition: cc.h:191
NTSTATUS NTAPI CcRosReleaseFileCache(PFILE_OBJECT FileObject)
Definition: view.c:1334
ULONG CcMapDataWait
Definition: pin.c:28
ULONG FileIdLow
Definition: cc.h:98
LIST_ENTRY BcbEntry
Definition: cc.h:237
ULONG NumSections
Definition: cc.h:114
ULONG CcPinReadNoWait
Definition: pin.c:31
#define IN
Definition: typedefs.h:38
struct _INTERNAL_BCB * PINTERNAL_BCB
KEVENT * Event
Definition: cc.h:265
BOOLEAN OtherWork
Definition: cc.h:246
ULONG CcDirtyPageThreshold
Definition: view.c:59
LIST_ENTRY PrivateList
Definition: cc.h:184
#define TRUE
Definition: types.h:120
Definition: cc.h:201
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
LONG EndTraceCalled
Definition: cc.h:150
FAST_MUTEX CompletedTracesLock
Definition: cc.h:164
PVOID BaseAddress
Definition: cc.h:204
NTSTATUS NTAPI CcRosMarkDirtyFile(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset)
Definition: view.c:572
ULONG Type
Definition: cc.h:78
ULONG FileKey
Definition: cc.h:96
WCHAR ScenName[30]
Definition: cc.h:71
LAZY_WRITER LazyWriter
Definition: lazywrite.c:37
struct _PF_SECTION_INFO PF_SECTION_INFO
NTSTATUS NTAPI CcRosFlushDirtyPages(ULONG Target, PULONG Count, BOOLEAN Wait, BOOLEAN CalledFromLazy)
Definition: view.c:183
struct _LAZY_WRITER * PLAZY_WRITER
ULONG OpenCount
Definition: cc.h:174
ULONG CcLazyWritePages
Definition: lazywrite.c:20
NTSTATUS TraceDumpStatus
Definition: cc.h:152
LARGE_INTEGER SectionSize
Definition: cc.h:177
#define ANYSIZE_ARRAY
Definition: typedefs.h:45
NTSTATUS NTAPI CcReadVirtualAddress(PROS_VACB Vacb)
Definition: copy.c:81
struct _PFSN_TRACE_HEADER PFSN_TRACE_HEADER
ULONG FaultsPerPeriod[10]
Definition: cc.h:142
LIST_ENTRY SharedCacheMapLinks
Definition: cc.h:180
struct _PF_SCENARIO_ID PF_SCENARIO_ID
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
INIT_FUNCTION VOID NTAPI CcInitView(VOID)
Definition: view.c:1535
NTSTATUS NTAPI CcRosFlushVacb(PROS_VACB Vacb)
Definition: view.c:165
ULONG Size
Definition: cc.h:106
PPFSN_TRACE_HEADER SystemWideTrace
Definition: cc.h:162
KSPIN_LOCK BcbSpinLock
Definition: cc.h:186
LONG NTSTATUS
Definition: precomp.h:26
ULONG FileKey
Definition: cc.h:81
struct _PF_TRACE_HEADER PF_TRACE_HEADER
LARGE_INTEGER LaunchTime
Definition: cc.h:116
WORK_QUEUE_ITEM EndTraceWorkItem
Definition: cc.h:149
VOID CcPostWorkQueue(IN PWORK_QUEUE_ENTRY WorkItem, IN PLIST_ENTRY WorkQueue)
Definition: lazywrite.c:53
LIST_ENTRY CompletedTracesLink
Definition: cc.h:122
ULONG Version
Definition: cc.h:104
LONG MaxEntries
Definition: cc.h:90
LIST_ENTRY BcbList
Definition: cc.h:176
INT Length2
Definition: FsRtlDissect.c:16
VOID NTAPI CcShutdownLazyWriter(VOID)
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
KTIMER TraceTimer
Definition: cc.h:138
struct _WORK_QUEUE_ENTRY WORK_QUEUE_ENTRY
BOOLEAN PendingTeardown
Definition: cc.h:247
ULONG Magic
Definition: cc.h:128
LIST_ENTRY DirtyVacbListHead
Definition: view.c:45
static CC_FILE_SIZES FileSizes
KSPIN_LOCK TraceTimerSpinLock
Definition: cc.h:141
ULONG ScenarioType
Definition: cc.h:131
_In_ PVOID Parameter
Definition: ldrtypes.h:241
PUBLIC_BCB
Definition: cctypes.h:12
VOID NTAPI CcRosReferenceCache(PFILE_OBJECT FileObject)
Definition: view.c:1270
int32_t INT
Definition: typedefs.h:56
VOID NTAPI CcRosDereferenceCache(PFILE_OBJECT FileObject)
Definition: view.c:1305
struct _PF_SCENARIO_ID * PPF_SCENARIO_ID
LIST_ENTRY CcRegularWorkQueue
Definition: lazywrite.c:40
ULONG FileOffset
Definition: cc.h:77
_Must_inspect_result_ _In_ PDEVICE_OBJECT _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer
Definition: fsrtlfuncs.h:1368
LIST_ENTRY CcExpressWorkQueue
Definition: lazywrite.c:39
EX_RUNDOWN_REF RefCount
Definition: cc.h:148
INT Length1
Definition: FsRtlDissect.c:15
__GNU_EXTENSION typedef __int64 * PLONGLONG
Definition: ntbasedef.h:389
struct _PFSN_TRACE_HEADER * PPFSN_TRACE_HEADER
PF_SCENARIO_ID ScenarioId
Definition: cc.h:130
KSPIN_LOCK TraceBufferSpinLock
Definition: cc.h:137
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
unsigned char Function
Definition: cc.h:272
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:406
Definition: cc.h:279
long LONG
Definition: pedump.c:60
union _WORK_QUEUE_ENTRY::@1694 Parameters
PF_LOG_ENTRY Entries[ANYSIZE_ARRAY]
Definition: cc.h:91
KDPC ScanDpc
Definition: cc.h:243
PUBLIC_BCB PFCB
Definition: cc.h:233
LIST_ENTRY WorkQueue
Definition: workqueue.c:20
LIST_ENTRY CacheMapVacbListEntry
Definition: cc.h:215
ULONG HashId
Definition: cc.h:72
ULONG PinCount
Definition: cc.h:235
NTSTATUS NTAPI CcRosRequestVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PVOID *BaseAddress, PBOOLEAN UptoDate, PROS_VACB *Vacb)
Definition: view.c:996
struct _PF_LOG_ENTRY PF_LOG_ENTRY
ULONG MappedCount
Definition: cc.h:213
ULONG CcLazyWriteIos
Definition: lazywrite.c:21
unsigned char BOOLEAN
KTIMER ScanTimer
Definition: cc.h:244
#define FORCEINLINE
Definition: ntbasedef.h:221
struct _PF_LOG_ENTRY * PPF_LOG_ENTRY
Definition: cc.h:280
Definition: parser.c:48
SHARED_CACHE_MAP * SharedCacheMap
Definition: cc.h:261
KSPIN_LOCK CcDeferredWriteSpinLock
Definition: view.c:62
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
LONG NumCompletedTraces
Definition: cc.h:165
PCACHE_MANAGER_CALLBACKS Callbacks
Definition: cc.h:182
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
NTSTATUS NTAPI CcRosUnmapVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, BOOLEAN NowDirty)
Definition: view.c:600
VOID NTAPI CcScanDpc(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
ULONG FileSequenceNumber
Definition: cc.h:82
PROS_SHARED_CACHE_MAP SharedCacheMap
Definition: cc.h:225
VOID NTAPI CcRosUnmarkDirtyVacb(PROS_VACB Vacb, BOOLEAN LockViews)
Definition: view.c:538
LIST_ENTRY CacheMapVacbListHead
Definition: cc.h:190
ULONG NumTraceBuffers
Definition: cc.h:136
LARGE_INTEGER LaunchTime
Definition: cc.h:153
FAST_MUTEX
Definition: extypes.h:17
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:675
struct _ROS_VACB ROS_VACB
KSPIN_LOCK ActiveTracesLock
Definition: cc.h:161
FORCEINLINE BOOLEAN IsPointInRange(_In_ LONGLONG Offset1, _In_ LONGLONG Length1, _In_ LONGLONG Point)
Definition: cc.h:494
int64_t LONGLONG
Definition: typedefs.h:66
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
_In_ LARGE_INTEGER _In_opt_ PKDPC Dpc
Definition: kefuncs.h:524
LIST_ENTRY CcDeferredWrites
Definition: view.c:61
ULONG EventEntryIdxs[8]
Definition: cc.h:109
NTSTATUS NTAPI CcWriteVirtualAddress(PROS_VACB Vacb)
Definition: copy.c:153
LIST_ENTRY CompletedTraces
Definition: cc.h:163
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG NumFaults
Definition: cc.h:145
PPFSN_TRACE_DUMP TraceDump
Definition: cc.h:151
uint64_t ULONGLONG
Definition: typedefs.h:65
struct _WORK_QUEUE_ENTRY::@1694::@1695 Read
LIST_ENTRY CcPostTickWorkQueue
Definition: lazywrite.c:42
BOOLEAN ScanActive
Definition: cc.h:245
volatile ULONG ReferenceCount
Definition: cc.h:223
struct _WORK_QUEUE_ENTRY * PWORK_QUEUE_ENTRY
LIST_ENTRY CcIdleWorkerThreadList
Definition: lazywrite.c:41
LIST_ENTRY TraceBuffersLink
Definition: cc.h:88
Definition: cc.h:250
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1068
* PFILE_OBJECT
Definition: iotypes.h:1955
struct _ROS_SHARED_CACHE_MAP ROS_SHARED_CACHE_MAP
FORCEINLINE ULONG CcRosVacbDecRefCount(PROS_VACB vacb)
Definition: cc.h:531
CSHORT NodeTypeCode
Definition: cc.h:172
ULONG TraceBufferOffset
Definition: cc.h:111
BOOLEAN Dirty
Definition: cc.h:210
BOOLEAN PageOut
Definition: cc.h:212
ULONG CcRosTraceLevel
Definition: copy.c:38
LARGE_INTEGER TraceTimerPeriod
Definition: cc.h:139
char * PBOOLEAN
Definition: retypes.h:11
ULONG NumEventEntryIdxs
Definition: cc.h:133
struct _PFSN_TRACE_DUMP * PPFSN_TRACE_DUMP
struct _PFSN_PREFETCHER_GLOBALS PFSN_PREFETCHER_GLOBALS
LONG CurPeriod
Definition: cc.h:144
ULONG CcPinMappedDataCount
Definition: pin.c:32
INIT_FUNCTION VOID NTAPI CcPfInitializePrefetcher(VOID)
Definition: fssup.c:112
#define InterlockedDecrement
Definition: armddk.h:52
Definition: ketypes.h:687
VOID CcScheduleLazyWriteScan(BOOLEAN NoDelay)
VOID CcPostDeferredWrites(VOID)
Definition: copy.c:412
VOID NTAPI CcMdlReadComplete2(IN PFILE_OBJECT FileObject, IN PMDL MemoryDescriptorList)
Definition: mdlsup.c:83
struct _PFSN_LOG_ENTRIES PFSN_LOG_ENTRIES
ULONG FaultsPerPeriod[10]
Definition: cc.h:115
VOID NTAPI CcRosRemoveIfClosed(PSECTION_OBJECT_POINTERS SectionObjectPointer)
Definition: view.c:1286
#define Trace(x)
Definition: zutil.h:197
Definition: typedefs.h:117
ULONG CcTotalDirtyPages
Definition: view.c:60
ULONG NumEntries
Definition: cc.h:112
ULONG CcDataPages
Definition: copy.c:50
LONG MaxFaults
Definition: cc.h:146
struct _MEMORY_AREA * MemoryArea
Definition: cc.h:206
ULONG ScenarioType
Definition: cc.h:108
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:675
FORCEINLINE BOOLEAN DoRangesIntersect(_In_ LONGLONG Offset1, _In_ LONGLONG Length1, _In_ LONGLONG Offset2, _In_ LONGLONG Length2)
Definition: cc.h:479
PPFSN_LOG_ENTRIES CurrentTraceBuffer
Definition: cc.h:134
struct _PFSN_LOG_ENTRIES * PPFSN_LOG_ENTRIES
struct _WORK_QUEUE_ENTRY::@1694::@1696 Write
#define _In_
Definition: no_sal2.h:204
PEPROCESS Process
Definition: cc.h:147
CSHORT NodeByteSize
Definition: cc.h:173
PKEVENT CompletedTracesEvent
Definition: cc.h:166
LARGE_INTEGER CcIdleDelay
Definition: lazywrite.c:46
PRIVATE_CACHE_MAP PrivateCacheMap
Definition: cc.h:187
ULONG SectionInfoOffset
Definition: cc.h:113
NTSTATUS NTAPI CcRosReleaseVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, PROS_VACB Vacb, BOOLEAN Valid, BOOLEAN Dirty, BOOLEAN Mapped)
Definition: view.c:421
struct _PF_TRACE_HEADER * PPF_TRACE_HEADER
BOOLEAN Valid
Definition: cc.h:208
_WORK_QUEUE_FUNCTIONS
Definition: cc.h:275
struct _ROS_VACB * PROS_VACB
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
struct _PFSN_PREFETCHER_GLOBALS * PPFSN_PREFETCHER_GLOBALS
VOID NTAPI CcRosMarkDirtyVacb(PROS_VACB Vacb)
Definition: view.c:502
unsigned int * PULONG
Definition: retypes.h:1
LONG LastNumFaults
Definition: cc.h:143
ULONG CcMapDataNoWait
Definition: pin.c:29
PF_SCENARIO_ID ScenarioId
Definition: cc.h:107
KDPC TraceTimerDpc
Definition: cc.h:140
struct _ROS_SHARED_CACHE_MAP * PROS_SHARED_CACHE_MAP
INT Offset1
Definition: FsRtlDissect.c:13
PF_TRACE_HEADER Trace
Definition: cc.h:123
LARGE_INTEGER FileOffset
Definition: cc.h:221
NTSTATUS NTAPI CcRosGetVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PLONGLONG BaseOffset, PVOID *BaseAddress, PBOOLEAN UptoDate, PROS_VACB *Vacb)
Definition: view.c:937
PVOID LazyWriteContext
Definition: cc.h:183
LARGE_INTEGER FileSize
Definition: cc.h:175
struct _PFSN_TRACE_DUMP PFSN_TRACE_DUMP
LIST_ENTRY TraceBuffersList
Definition: cc.h:135
NPAGED_LOOKASIDE_LIST CcTwilightLookasideList
Definition: lazywrite.c:38
VOID NTAPI CcShutdownSystem(VOID)
Definition: cachesub.c:299
FILE_OBJECT * FileObject
Definition: cc.h:257
LIST_ENTRY DirtyVacbListEntry
Definition: cc.h:217
ULONG ERESOURCE
Definition: env_spec_w32.h:594
unsigned int ULONG
Definition: retypes.h:1
Definition: cc.h:277
VOID CcPerformReadAhead(IN PFILE_OBJECT FileObject)
Definition: copy.c:486
struct _LAZY_WRITER LAZY_WRITER
ERESOURCE Lock
Definition: cc.h:232
Definition: cc.h:75
CSHORT RefCount
Definition: cc.h:236
enum _WORK_QUEUE_FUNCTIONS WORK_QUEUE_FUNCTIONS
ULONG CcDataFlushes
Definition: copy.c:51
LONG NumEntries
Definition: cc.h:89
struct _PF_SECTION_INFO * PPF_SECTION_INFO
NTSTATUS CcRosInternalFreeVacb(IN PROS_VACB Vacb)
ULONG NumEventEntryIdxs
Definition: cc.h:110
ULONG EventEntryIdxs[8]
Definition: cc.h:132
const char * PCSTR
Definition: typedefs.h:51
enum _WORK_QUEUE_FUNCTIONS * PWORK_QUEUE_FUNCTIONS
ULONG FileSequenceNumber
Definition: cc.h:97
ULONG FileIdHigh
Definition: cc.h:99
INIT_FUNCTION BOOLEAN NTAPI CcInitializeCacheManager(VOID)
Definition: fssup.c:82
KSPIN_LOCK CacheMapLock
Definition: cc.h:192
PFILE_OBJECT FileObject
Definition: cc.h:178
LIST_ENTRY ActiveTraces
Definition: cc.h:160
ULONG SectionInfoCount
Definition: cc.h:155
INT Offset2
Definition: FsRtlDissect.c:14
VOID NTAPI CcInitCacheZeroPage(VOID)
Definition: copy.c:63
short CSHORT
Definition: umtypes.h:127
LIST_ENTRY WorkQueueLinks
Definition: cc.h:252
signed int * PLONG
Definition: retypes.h:5
ULONG DirtyPageThreshold
Definition: cc.h:185
PPF_SECTION_INFO SectionInfo
Definition: cc.h:154
LIST_ENTRY WorkQueue
Definition: cc.h:242
ULONG CcNumberWorkerThreads
Definition: lazywrite.c:48
VOID NTAPI CcWorkerThread(PVOID Parameter)
ULONG DirtyPages
Definition: cc.h:179
struct _INTERNAL_BCB INTERNAL_BCB
VOID NTAPI CcMdlWriteComplete2(IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain)
Definition: mdlsup.c:111
LIST_ENTRY ActiveTracesLink
Definition: cc.h:129
LIST_ENTRY VacbLruListEntry
Definition: cc.h:219
unsigned long Reason
Definition: cc.h:269
ULONG CcPinReadWait
Definition: pin.c:30
NTSTATUS NTAPI CcRosInitializeFileCache(PFILE_OBJECT FileObject, PCC_FILE_SIZES FileSizes, BOOLEAN PinAccess, PCACHE_MANAGER_CALLBACKS CallBacks, PVOID LazyWriterContext)
Definition: view.c:1399
IN BOOLEAN Wait
Definition: fatprocs.h:1529
PROS_VACB Vacb
Definition: cc.h:234
ULONG MagicNumber
Definition: cc.h:105
Definition: fci.c:126
_In_opt_ PVOID DeferredContext
Definition: ketypes.h:675