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
98 IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
105 CcGetFileObjectFromBcb (
111 CcGetFileObjectFromSectionPtrs (
112 IN PSECTION_OBJECT_POINTERS SectionObjectPointer
117 CcGetLsnForFileObject (
118 IN PFILE_OBJECT FileObject,
119 OUT PLARGE_INTEGER OldestLsn OPTIONAL
124 CcInitializeCacheMap (
125 IN PFILE_OBJECT FileObject,
126 IN PCC_FILE_SIZES FileSizes,
127 IN BOOLEAN PinAccess,
128 IN PCACHE_MANAGER_CALLBACKS CallBacks,
129 IN PVOID LazyWriterContext
141 IN PFILE_OBJECT FileObject,
142 IN PLARGE_INTEGER FileOffset,
152 IN PFILE_OBJECT FileObject,
153 IN PLARGE_INTEGER FileOffset,
156 OUT PIO_STATUS_BLOCK IoStatus
162 IN PFILE_OBJECT FileObject,
169 IN PFILE_OBJECT FileObject,
170 IN PLARGE_INTEGER FileOffset,
177 IN PFILE_OBJECT FileObject,
178 IN PLARGE_INTEGER FileOffset,
187 IN PFILE_OBJECT FileObject,
188 IN PLARGE_INTEGER FileOffset,
198 IN PFILE_OBJECT FileObject,
199 IN PLARGE_INTEGER FileOffset,
202 OUT PIO_STATUS_BLOCK IoStatus
208 IN PFILE_OBJECT FileObject,
209 IN PLARGE_INTEGER FileOffset,
219 CcPurgeCacheSection (
220 IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
221 IN PLARGE_INTEGER FileOffset OPTIONAL,
223 IN BOOLEAN UninitializeCacheMaps
226 #define CcReadAhead(FO,FOFF,LEN) \
230 CcScheduleReadAhead((FO),(FOFF),(LEN)); \
242 CcScheduleReadAhead (
243 IN PFILE_OBJECT FileObject,
244 IN PLARGE_INTEGER FileOffset,
250 CcSetAdditionalCacheAttributes (
251 IN PFILE_OBJECT FileObject,
252 IN BOOLEAN DisableReadAhead,
253 IN BOOLEAN DisableWriteBehind
258 CcSetBcbOwnerPointer (
265 CcSetDirtyPageThreshold (
266 IN PFILE_OBJECT FileObject,
267 IN ULONG DirtyPageThreshold
272 CcSetDirtyPinnedData (
274 IN PLARGE_INTEGER Lsn OPTIONAL
280 IN PFILE_OBJECT FileObject,
281 IN PCC_FILE_SIZES FileSizes
286 CcSetLogHandleForFile (
287 IN PFILE_OBJECT FileObject,
289 IN PFLUSH_TO_LSN FlushToLsnRoutine
294 CcSetReadAheadGranularity (
295 IN PFILE_OBJECT FileObject,
301 CcUninitializeCacheMap (
302 IN PFILE_OBJECT FileObject,
303 IN PLARGE_INTEGER TruncateSize OPTIONAL,
304 IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL
315 CcUnpinDataForThread (
317 IN ERESOURCE_THREAD ResourceThreadId
324 IN BOOLEAN WriteThrough,
325 IN PIO_STATUS_BLOCK IoStatus
331 IN PFILE_OBJECT FileObject,
332 IN PLARGE_INTEGER StartOffset,
333 IN PLARGE_INTEGER EndOffset,