Create a branch for cmake bringup.
[reactos.git] / include / xdk / cctypes.h
1 $if (_NTIFS_)
2 /* Common Cache Types */
3
4 #define VACB_MAPPING_GRANULARITY (0x40000)
5 #define VACB_OFFSET_SHIFT (18)
6
7 typedef struct _PUBLIC_BCB {
8 CSHORT NodeTypeCode;
9 CSHORT NodeByteSize;
10 ULONG MappedLength;
11 LARGE_INTEGER MappedFileOffset;
12 } PUBLIC_BCB, *PPUBLIC_BCB;
13
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;
19
20 typedef BOOLEAN
21 (NTAPI *PACQUIRE_FOR_LAZY_WRITE) (
22 IN PVOID Context,
23 IN BOOLEAN Wait);
24
25 typedef VOID
26 (NTAPI *PRELEASE_FROM_LAZY_WRITE) (
27 IN PVOID Context);
28
29 typedef BOOLEAN
30 (NTAPI *PACQUIRE_FOR_READ_AHEAD) (
31 IN PVOID Context,
32 IN BOOLEAN Wait);
33
34 typedef VOID
35 (NTAPI *PRELEASE_FROM_READ_AHEAD) (
36 IN PVOID Context);
37
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;
44
45 typedef struct _CACHE_UNINITIALIZE_EVENT {
46 struct _CACHE_UNINITIALIZE_EVENT *Next;
47 KEVENT Event;
48 } CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
49
50 typedef VOID
51 (NTAPI *PDIRTY_PAGE_ROUTINE) (
52 IN PFILE_OBJECT FileObject,
53 IN PLARGE_INTEGER FileOffset,
54 IN ULONG Length,
55 IN PLARGE_INTEGER OldestLsn,
56 IN PLARGE_INTEGER NewestLsn,
57 IN PVOID Context1,
58 IN PVOID Context2);
59
60 typedef VOID
61 (NTAPI *PFLUSH_TO_LSN) (
62 IN PVOID LogHandle,
63 IN LARGE_INTEGER Lsn);
64
65 typedef VOID
66 (NTAPI *PCC_POST_DEFERRED_WRITE) (
67 IN PVOID Context1,
68 IN PVOID Context2);
69
70 #define UNINITIALIZE_CACHE_MAPS (1)
71 #define DO_NOT_RETRY_PURGE (2)
72 #define DO_NOT_PURGE_DIRTY_PAGES (0x4)
73
74 #define CC_FLUSH_AND_PURGE_NO_PURGE (0x1)
75 $endif (_NTIFS_)