+#define FCB_CACHE_INITIALIZED 0x0001
+#define FCB_IS_VOLUME_STREAM 0x0002
+#define FCB_IS_VOLUME 0x0004
+#define MAX_PATH 260
+
+typedef struct _FCB
+{
+ NTFSIDENTIFIER Identifier;
+
+ FSRTL_COMMON_FCB_HEADER RFCB;
+ SECTION_OBJECT_POINTERS SectionObjectPointers;
+
+ PFILE_OBJECT FileObject;
+ PNTFS_VCB Vcb;
+
+ WCHAR Stream[MAX_PATH];
+ WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */
+ WCHAR PathName[MAX_PATH]; /* path+filename 260 max */
+
+ ERESOURCE PagingIoResource;
+ ERESOURCE MainResource;
+
+ LIST_ENTRY FcbListEntry;
+ struct _FCB* ParentFcb;
+
+ ULONG DirIndex;
+
+ LONG RefCount;
+ ULONG Flags;
+ ULONG OpenHandleCount;
+
+ ULONGLONG MFTIndex;
+ USHORT LinkCount;
+
+ FILENAME_ATTRIBUTE Entry;
+
+} NTFS_FCB, *PNTFS_FCB;
+
+typedef struct _FIND_ATTR_CONTXT
+{
+ PDEVICE_EXTENSION Vcb;
+ BOOLEAN OnlyResident;
+ PNTFS_ATTR_RECORD FirstAttr;
+ PNTFS_ATTR_RECORD CurrAttr;
+ PNTFS_ATTR_RECORD LastAttr;
+ PNTFS_ATTR_RECORD NonResidentStart;
+ PNTFS_ATTR_RECORD NonResidentEnd;
+ ULONG Offset;
+} FIND_ATTR_CONTXT, *PFIND_ATTR_CONTXT;
+
+typedef struct
+{
+ USHORT USN;
+ USHORT Array[];
+} FIXUP_ARRAY, *PFIXUP_ARRAY;
+