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 BOOLEAN CcPfEnablePrefetcher
;
17 PFSN_PREFETCHER_GLOBALS CcPfGlobals
;
19 /* FUNCTIONS *****************************************************************/
24 CcPfInitializePrefetcher(VOID
)
27 DbgPrintEx(DPFLTR_PREFETCHER_ID
,
29 "CCPF: InitializePrefetecher()\n");
31 /* Setup the Prefetcher Data */
32 InitializeListHead(&CcPfGlobals
.ActiveTraces
);
33 InitializeListHead(&CcPfGlobals
.CompletedTraces
);
34 ExInitializeFastMutex(&CcPfGlobals
.CompletedTracesLock
);
36 /* FIXME: Setup the rest of the prefetecher */
42 CcInitializeCacheManager(VOID
)
49 CcShutdownSystem(VOID
)
51 /* Inform the lazy writer it has to stop activity */
52 CcShutdownLazyWriter();
60 CcGetFlushedValidData (
61 IN PSECTION_OBJECT_POINTERS SectionObjectPointer
,
62 IN BOOLEAN BcbListHeld
93 IN PFILE_OBJECT FileObject
,
94 IN PLARGE_INTEGER FileOffset
,
106 CcSetAdditionalCacheAttributes (
107 IN PFILE_OBJECT FileObject
,
108 IN BOOLEAN DisableReadAhead
,
109 IN BOOLEAN DisableWriteBehind
112 CCTRACE(CC_API_DEBUG
, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n",
113 FileObject
, DisableReadAhead
, DisableWriteBehind
);
123 CcSetBcbOwnerPointer (
128 PINTERNAL_BCB iBcb
= Bcb
;
130 CCTRACE(CC_API_DEBUG
, "Bcb=%p Owner=%p\n",
133 if (!ExIsResourceAcquiredExclusiveLite(&iBcb
->Lock
) && !ExIsResourceAcquiredSharedLite(&iBcb
->Lock
))
135 DPRINT1("Current thread doesn't own resource!\n");
139 ExSetResourceOwnerPointer(&iBcb
->Lock
, Owner
);
147 CcSetDirtyPageThreshold (
148 IN PFILE_OBJECT FileObject
,
149 IN ULONG DirtyPageThreshold
152 CCTRACE(CC_API_DEBUG
, "FileObject=%p DirtyPageThreshold=%lu\n",
153 FileObject
, DirtyPageThreshold
);
163 CcSetReadAheadGranularity (
164 IN PFILE_OBJECT FileObject
,
170 CCTRACE(CC_API_DEBUG
, "FileObject=%p Granularity=%lu\n",
171 FileObject
, Granularity
);
173 if (!Warn
++) UNIMPLEMENTED
;