2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/cc/cacheman.c
5 * PURPOSE: Cache manager
7 * PROGRAMMERS: David Welch (welch@cwcom.net)
10 /* INCLUDES *****************************************************************/
16 PFSN_PREFETCHER_GLOBALS CcPfGlobals
;
18 /* FUNCTIONS *****************************************************************/
23 CcPfInitializePrefetcher(VOID
)
26 DbgPrintEx(DPFLTR_PREFETCHER_ID
,
28 "CCPF: InitializePrefetecher()\n");
30 /* Setup the Prefetcher Data */
31 InitializeListHead(&CcPfGlobals
.ActiveTraces
);
32 InitializeListHead(&CcPfGlobals
.CompletedTraces
);
33 ExInitializeFastMutex(&CcPfGlobals
.CompletedTracesLock
);
35 /* FIXME: Setup the rest of the prefetecher */
41 CcInitializeCacheManager(VOID
)
52 CcGetFlushedValidData (
53 IN PSECTION_OBJECT_POINTERS SectionObjectPointer
,
54 IN BOOLEAN BcbListHeld
85 IN PFILE_OBJECT FileObject
,
86 IN PLARGE_INTEGER FileOffset
,
98 CcSetAdditionalCacheAttributes (
99 IN PFILE_OBJECT FileObject
,
100 IN BOOLEAN DisableReadAhead
,
101 IN BOOLEAN DisableWriteBehind
104 CCTRACE(CC_API_DEBUG
, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n",
105 FileObject
, DisableReadAhead
, DisableWriteBehind
);
115 CcSetBcbOwnerPointer (
120 PINTERNAL_BCB iBcb
= Bcb
;
122 CCTRACE(CC_API_DEBUG
, "Bcb=%p Owner=%p\n",
125 if (iBcb
->OwnerPointer
)
126 DPRINT1("OwnerPointer was already set?! Old: %p, New: %p\n", iBcb
->OwnerPointer
, Owner
);
127 iBcb
->OwnerPointer
= Owner
;
135 CcSetDirtyPageThreshold (
136 IN PFILE_OBJECT FileObject
,
137 IN ULONG DirtyPageThreshold
140 CCTRACE(CC_API_DEBUG
, "FileObject=%p DirtyPageThreshold=%lu\n",
141 FileObject
, DirtyPageThreshold
);
151 CcSetReadAheadGranularity (
152 IN PFILE_OBJECT FileObject
,
156 CCTRACE(CC_API_DEBUG
, "FileObject=%p Granularity=%lu\n",
157 FileObject
, Granularity
);