1 #ifndef __INCLUDE_DDK_NTIFS_H
2 #define __INCLUDE_DDK_NTIFS_H
5 CcRosInitializeFileCache (PFILE_OBJECT FileObject,
6 ULONG CacheSegmentSize);
8 CcRosReleaseFileCache (PFILE_OBJECT FileObject);
10 #include <ddk/cctypes.h>
12 #include <ddk/ccfuncs.h>
14 #include <ddk/fstypes.h>
15 #include <ddk/fsfuncs.h>
17 typedef struct _FSRTL_COMMON_FCB_HEADER
22 UCHAR IsFastIoPossible; // really type FAST_IO_POSSIBLE
24 UCHAR Reserved; /* always 0 */
26 PERESOURCE PagingIoResource;
27 LARGE_INTEGER AllocationSize;
28 LARGE_INTEGER FileSize;
29 LARGE_INTEGER ValidDataLength;
30 } FSRTL_COMMON_FCB_HEADER;
31 typedef FSRTL_COMMON_FCB_HEADER *PFSRTL_COMMON_FCB_HEADER;
33 // This Fcb header is used for files which support caching
34 // of compressed data, and related new support.
36 typedef struct _FSRTL_ADVANCED_FCB_HEADER
38 FSRTL_COMMON_FCB_HEADER common_fcb_header;
40 // The following two fields are supported only if
41 // Flags2 contains FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS
43 // This is a pointer to a Fast Mutex which may be used to
44 // properly synchronize access to the FsRtl header. The
45 // Fast Mutex must be nonpaged.
46 PFAST_MUTEX FastMutex;
48 // This is a pointer to a list of context structures belonging to
49 // filesystem filter drivers that are linked above the filesystem.
50 // Each structure is headed by FSRTL_FILTER_CONTEXT.
51 LIST_ENTRY FilterContexts;
52 } FSRTL_ADVANCED_FCB_HEADER;
53 typedef FSRTL_ADVANCED_FCB_HEADER *PFSRTL_ADVANCED_FCB_HEADER;
55 #endif /* __INCLUDE_DDK_NTIFS_H */