2 /* Common Cache Types */
4 #define VACB_MAPPING_GRANULARITY (0x40000)
5 #define VACB_OFFSET_SHIFT (18)
7 typedef struct _PUBLIC_BCB
{
11 LARGE_INTEGER MappedFileOffset
;
12 } PUBLIC_BCB
, *PPUBLIC_BCB
;
14 typedef struct _CC_FILE_SIZES
{
15 LARGE_INTEGER AllocationSize
;
16 LARGE_INTEGER FileSize
;
17 LARGE_INTEGER ValidDataLength
;
18 } CC_FILE_SIZES
, *PCC_FILE_SIZES
;
21 (NTAPI
*PACQUIRE_FOR_LAZY_WRITE
) (
26 (NTAPI
*PRELEASE_FROM_LAZY_WRITE
) (
30 (NTAPI
*PACQUIRE_FOR_READ_AHEAD
) (
35 (NTAPI
*PRELEASE_FROM_READ_AHEAD
) (
38 typedef struct _CACHE_MANAGER_CALLBACKS
{
39 PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite
;
40 PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite
;
41 PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead
;
42 PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead
;
43 } CACHE_MANAGER_CALLBACKS
, *PCACHE_MANAGER_CALLBACKS
;
45 typedef struct _CACHE_UNINITIALIZE_EVENT
{
46 struct _CACHE_UNINITIALIZE_EVENT
*Next
;
48 } CACHE_UNINITIALIZE_EVENT
, *PCACHE_UNINITIALIZE_EVENT
;
51 (NTAPI
*PDIRTY_PAGE_ROUTINE
) (
52 _In_ PFILE_OBJECT FileObject
,
53 _In_ PLARGE_INTEGER FileOffset
,
55 _In_ PLARGE_INTEGER OldestLsn
,
56 _In_ PLARGE_INTEGER NewestLsn
,
61 (NTAPI
*PFLUSH_TO_LSN
) (
63 _In_ LARGE_INTEGER Lsn
);
66 (NTAPI
*PCC_POST_DEFERRED_WRITE
) (
70 #define UNINITIALIZE_CACHE_MAPS (1)
71 #define DO_NOT_RETRY_PURGE (2)
72 #define DO_NOT_PURGE_DIRTY_PAGES (0x4)
74 #define CC_FLUSH_AND_PURGE_NO_PURGE (0x1)