#ifndef __INCLUDE_DDK_NTIFS_H #define __INCLUDE_DDK_NTIFS_H NTSTATUS STDCALL CcRosInitializeFileCache (PFILE_OBJECT FileObject, ULONG CacheSegmentSize); NTSTATUS STDCALL CcRosReleaseFileCache (PFILE_OBJECT FileObject); #include #include #include #include typedef struct _FSRTL_COMMON_FCB_HEADER { CSHORT NodeTypeCode; CSHORT NodeByteSize; UCHAR Flags; UCHAR IsFastIoPossible; // really type FAST_IO_POSSIBLE UCHAR Flags2; UCHAR Reserved; /* always 0 */ PERESOURCE Resource; PERESOURCE PagingIoResource; LARGE_INTEGER AllocationSize; LARGE_INTEGER FileSize; LARGE_INTEGER ValidDataLength; } FSRTL_COMMON_FCB_HEADER; typedef FSRTL_COMMON_FCB_HEADER *PFSRTL_COMMON_FCB_HEADER; // This Fcb header is used for files which support caching // of compressed data, and related new support. typedef struct _FSRTL_ADVANCED_FCB_HEADER { FSRTL_COMMON_FCB_HEADER common_fcb_header; // The following two fields are supported only if // Flags2 contains FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS // // This is a pointer to a Fast Mutex which may be used to // properly synchronize access to the FsRtl header. The // Fast Mutex must be nonpaged. PFAST_MUTEX FastMutex; // This is a pointer to a list of context structures belonging to // filesystem filter drivers that are linked above the filesystem. // Each structure is headed by FSRTL_FILTER_CONTEXT. LIST_ENTRY FilterContexts; } FSRTL_ADVANCED_FCB_HEADER; typedef FSRTL_ADVANCED_FCB_HEADER *PFSRTL_ADVANCED_FCB_HEADER; #endif /* __INCLUDE_DDK_NTIFS_H */