REACTOS_COMMON_FCB_HEADER structure made W32 XP compatible
[reactos.git] / include / ddk / cctypes.h
1 #ifndef __INCLUDE_DDK_CCTYPES_H
2 #define __INCLUDE_DDK_CCTYPES_H
3
4 #include <ddk/extypes.h>        /* for PERESOURCE */
5
6 typedef struct _CACHE_UNINITIALIZE_EVENT
7 {
8         struct _CACHE_UNINITIALIZE_EVENT        * Next;
9         KEVENT                                  Event;
10 } CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
11
12 typedef struct _CC_FILE_SIZES
13 {
14         LARGE_INTEGER   AllocationSize;
15         LARGE_INTEGER   FileSize;
16         LARGE_INTEGER   ValidDataLength;
17 } CC_FILE_SIZES, *PCC_FILE_SIZES;
18
19
20 typedef VOID STDCALL
21 (*PCC_POST_DEFERRED_WRITE)(IN PVOID Context1,
22                            IN PVOID Context2);
23
24 typedef struct _PUBLIC_BCB
25 {
26     CSHORT          NodeTypeCode;
27     CSHORT          NodeByteSize;
28     ULONG           MappedLength;
29     LARGE_INTEGER   MappedFileOffset;
30 } PUBLIC_BCB, *PPUBLIC_BCB;
31
32 typedef VOID (*PDIRTY_PAGE_ROUTINE) (
33     IN PFILE_OBJECT     FileObject,
34     IN PLARGE_INTEGER   FileOffset,
35     IN ULONG            Length,
36     IN PLARGE_INTEGER   OldestLsn,
37     IN PLARGE_INTEGER   NewestLsn,
38     IN PVOID            Context1,
39     IN PVOID            Context2
40 );
41
42 typedef BOOLEAN STDCALL
43 (*PACQUIRE_FOR_LAZY_WRITE)(IN PVOID Context,
44                            IN BOOLEAN Wait);
45
46 typedef VOID STDCALL
47 (*PRELEASE_FROM_LAZY_WRITE)(IN PVOID Context);
48
49 typedef BOOLEAN STDCALL
50 (*PACQUIRE_FOR_READ_AHEAD)(IN PVOID Context,
51                            IN BOOLEAN Wait);
52
53 typedef VOID STDCALL
54 (*PRELEASE_FROM_READ_AHEAD)(IN PVOID Context);
55
56 typedef struct _CACHE_MANAGER_CALLBACKS
57 {
58         PACQUIRE_FOR_LAZY_WRITE         AcquireForLazyWrite;
59         PRELEASE_FROM_LAZY_WRITE        ReleaseFromLazyWrite;
60         PACQUIRE_FOR_READ_AHEAD         AcquireForReadAhead;
61         PRELEASE_FROM_READ_AHEAD        ReleaseFromReadAhead;
62 } CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
63
64 /* this is already defined in iotypes.h */
65 /*
66 typedef struct _SECTION_OBJECT_POINTERS
67 {
68         PVOID   DataSectionObject;
69         PVOID   SharedCacheMap;
70         PVOID   ImageSectionObject;
71 } SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
72 */
73
74 typedef VOID STDCALL
75 (*PFLUSH_TO_LSN)(IN PVOID LogHandle,
76                  IN LARGE_INTEGER Lsn);
77
78 typedef struct _REACTOS_COMMON_FCB_HEADER
79 {
80   CSHORT NodeTypeCode;
81   CSHORT NodeByteSize;
82   UCHAR Flags;
83   UCHAR IsFastIoPossible;
84   UCHAR Flags2; /* if VER_PRODUCTBUILD >= 1381 */
85   UCHAR Reserved;       /* if VER_PRODUCTBUILD >= 1381 */
86   PERESOURCE Resource;
87   PERESOURCE PagingIoResource;
88   LARGE_INTEGER AllocationSize;
89   LARGE_INTEGER FileSize;
90   LARGE_INTEGER ValidDataLength;
91 } REACTOS_COMMON_FCB_HEADER, *PREACTOS_COMMON_FCB_HEADER;
92
93 #endif /* __INCLUDE_DDK_CCTYPES_H */