1 #ifndef __INCLUDE_INTERNAL_CC_H
2 #define __INCLUDE_INTERNAL_CC_H
3 /* $Id: cc.h,v 1.8 2001/12/29 14:32:22 dwelch Exp $ */
8 LIST_ENTRY BcbSegmentListHead
;
9 PFILE_OBJECT FileObject
;
10 ULONG CacheSegmentSize
;
11 LARGE_INTEGER AllocationSize
;
12 LARGE_INTEGER FileSize
;
16 typedef struct _CACHE_SEGMENT
18 /* Base address of the region where the cache segment data is mapped. */
20 /* Memory area representing the region where the cache segment data is mapped. */
21 struct _MEMORY_AREA
* MemoryArea
;
22 /* Are the contents of the cache segment data valid. */
24 /* Are the contents of the cache segment data newer than those on disk. */
27 /* Entry in the list of segments for this BCB. */
28 LIST_ENTRY BcbSegmentListEntry
;
29 /* Entry in the list of segments which are dirty. */
30 LIST_ENTRY DirtySegmentListEntry
;
31 /* Entry in the list of segments. */
32 LIST_ENTRY CacheSegmentListEntry
;
33 LIST_ENTRY CacheSegmentLRUListEntry
;
34 /* Offset in the file which this cache segment maps. */
38 /* Number of references. */
40 /* Pointer to the BCB for the file which this cache segment maps data for. */
45 CcMdlReadCompleteDev (IN PMDL MdlChain
,
46 IN PDEVICE_OBJECT DeviceObject
);
48 CcRosGetCacheSegment(PBCB Bcb
,
53 PCACHE_SEGMENT
* CacheSeg
);
58 NTSTATUS STDCALL
CcRosFreeCacheSegment(PBCB
, PCACHE_SEGMENT
);
60 NTSTATUS
ReadCacheSegment(PCACHE_SEGMENT CacheSeg
);
62 NTSTATUS
WriteCacheSegment(PCACHE_SEGMENT CacheSeg
);