ReactOS  0.4.15-dev-3017-g1d9542d
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 {
191 
192  /* ROS specific */
196 #if DBG
197  BOOLEAN Trace; /* enable extra trace output for this cache map and it's VACBs */
198 #endif
200 
201 #define READAHEAD_DISABLED 0x1
202 #define WRITEBEHIND_DISABLED 0x2
203 #define SHARED_CACHE_MAP_IN_CREATION 0x4
204 #define SHARED_CACHE_MAP_IN_LAZYWRITE 0x8
205 
206 typedef struct _ROS_VACB
207 {
208  /* Base address of the region where the view's data is mapped. */
210  /* Are the contents of the view newer than those on disk. */
212  /* Page out in progress */
215  /* Entry in the list of VACBs for this shared cache map. */
217  /* Entry in the list of VACBs which are dirty. */
219  /* Entry in the list of VACBs. */
221  /* Offset in the file which this view maps. */
223  /* Number of references. */
225  /* Pointer to the shared cache map for the file which this view maps data for. */
227  /* Pointer to the next VACB in a chain. */
228 } ROS_VACB, *PROS_VACB;
229 
230 typedef struct _INTERNAL_BCB
231 {
232  /* Lock */
237  CSHORT RefCount; /* (At offset 0x34 on WinNT4) */
240 
241 typedef struct _LAZY_WRITER
242 {
250 
251 typedef struct _WORK_QUEUE_ENTRY
252 {
254  union
255  {
256  struct
257  {
259  } Read;
260  struct
261  {
262  SHARED_CACHE_MAP *SharedCacheMap;
263  } Write;
264  struct
265  {
267  } Event;
268  struct
269  {
270  unsigned long Reason;
271  } Notification;
272  } Parameters;
273  unsigned char Function;
275 
277 {
280  LazyScan = 3,
281  SetDone = 4,
283 
284 extern LAZY_WRITER LazyWriter;
285 
286 #define NODE_TYPE_DEFERRED_WRITE 0x02FC
287 #define NODE_TYPE_PRIVATE_MAP 0x02FE
288 #define NODE_TYPE_SHARED_MAP 0x02FF
289 
290 CODE_SEG("INIT")
291 VOID
292 NTAPI
294  VOID
295 );
296 
297 VOID
298 NTAPI
302 );
303 
304 VOID
305 NTAPI
310 );
311 
312 NTSTATUS
314  _In_ PROS_VACB Vacb,
316 );
317 
318 NTSTATUS
320  PROS_SHARED_CACHE_MAP SharedCacheMap,
322  PROS_VACB *Vacb
323 );
324 
325 BOOLEAN
327  _In_ PROS_VACB Vacb,
328  _In_ BOOLEAN Wait,
329  _In_ BOOLEAN NoRead,
330  _In_ ULONG Offset,
332 );
333 
334 CODE_SEG("INIT")
335 VOID
336 NTAPI
338 
339 VOID
340 NTAPI
342 
343 CODE_SEG("INIT")
344 BOOLEAN
346 
347 PROS_VACB
349  PROS_SHARED_CACHE_MAP SharedCacheMap,
351 );
352 
353 VOID
354 NTAPI
356 
357 VOID
359  PROS_VACB Vacb);
360 
361 VOID
363  PROS_VACB Vacb,
364  BOOLEAN LockViews);
365 
366 NTSTATUS
368  ULONG Target,
369  PULONG Count,
370  BOOLEAN Wait,
371  BOOLEAN CalledFromLazy
372 );
373 
374 VOID
376 
377 VOID
379 
380 NTSTATUS
382  PROS_SHARED_CACHE_MAP SharedCacheMap,
383  PROS_VACB Vacb,
384  BOOLEAN Dirty,
385  BOOLEAN Mapped
386 );
387 
388 NTSTATUS
390  PROS_SHARED_CACHE_MAP SharedCacheMap,
392  PROS_VACB *Vacb
393 );
394 
395 NTSTATUS
399  BOOLEAN PinAccess,
400  PCACHE_MANAGER_CALLBACKS CallBacks,
401  PVOID LazyWriterContext
402 );
403 
404 NTSTATUS
407 );
408 
409 VOID
410 NTAPI
412 
413 VOID
414 NTAPI
416 
417 VOID
418 NTAPI
419 CcScanDpc(
420  PKDPC Dpc,
424 
425 VOID
427 
428 VOID
430 
431 VOID
435 
436 VOID
439 
440 NTSTATUS
442  IN PROS_VACB Vacb);
443 
445 BOOLEAN
451 {
452  if (Offset1 + Length1 <= Offset2)
453  return FALSE;
454  if (Offset2 + Length2 <= Offset1)
455  return FALSE;
456  return TRUE;
457 }
458 
460 BOOLEAN
465 {
466  return DoRangesIntersect(Offset1, Length1, Point, 1);
467 }
468 
469 #define CcBugCheck(A, B, C) KeBugCheckEx(CACHE_MANAGER, BugCheckFileId | ((ULONG)(__LINE__)), A, B, C)
470 
471 #if DBG
472 #define CcRosVacbIncRefCount(vacb) CcRosVacbIncRefCount_(vacb,__FILE__,__LINE__)
473 #define CcRosVacbDecRefCount(vacb) CcRosVacbDecRefCount_(vacb,__FILE__,__LINE__)
474 #define CcRosVacbGetRefCount(vacb) CcRosVacbGetRefCount_(vacb,__FILE__,__LINE__)
475 
476 ULONG
477 CcRosVacbIncRefCount_(
478  PROS_VACB vacb,
479  PCSTR file,
480  INT line);
481 
482 ULONG
483 CcRosVacbDecRefCount_(
484  PROS_VACB vacb,
485  PCSTR file,
486  INT line);
487 
488 ULONG
489 CcRosVacbGetRefCount_(
490  PROS_VACB vacb,
491  PCSTR file,
492  INT line);
493 
494 #else
495 #define CcRosVacbIncRefCount(vacb) InterlockedIncrement((PLONG)&(vacb)->ReferenceCount)
497 ULONG
499  PROS_VACB vacb)
500 {
501  ULONG Refs;
502 
503  Refs = InterlockedDecrement((PLONG)&vacb->ReferenceCount);
504  if (Refs == 0)
505  {
506  CcRosInternalFreeVacb(vacb);
507  }
508  return Refs;
509 }
510 #define CcRosVacbGetRefCount(vacb) InterlockedCompareExchange((PLONG)&(vacb)->ReferenceCount, 0, 0)
511 #endif
BOOLEAN PinAccess
Definition: cc.h:194
ULONG CcMapDataWait
Definition: pin.c:28
ULONG FileIdLow
Definition: cc.h:98
LIST_ENTRY BcbEntry
Definition: cc.h:238
ULONG NumSections
Definition: cc.h:114
ULONG CcPinReadNoWait
Definition: pin.c:31
#define IN
Definition: typedefs.h:39
struct _INTERNAL_BCB * PINTERNAL_BCB
KEVENT * Event
Definition: cc.h:266
BOOLEAN OtherWork
Definition: cc.h:247
ULONG CcDirtyPageThreshold
Definition: view.c:55
LIST_ENTRY PrivateList
Definition: cc.h:187
Definition: cc.h:206
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
LONG EndTraceCalled
Definition: cc.h:150
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:107
FAST_MUTEX CompletedTracesLock
Definition: cc.h:164
PVOID BaseAddress
Definition: cc.h:209
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
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:46
#define TRUE
Definition: types.h:120
struct _PFSN_TRACE_HEADER PFSN_TRACE_HEADER
ULONG FaultsPerPeriod[10]
Definition: cc.h:142
LIST_ENTRY SharedCacheMapLinks
Definition: cc.h:181
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:167
struct _PF_SCENARIO_ID PF_SCENARIO_ID
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _Outptr_ PMDL * MdlChain
Definition: fsrtlfuncs.h:46
ULONG Size
Definition: cc.h:106
PPFSN_TRACE_HEADER SystemWideTrace
Definition: cc.h:162
KSPIN_LOCK BcbSpinLock
Definition: cc.h:189
LONG NTSTATUS
Definition: precomp.h:26
ULONG FileKey
Definition: cc.h:81
NTSTATUS CcRosFlushDirtyPages(ULONG Target, PULONG Count, BOOLEAN Wait, BOOLEAN CalledFromLazy)
Definition: view.c:305
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 CcPfInitializePrefetcher(VOID)
Definition: fssup.c:114
VOID NTAPI CcShutdownLazyWriter(VOID)
KTIMER TraceTimer
Definition: cc.h:138
struct _WORK_QUEUE_ENTRY WORK_QUEUE_ENTRY
BOOLEAN PendingTeardown
Definition: cc.h:248
ULONG Magic
Definition: cc.h:128
LIST_ENTRY DirtyVacbListHead
Definition: view.c:41
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
PROS_VACB CcRosLookupVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset)
Definition: view.c:485
int32_t INT
Definition: typedefs.h:58
struct _PF_SCENARIO_ID * PPF_SCENARIO_ID
LIST_ENTRY CcRegularWorkQueue
Definition: lazywrite.c:40
ULONG FileOffset
Definition: cc.h:77
LIST_ENTRY CcExpressWorkQueue
Definition: lazywrite.c:39
EX_RUNDOWN_REF RefCount
Definition: cc.h:148
NTSTATUS CcRosInitializeFileCache(PFILE_OBJECT FileObject, PCC_FILE_SIZES FileSizes, BOOLEAN PinAccess, PCACHE_MANAGER_CALLBACKS CallBacks, PVOID LazyWriterContext)
Definition: view.c:1166
INT Length1
Definition: FsRtlDissect.c:15
NTSTATUS CcRosReleaseFileCache(PFILE_OBJECT FileObject)
Definition: view.c:1110
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:273
#define FALSE
Definition: types.h:117
_Inout_ PMDL MemoryDescriptorList
Definition: mmfuncs.h:405
Definition: cc.h:280
long LONG
Definition: pedump.c:60
PF_LOG_ENTRY Entries[ANYSIZE_ARRAY]
Definition: cc.h:91
KDPC ScanDpc
Definition: cc.h:244
PUBLIC_BCB PFCB
Definition: cc.h:234
VOID CcRosReferenceCache(PFILE_OBJECT FileObject)
LIST_ENTRY WorkQueue
Definition: workqueue.c:20
LIST_ENTRY CacheMapVacbListEntry
Definition: cc.h:216
ULONG HashId
Definition: cc.h:72
ULONG PinCount
Definition: cc.h:236
struct _PF_LOG_ENTRY PF_LOG_ENTRY
ULONG MappedCount
Definition: cc.h:214
VOID CcRosMarkDirtyVacb(PROS_VACB Vacb)
Definition: view.c:528
ULONG CcLazyWriteIos
Definition: lazywrite.c:21
unsigned char BOOLEAN
KTIMER ScanTimer
Definition: cc.h:245
#define _In_
Definition: ms_sal.h:308
struct _PF_LOG_ENTRY * PPF_LOG_ENTRY
union _WORK_QUEUE_ENTRY::@1707 Parameters
Definition: cc.h:281
Definition: parser.c:48
SHARED_CACHE_MAP * SharedCacheMap
Definition: cc.h:262
KSPIN_LOCK CcDeferredWriteSpinLock
Definition: view.c:58
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
LONG NumCompletedTraces
Definition: cc.h:165
PCACHE_MANAGER_CALLBACKS Callbacks
Definition: cc.h:185
VOID NTAPI CcScanDpc(PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2)
ULONG FileSequenceNumber
Definition: cc.h:82
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:547
PROS_SHARED_CACHE_MAP SharedCacheMap
Definition: cc.h:226
struct _WORK_QUEUE_ENTRY::@1707::@1709 Write
NTSTATUS CcRosReleaseVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, PROS_VACB Vacb, BOOLEAN Dirty, BOOLEAN Mapped)
Definition: view.c:453
LIST_ENTRY CacheMapVacbListHead
Definition: cc.h:193
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:461
int64_t LONGLONG
Definition: typedefs.h:68
NTSTATUS CcRosFlushVacb(_In_ PROS_VACB Vacb, _Out_opt_ PIO_STATUS_BLOCK Iosb)
Definition: view.c:159
int Count
Definition: noreturn.cpp:7
LIST_ENTRY CcDeferredWrites
Definition: view.c:57
ULONG EventEntryIdxs[8]
Definition: cc.h:109
LIST_ENTRY CompletedTraces
Definition: cc.h:163
__wchar_t WCHAR
Definition: xmlstorage.h:180
return Iosb
Definition: create.c:4402
LONG NumFaults
Definition: cc.h:145
PPFSN_TRACE_DUMP TraceDump
Definition: cc.h:151
uint64_t ULONGLONG
Definition: typedefs.h:67
BOOLEAN CcInitializeCacheManager(VOID)
Definition: fssup.c:83
LIST_ENTRY CcPostTickWorkQueue
Definition: lazywrite.c:42
BOOLEAN ScanActive
Definition: cc.h:246
volatile ULONG ReferenceCount
Definition: cc.h:224
NTSTATUS CcRosGetVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PROS_VACB *Vacb)
Definition: view.c:863
struct _WORK_QUEUE_ENTRY * PWORK_QUEUE_ENTRY
LIST_ENTRY CcIdleWorkerThreadList
Definition: lazywrite.c:41
LIST_ENTRY TraceBuffersLink
Definition: cc.h:88
Definition: cc.h:251
* PFILE_OBJECT
Definition: iotypes.h:1998
struct _ROS_SHARED_CACHE_MAP ROS_SHARED_CACHE_MAP
FORCEINLINE ULONG CcRosVacbDecRefCount(PROS_VACB vacb)
Definition: cc.h:498
CSHORT NodeTypeCode
Definition: cc.h:172
ULONG TraceBufferOffset
Definition: cc.h:111
BOOLEAN Dirty
Definition: cc.h:211
BOOLEAN PageOut
Definition: cc.h:213
ULONG CcRosTraceLevel
Definition: copy.c:31
LARGE_INTEGER TraceTimerPeriod
Definition: cc.h:139
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
#define InterlockedDecrement
Definition: armddk.h:52
Definition: ketypes.h:687
VOID CcScheduleLazyWriteScan(BOOLEAN NoDelay)
BOOLEAN CcRosEnsureVacbResident(_In_ PROS_VACB Vacb, _In_ BOOLEAN Wait, _In_ BOOLEAN NoRead, _In_ ULONG Offset, _In_ ULONG Length)
Definition: view.c:816
NTSTATUS CcRosRequestVacb(PROS_SHARED_CACHE_MAP SharedCacheMap, LONGLONG FileOffset, PROS_VACB *Vacb)
Definition: view.c:914
VOID CcPostDeferredWrites(VOID)
Definition: copy.c:73
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
#define Trace(x)
Definition: inflate.c:42
Definition: typedefs.h:119
ULONG CcTotalDirtyPages
Definition: view.c:56
ULONG NumEntries
Definition: cc.h:112
ULONG CcDataPages
Definition: copy.c:43
LONG MaxFaults
Definition: cc.h:146
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:446
PPFSN_LOG_ENTRIES CurrentTraceBuffer
Definition: cc.h:134
struct _PFSN_LOG_ENTRIES * PPFSN_LOG_ENTRIES
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
PEPROCESS Process
Definition: cc.h:147
CSHORT NodeByteSize
Definition: cc.h:173
VOID NTAPI CcInitView(VOID)
Definition: view.c:1355
PKEVENT CompletedTracesEvent
Definition: cc.h:166
LARGE_INTEGER CcIdleDelay
Definition: lazywrite.c:46
PRIVATE_CACHE_MAP PrivateCacheMap
Definition: cc.h:190
ULONG SectionInfoOffset
Definition: cc.h:113
struct _WORK_QUEUE_ENTRY::@1707::@1711 Notification
struct _PF_TRACE_HEADER * PPF_TRACE_HEADER
_WORK_QUEUE_FUNCTIONS
Definition: cc.h:276
struct _ROS_VACB * PROS_VACB
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:159
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
#define FORCEINLINE
Definition: wdftypes.h:67
struct _PFSN_PREFETCHER_GLOBALS * PPFSN_PREFETCHER_GLOBALS
VOID CcRosUnmarkDirtyVacb(PROS_VACB Vacb, BOOLEAN LockViews)
Definition: view.c:564
#define _Out_opt_
Definition: ms_sal.h:346
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
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
INT Offset1
Definition: FsRtlDissect.c:13
PF_TRACE_HEADER Trace
Definition: cc.h:123
LARGE_INTEGER FileOffset
Definition: cc.h:222
struct _WORK_QUEUE_ENTRY::@1707::@1708 Read
PVOID LazyWriteContext
Definition: cc.h:186
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:258
LIST_ENTRY DirtyVacbListEntry
Definition: cc.h:218
ULONG ERESOURCE
Definition: env_spec_w32.h:594
unsigned int ULONG
Definition: retypes.h:1
Definition: cc.h:278
VOID CcPerformReadAhead(IN PFILE_OBJECT FileObject)
Definition: copy.c:130
struct _LAZY_WRITER LAZY_WRITER
ERESOURCE Lock
Definition: cc.h:233
Definition: cc.h:75
CSHORT RefCount
Definition: cc.h:237
enum _WORK_QUEUE_FUNCTIONS WORK_QUEUE_FUNCTIONS
ULONG CcDataFlushes
Definition: copy.c:44
LARGE_INTEGER ValidDataLength
Definition: cc.h:178
VOID CcRosDereferenceCache(PFILE_OBJECT FileObject)
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:52
enum _WORK_QUEUE_FUNCTIONS * PWORK_QUEUE_FUNCTIONS
PKEVENT CreateEvent
Definition: cc.h:184
ULONG FileSequenceNumber
Definition: cc.h:97
ULONG FileIdHigh
Definition: cc.h:99
KSPIN_LOCK CacheMapLock
Definition: cc.h:195
PFILE_OBJECT FileObject
Definition: cc.h:179
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
Definition: wdfworkitem.h:110
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:56
short CSHORT
Definition: umtypes.h:127
LIST_ENTRY WorkQueueLinks
Definition: cc.h:253
signed int * PLONG
Definition: retypes.h:5
ULONG DirtyPageThreshold
Definition: cc.h:188
static CODE_SEG("PAGE")
Definition: isapnp.c:1482
PPF_SECTION_INFO SectionInfo
Definition: cc.h:154
LIST_ENTRY WorkQueue
Definition: cc.h:243
ULONG CcNumberWorkerThreads
Definition: lazywrite.c:48
VOID NTAPI CcWorkerThread(PVOID Parameter)
ULONG DirtyPages
Definition: cc.h:180
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:220
unsigned long Reason
Definition: cc.h:270
ULONG CcPinReadWait
Definition: pin.c:30
PROS_VACB Vacb
Definition: cc.h:235
ULONG MagicNumber
Definition: cc.h:105
Definition: fci.c:126
_In_opt_ PVOID DeferredContext
Definition: ketypes.h:675