2 #ifndef _NTOS_CCFUNCS_H
3 #define _NTOS_CCFUNCS_H
6 /* exported variables */
14 #define PIN_WAIT (1) /* Waiting allowed */
15 #define PIN_EXCLUSIVE (2) /* Exclusive Bcb access; default is shared; PIN_WAIT required */
16 #define PIN_NO_READ (4) /* Do not yet map the data; does it hurt? PIN_WAIT required */
17 #define PIN_IF_BCB (8) /* Never created new Bcb; FAIL if not yet existing */
20 #define MAP_WAIT (1) /* Waiting allowed */
21 #define MAP_NO_READ (16) /* Do not yet map the data; does it hurt? */
27 IN PFILE_OBJECT FileObject,
28 IN ULONG BytesToWrite,
36 IN PFILE_OBJECT FileObject,
37 IN PLARGE_INTEGER FileOffset,
41 OUT PIO_STATUS_BLOCK IoStatus
47 IN PFILE_OBJECT FileObject,
48 IN PLARGE_INTEGER FileOffset,
57 IN PFILE_OBJECT FileObject,
58 IN PCC_POST_DEFERRED_WRITE PostRoutine,
61 IN ULONG BytesToWrite,
68 IN PFILE_OBJECT FileObject,
73 OUT PIO_STATUS_BLOCK IoStatus
79 IN PFILE_OBJECT FileObject,
80 IN PLARGE_INTEGER FileOffset,
88 IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
89 IN PLARGE_INTEGER FileOffset OPTIONAL,
91 OUT PIO_STATUS_BLOCK IoStatus OPTIONAL
96 #else /* !LIBCAPTIVE */
98 #endif /* LIBCAPTIVE */
102 IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
109 CcGetFileObjectFromBcb (
115 CcGetFileObjectFromSectionPtrs (
116 IN PSECTION_OBJECT_POINTERS SectionObjectPointer
121 CcGetLsnForFileObject (
122 IN PFILE_OBJECT FileObject,
123 OUT PLARGE_INTEGER OldestLsn OPTIONAL
128 CcInitializeCacheMap (
129 IN PFILE_OBJECT FileObject,
130 IN PCC_FILE_SIZES FileSizes,
131 IN BOOLEAN PinAccess,
132 IN PCACHE_MANAGER_CALLBACKS CallBacks,
133 IN PVOID LazyWriterContext
145 IN PFILE_OBJECT FileObject,
146 IN PLARGE_INTEGER FileOffset,
156 IN PFILE_OBJECT FileObject,
157 IN PLARGE_INTEGER FileOffset,
160 OUT PIO_STATUS_BLOCK IoStatus
166 IN PFILE_OBJECT FileObject,
173 IN PFILE_OBJECT FileObject,
174 IN PLARGE_INTEGER FileOffset,
181 IN PFILE_OBJECT FileObject,
182 IN PLARGE_INTEGER FileOffset,
191 IN PFILE_OBJECT FileObject,
192 IN PLARGE_INTEGER FileOffset,
202 IN PFILE_OBJECT FileObject,
203 IN PLARGE_INTEGER FileOffset,
206 OUT PIO_STATUS_BLOCK IoStatus
212 IN PFILE_OBJECT FileObject,
213 IN PLARGE_INTEGER FileOffset,
223 CcPurgeCacheSection (
224 IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
225 IN PLARGE_INTEGER FileOffset OPTIONAL,
227 IN BOOLEAN UninitializeCacheMaps
230 #define CcReadAhead(FO,FOFF,LEN) \
234 CcScheduleReadAhead((FO),(FOFF),(LEN)); \
246 CcScheduleReadAhead (
247 IN PFILE_OBJECT FileObject,
248 IN PLARGE_INTEGER FileOffset,
254 CcSetAdditionalCacheAttributes (
255 IN PFILE_OBJECT FileObject,
256 IN BOOLEAN DisableReadAhead,
257 IN BOOLEAN DisableWriteBehind
262 CcSetBcbOwnerPointer (
269 CcSetDirtyPageThreshold (
270 IN PFILE_OBJECT FileObject,
271 IN ULONG DirtyPageThreshold
276 CcSetDirtyPinnedData (
278 IN PLARGE_INTEGER Lsn OPTIONAL
284 IN PFILE_OBJECT FileObject,
285 IN PCC_FILE_SIZES FileSizes
290 CcSetLogHandleForFile (
291 IN PFILE_OBJECT FileObject,
293 IN PFLUSH_TO_LSN FlushToLsnRoutine
298 CcSetReadAheadGranularity (
299 IN PFILE_OBJECT FileObject,
305 CcUninitializeCacheMap (
306 IN PFILE_OBJECT FileObject,
307 IN PLARGE_INTEGER TruncateSize OPTIONAL,
308 IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL
319 CcUnpinDataForThread (
321 IN ERESOURCE_THREAD ResourceThreadId
328 IN BOOLEAN WriteThrough,
329 IN PIO_STATUS_BLOCK IoStatus
335 IN PFILE_OBJECT FileObject,
336 IN PLARGE_INTEGER StartOffset,
337 IN PLARGE_INTEGER EndOffset,