3 Copyright (c) Alex Ionescu. All rights reserved.
11 Type definitions for the Cache Controller.
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
27 #ifndef NTOS_MODE_USER
30 // Kernel Exported CcData
32 extern ULONG NTSYSAPI CcFastReadNotPossible
;
33 extern ULONG NTSYSAPI CcFastReadWait
;
34 extern ULONG NTSYSAPI CcFastReadResourceMiss
;
35 extern ULONG NTSYSAPI CcFastReadNoWait
;
36 extern ULONG NTSYSAPI CcFastMdlReadNotPossible
;
39 // Virtual Address Control BLock
44 struct _SHARED_CACHE_MAP
*SharedCacheMap
;
47 LARGE_INTEGER FileOffset
;
54 // Private Cache Map Structure and Flags
56 typedef struct _PRIVATE_CACHE_MAP_FLAGS
59 ULONG ReadAheadActive
:1;
60 ULONG ReadAheadEnabled
:1;
62 } PRIVATE_CACHE_MAP_FLAGS
;
64 typedef struct _PRIVATE_CACHE_MAP
69 PRIVATE_CACHE_MAP_FLAGS Flags
;
73 PFILE_OBJECT FileObject
;
74 LARGE_INTEGER FileOffset1
;
75 LARGE_INTEGER BeyondLastByte1
;
76 LARGE_INTEGER FileOffset2
;
77 LARGE_INTEGER BeyondLastByte2
;
78 LARGE_INTEGER ReadAheadOffset
[2];
79 ULONG ReadAheadLength
[2];
80 KSPIN_LOCK ReadAheadSpinLock
;
81 LIST_ENTRY PrivateLinks
;
82 } PRIVATE_CACHE_MAP
, *PPRIVATE_CACHE_MAP
;
84 typedef struct _BITMAP_RANGE
92 } BITMAP_RANGE
, *PBITMAP_RANGE
;
101 LIST_ENTRY BitmapRanges
;
102 LONGLONG ResumeWritePage
;
103 BITMAP_RANGE BitmapRange1
;
104 BITMAP_RANGE BitmapRange2
;
105 BITMAP_RANGE BitmapRange3
;
108 #ifdef _NTIFS_INCLUDED_
113 typedef struct _SHARED_CACHE_MAP
118 LARGE_INTEGER FileSize
;
120 LARGE_INTEGER SectionSize
;
121 LARGE_INTEGER ValidDataLength
;
122 LARGE_INTEGER ValidDataGoal
;
123 PVACB InitialVacbs
[4];
125 PFILE_OBJECT FileObject
;
129 ULONG NeedToZeroPage
;
130 KSPIN_LOCK ActiveVacbSpinLock
;
131 ULONG VacbActiveCount
;
133 LIST_ENTRY SharedCacheMapLinks
;
139 PKEVENT WaitOnActiveCount
;
141 LONGLONG BeyondLastFlush
;
142 PCACHE_MANAGER_CALLBACKS Callbacks
;
143 PVOID LazyWriteContext
;
144 LIST_ENTRY PrivateList
;
146 PFLUSH_TO_LSN FlushToLsnRoutine
;
147 ULONG DirtyPageThreshold
;
148 ULONG LazyWritePassCount
;
149 PCACHE_UNINITIALIZE_EVENT UninitializeEvent
;
150 PVACB NeedToZeroVacb
;
151 KSPIN_LOCK BcbSpinLock
;
154 EX_PUSH_LOCK VacbPushLock
;
155 PRIVATE_CACHE_MAP PrivateCacheMap
;
156 } SHARED_CACHE_MAP
, *PSHARED_CACHE_MAP
;
158 #endif /* _NTIFS_INCLUDED_ */
159 #endif /* NTOS_MODE_USER */
160 #endif /* _CCTYPES_H */