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 #ifdef _NTIFS_INCLUDED_
89 typedef struct _SHARED_CACHE_MAP
94 LARGE_INTEGER FileSize
;
96 LARGE_INTEGER SectionSize
;
97 LARGE_INTEGER ValidDataLength
;
98 LARGE_INTEGER ValidDataGoal
;
99 PVACB InitialVacbs
[4];
101 PFILE_OBJECT FileObject
;
105 ULONG NeedToZeroPage
;
106 ULONG ActiveVacbSpinLock
;
107 ULONG VacbActiveCount
;
109 LIST_ENTRY SharedCacheMapLinks
;
115 PKEVENT WaitOnActiveCount
;
117 LONGLONG BeyondLastFlush
;
118 PCACHE_MANAGER_CALLBACKS Callbacks
;
119 PVOID LazyWriteContext
;
120 LIST_ENTRY PrivateList
;
122 PVOID FlushToLsnRoutine
;
123 ULONG DirtyPageThreshold
;
124 ULONG LazyWritePassCount
;
125 PCACHE_UNINITIALIZE_EVENT UninitializeEvent
;
126 PVACB NeedToZeroVacb
;
130 EX_PUSH_LOCK VacbPushLock
;
131 PRIVATE_CACHE_MAP PrivateCacheMap
;
132 } SHARED_CACHE_MAP
, *PSHARED_CACHE_MAP
;
134 #endif /* _NTIFS_INCLUDED_ */
135 #endif /* NTOS_MODE_USER */
136 #endif /* _CCTYPES_H */