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