ReactOS  0.4.14-dev-608-gd495a4f
ntfs.h
Go to the documentation of this file.
1 #ifndef NTFS_H
2 #define NTFS_H
3 
4 #include <ntifs.h>
5 #include <pseh/pseh2.h>
6 #include <section_attribs.h>
7 
8 #define CACHEPAGESIZE(pDeviceExt) \
9  ((pDeviceExt)->NtfsInfo.UCHARsPerCluster > PAGE_SIZE ? \
10  (pDeviceExt)->NtfsInfo.UCHARsPerCluster : PAGE_SIZE)
11 
12 #define TAG_NTFS '0ftN'
13 #define TAG_CCB 'CftN'
14 #define TAG_FCB 'FftN'
15 #define TAG_IRP_CTXT 'iftN'
16 #define TAG_ATT_CTXT 'aftN'
17 #define TAG_FILE_REC 'rftN'
18 
19 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
20 #define ROUND_DOWN(N, S) ((N) - ((N) % (S)))
21 
22 #define DEVICE_NAME L"\\Ntfs"
23 
24 #include <pshpack1.h>
25 typedef struct _BIOS_PARAMETERS_BLOCK
26 {
29  UCHAR Unused0[7]; // 0x0E, checked when volume is mounted
30  UCHAR MediaId; // 0x15
31  UCHAR Unused1[2]; // 0x16
33  USHORT Heads; // 0x1A
34  UCHAR Unused2[4]; // 0x1C
35  UCHAR Unused3[4]; // 0x20, checked when volume is mounted
37 
39 {
40  USHORT Unknown[2]; // 0x24, always 80 00 80 00
45  UCHAR Unused4[3]; // 0x41
47  UCHAR Unused5[3]; // 0x45
49  UCHAR Checksum[4]; // 0x50
51 
52 typedef struct _BOOT_SECTOR
53 {
54  UCHAR Jump[3]; // 0x00
55  UCHAR OEMID[8]; // 0x03
58  UCHAR BootStrap[426]; // 0x54
59  USHORT EndSector; // 0x1FE
61 #include <poppack.h>
62 
63 //typedef struct _BootSector BootSector;
64 
65 typedef struct _NTFS_INFO
66 {
76 
83 
86 
87 #define NTFS_TYPE_CCB '20SF'
88 #define NTFS_TYPE_FCB '30SF'
89 #define NTFS_TYPE_VCB '50SF'
90 #define NTFS_TYPE_IRP_CONTEXT '60SF'
91 #define NTFS_TYPE_GLOBAL_DATA '70SF'
92 
93 typedef struct
94 {
98 
99 typedef struct
100 {
102 
103  ERESOURCE DirResource;
104 // ERESOURCE FatResource;
105 
106  KSPIN_LOCK FcbListLock;
107  LIST_ENTRY FcbListHead;
108 
110  PDEVICE_OBJECT StorageDevice;
112 
115  struct _FCB *VolumeFcb;
116 
118 
120 
122  ULONG Flags;
124 
126 
127 #define VCB_VOLUME_LOCKED 0x0001
128 
129 typedef struct
130 {
135  /* for DirectoryControl */
137  /* for DirectoryControl */
141 } NTFS_CCB, *PNTFS_CCB;
142 
143 typedef struct
144 {
157 
158 
159 typedef enum
160 {
174  AttributeEA = 0xE0,
177  AttributeEnd = 0xFFFFFFFF
179 
180 // FILE_RECORD_END seems to follow AttributeEnd in every file record starting with $Quota.
181 // No clue what data is being represented here.
182 #define FILE_RECORD_END 0x11477982
183 
184 #define NTFS_FILE_MFT 0
185 #define NTFS_FILE_MFTMIRR 1
186 #define NTFS_FILE_LOGFILE 2
187 #define NTFS_FILE_VOLUME 3
188 #define NTFS_FILE_ATTRDEF 4
189 #define NTFS_FILE_ROOT 5
190 #define NTFS_FILE_BITMAP 6
191 #define NTFS_FILE_BOOT 7
192 #define NTFS_FILE_BADCLUS 8
193 #define NTFS_FILE_QUOTA 9
194 #define NTFS_FILE_UPCASE 10
195 #define NTFS_FILE_EXTEND 11
196 #define NTFS_FILE_FIRST_USER_FILE 16
197 
198 #define NTFS_MFT_MASK 0x0000FFFFFFFFFFFFULL
199 
200 #define COLLATION_BINARY 0x00
201 #define COLLATION_FILE_NAME 0x01
202 #define COLLATION_UNICODE_STRING 0x02
203 #define COLLATION_NTOFS_ULONG 0x10
204 #define COLLATION_NTOFS_SID 0x11
205 #define COLLATION_NTOFS_SECURITY_HASH 0x12
206 #define COLLATION_NTOFS_ULONGS 0x13
207 
208 #define INDEX_ROOT_SMALL 0x0
209 #define INDEX_ROOT_LARGE 0x1
210 
211 #define INDEX_NODE_SMALL 0x0
212 #define INDEX_NODE_LARGE 0x1
213 
214 #define NTFS_INDEX_ENTRY_NODE 1
215 #define NTFS_INDEX_ENTRY_END 2
216 
217 #define NTFS_FILE_NAME_POSIX 0
218 #define NTFS_FILE_NAME_WIN32 1
219 #define NTFS_FILE_NAME_DOS 2
220 #define NTFS_FILE_NAME_WIN32_AND_DOS 3
221 
222 #define NTFS_FILE_TYPE_READ_ONLY 0x1
223 #define NTFS_FILE_TYPE_HIDDEN 0x2
224 #define NTFS_FILE_TYPE_SYSTEM 0x4
225 #define NTFS_FILE_TYPE_ARCHIVE 0x20
226 #define NTFS_FILE_TYPE_REPARSE 0x400
227 #define NTFS_FILE_TYPE_COMPRESSED 0x800
228 #define NTFS_FILE_TYPE_DIRECTORY 0x10000000
229 
230 /* Indexed Flag in Resident attributes - still somewhat speculative */
231 #define RA_INDEXED 0x01
232 
233 typedef struct
234 {
235  ULONG Type; /* Magic number 'FILE' */
236  USHORT UsaOffset; /* Offset to the update sequence */
237  USHORT UsaCount; /* Size in words of Update Sequence Number & Array (S) */
238  ULONGLONG Lsn; /* $LogFile Sequence Number (LSN) */
240 
241 /* NTFS_RECORD_HEADER.Type */
242 #define NRH_FILE_TYPE 0x454C4946 /* 'FILE' */
243 #define NRH_INDX_TYPE 0x58444E49 /* 'INDX' */
244 
245 
246 typedef struct _FILE_RECORD_HEADER
247 {
249  USHORT SequenceNumber; /* Sequence number */
250  USHORT LinkCount; /* Hard link count */
251  USHORT AttributeOffset; /* Offset to the first Attribute */
252  USHORT Flags; /* Flags */
253  ULONG BytesInUse; /* Real size of the FILE record */
254  ULONG BytesAllocated; /* Allocated size of the FILE record */
255  ULONGLONG BaseFileRecord; /* File reference to the base FILE record */
256  USHORT NextAttributeNumber; /* Next Attribute Id */
257  USHORT Padding; /* Align to 4 UCHAR boundary (XP) */
258  ULONG MFTRecordNumber; /* Number of this MFT Record (XP) */
260 
261 /* Flags in FILE_RECORD_HEADER */
262 
263 #define FRH_IN_USE 0x0001 /* Record is in use */
264 #define FRH_DIRECTORY 0x0002 /* Record is a directory */
265 #define FRH_UNKNOWN1 0x0004 /* Don't know */
266 #define FRH_UNKNOWN2 0x0008 /* Don't know */
267 
268 typedef struct
269 {
270  ULONG Type;
271  ULONG Length;
272  UCHAR IsNonResident;
273  UCHAR NameLength;
274  USHORT NameOffset;
275  USHORT Flags;
277  union
278  {
279  // Resident attributes
280  struct
281  {
283  USHORT ValueOffset;
284  UCHAR Flags;
285  UCHAR Reserved;
286  } Resident;
287  // Non-resident attributes
288  struct
289  {
290  ULONGLONG LowestVCN;
291  ULONGLONG HighestVCN;
292  USHORT MappingPairsOffset;
293  USHORT CompressionUnit;
294  UCHAR Reserved[4];
295  LONGLONG AllocatedSize;
297  LONGLONG InitializedSize;
298  LONGLONG CompressedSize;
299  } NonResident;
300  };
302 
303 typedef struct
304 {
313 
314 // The beginning and length of an attribute record are always aligned to an 8-byte boundary,
315 // relative to the beginning of the file record.
316 #define ATTR_RECORD_ALIGNMENT 8
317 
318 // Data runs are aligned to a 4-byte boundary, relative to the start of the attribute record
319 #define DATA_RUN_ALIGNMENT 4
320 
321 // Value offset is aligned to a 4-byte boundary, relative to the start of the attribute record
322 #define VALUE_OFFSET_ALIGNMENT 4
323 
324 typedef struct
325 {
331  ULONG AlignmentOrReserved[3];
332 #if 0
333  ULONG QuotaId;
334  ULONG SecurityId;
335  ULONGLONG QuotaCharge;
336  USN Usn;
337 #endif
339 
340 
341 typedef struct
342 {
347  ULONGLONG StartVcn; // LowVcn
350  USHORT AlignmentOrReserved[3];
352 
353 
354 typedef struct
355 {
364  union
365  {
366  struct
367  {
370  } EaInfo;
372  } Extended;
377 
378 typedef struct
379 {
384  UCHAR Padding[3];
386 
387 typedef struct
388 {
393  UCHAR Padding[3];
396 
397 typedef struct
398 {
403 
404 typedef struct
405 {
406  union
407  {
408  struct
409  {
411  } Directory;
412  struct
413  {
417  } ViewIndex;
418  } Data;
425 
426 struct _B_TREE_FILENAME_NODE;
428 
429 // Keys are arranged in nodes as an ordered, linked list
430 typedef struct _B_TREE_KEY
431 {
433  B_TREE_FILENAME_NODE *LesserChild; // Child-Node. All the keys in this node will be sorted before IndexEntry
434  PINDEX_ENTRY_ATTRIBUTE IndexEntry; // must be last member for FIELD_OFFSET
436 
437 // Every Node is just an ordered list of keys.
438 // Sub-nodes can be found attached to a key (if they exist).
439 // A key's sub-node precedes that key in the ordered list.
440 typedef struct _B_TREE_FILENAME_NODE
441 {
448 
449 typedef struct
450 {
452 } B_TREE, *PB_TREE;
453 
454 typedef struct
455 {
462 
463 typedef struct {
469 
470 #define IRPCONTEXT_CANWAIT 0x1
471 #define IRPCONTEXT_COMPLETE 0x2
472 #define IRPCONTEXT_QUEUE 0x4
473 
474 typedef struct
475 {
489 
490 typedef struct _NTFS_ATTR_CONTEXT
491 {
500  ULONGLONG FileOwnerMFTIndex; /* If attribute list attribute, reference the original file */
503 
504 #define FCB_CACHE_INITIALIZED 0x0001
505 #define FCB_IS_VOLUME_STREAM 0x0002
506 #define FCB_IS_VOLUME 0x0004
507 #define MAX_PATH 260
508 
509 typedef struct _FCB
510 {
512 
515 
518 
520  WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */
521  WCHAR PathName[MAX_PATH]; /* path+filename 260 max */
522 
525 
527  struct _FCB* ParentFcb;
528 
530 
534 
537 
539 
540 } NTFS_FCB, *PNTFS_FCB;
541 
542 typedef struct _FIND_ATTR_CONTXT
543 {
554 
555 typedef struct
556 {
558  USHORT Array[];
560 
562 
564 NTSTATUS
566 {
567  PULONG Flags = &IrpContext->Flags;
568 
571 
572  return STATUS_PENDING;
573 }
574 
575 /* attrib.c */
576 
577 //VOID
578 //NtfsDumpAttribute(PATTRIBUTE Attribute);
579 
580 NTSTATUS
582  PFILE_RECORD_HEADER FileRecord,
583  PNTFS_ATTR_RECORD AttributeAddress,
584  PCWSTR Name,
585  USHORT NameLength);
586 
587 NTSTATUS
588 AddData(PFILE_RECORD_HEADER FileRecord,
589  PNTFS_ATTR_RECORD AttributeAddress);
590 
591 NTSTATUS
593  PNTFS_ATTR_CONTEXT AttrContext,
594  ULONG AttrOffset,
595  PFILE_RECORD_HEADER FileRecord,
596  ULONGLONG NextAssignedCluster,
597  ULONG RunLength);
598 
599 NTSTATUS
601  PFILE_RECORD_HEADER FileRecord,
602  PNTFS_ATTR_RECORD AttributeAddress,
603  PCWSTR Name,
604  USHORT NameLength);
605 
606 NTSTATUS
608  PFILE_RECORD_HEADER FileRecord,
609  PNTFS_ATTR_RECORD AttributeAddress,
610  PINDEX_ROOT_ATTRIBUTE NewIndexRoot,
611  ULONG RootLength,
612  PCWSTR Name,
613  USHORT NameLength);
614 
615 NTSTATUS
617  PNTFS_ATTR_RECORD AttributeAddress,
618  PDEVICE_EXTENSION DeviceExt,
620  BOOLEAN CaseSensitive,
621  PULONGLONG ParentMftIndex);
622 
623 NTSTATUS
625  PNTFS_ATTR_RECORD AttributeAddress);
626 
627 NTSTATUS
629  PLARGE_MCB DataRunsMCB,
630  PULONGLONG pNextVBN);
631 
632 NTSTATUS
634  PUCHAR RunBuffer,
635  ULONG MaxBufferSize,
636  PULONG UsedBufferSize);
637 
638 PUCHAR
639 DecodeRun(PUCHAR DataRun,
640  LONGLONG *DataRunOffset,
641  ULONGLONG *DataRunLength);
642 
644 
645 VOID
646 NtfsDumpDataRuns(PVOID StartOfRun,
647  ULONGLONG CurrentLCN);
648 
649 VOID
651  PFILE_RECORD_HEADER FileRecord);
652 
655  PFILE_RECORD_HEADER FileRecord);
656 
659  PFILE_RECORD_HEADER FileRecord,
660  UCHAR NameType);
661 
662 UCHAR
663 GetPackedByteCount(LONGLONG NumberToPack,
664  BOOLEAN IsSigned);
665 
666 NTSTATUS
668  PNTFS_ATTR_RECORD Attribute,
669  PULONGLONG LastCluster);
670 
673  PFILE_RECORD_HEADER FileRecord);
674 
675 NTSTATUS
678 
679 NTSTATUS
682 
683 NTSTATUS
686  PFILE_RECORD_HEADER FileRecord,
687  BOOLEAN OnlyResident,
688  PNTFS_ATTR_RECORD * Attribute);
689 
690 NTSTATUS
692  PNTFS_ATTR_RECORD * Attribute);
693 
694 VOID
696 
697 NTSTATUS
699  PNTFS_ATTR_CONTEXT AttrContext,
700  ULONG AttrOffset,
701  PFILE_RECORD_HEADER FileRecord,
702  ULONG ClustersToFree);
703 
704 /* blockdev.c */
705 
706 NTSTATUS
709  IN ULONG Length,
712  IN BOOLEAN Override);
713 
714 NTSTATUS
717  IN ULONG Length,
719  IN const PUCHAR Buffer);
720 
721 NTSTATUS
723  IN ULONG DiskSector,
727  IN BOOLEAN Override);
728 
729 NTSTATUS
733  IN ULONG InputBufferSize,
735  IN OUT PULONG OutputBufferSize,
736  IN BOOLEAN Override);
737 
738 
739 /* btree.c */
740 
741 LONG
743  PB_TREE_KEY Key2,
744  BOOLEAN CaseSensitive);
745 
746 NTSTATUS
748  PFILE_RECORD_HEADER FileRecordWithIndex,
749  /*PCWSTR IndexName,*/
750  PNTFS_ATTR_CONTEXT IndexRootContext,
751  PINDEX_ROOT_ATTRIBUTE IndexRoot,
752  PB_TREE *NewTree);
753 
754 NTSTATUS
756  PB_TREE Tree,
757  ULONG MaxIndexSize,
758  PINDEX_ROOT_ATTRIBUTE *IndexRoot,
759  ULONG *Length);
760 
761 NTSTATUS
763 
764 VOID
766 
767 VOID
769 
770 VOID
772 
773 VOID
776  ULONG Number,
777  ULONG Depth);
778 
779 VOID
782  ULONG Number,
783  ULONG Depth);
784 
785 NTSTATUS
786 CreateEmptyBTree(PB_TREE *NewTree);
787 
788 ULONGLONG
790  ULONG IndexBufferSize,
791  ULONGLONG Vcn);
792 
793 ULONGLONG
795 
796 ULONG
798 
799 NTSTATUS
801  ULONGLONG FileReference,
802  PFILENAME_ATTRIBUTE FileNameAttribute,
804  BOOLEAN CaseSensitive,
805  ULONG MaxIndexRootSize,
806  ULONG IndexRecordSize,
807  PB_TREE_KEY *MedianKey,
808  PB_TREE_FILENAME_NODE *NewRightHandSibling);
809 
810 NTSTATUS
813  PB_TREE_KEY *MedianKey,
814  PB_TREE_FILENAME_NODE *NewRightHandSibling,
815  BOOLEAN CaseSensitive);
816 
817 NTSTATUS
819  PB_TREE Tree,
820  ULONG IndexBufferSize,
821  PFILE_RECORD_HEADER FileRecord);
822 
823 NTSTATUS
825  PFILE_RECORD_HEADER FileRecord,
827  ULONG IndexBufferSize,
828  PNTFS_ATTR_CONTEXT IndexAllocationContext,
829  ULONG IndexAllocationOffset);
830 
831 /* close.c */
832 
833 NTSTATUS
834 NtfsCleanup(PNTFS_IRP_CONTEXT IrpContext);
835 
836 
837 /* close.c */
838 
839 NTSTATUS
842 
843 NTSTATUS
844 NtfsClose(PNTFS_IRP_CONTEXT IrpContext);
845 
846 
847 /* create.c */
848 
849 NTSTATUS
850 NtfsCreate(PNTFS_IRP_CONTEXT IrpContext);
851 
852 NTSTATUS
855  BOOLEAN CaseSensitive,
856  BOOLEAN CanWait);
857 
860 
861 NTSTATUS
864  BOOLEAN CaseSensitive,
865  BOOLEAN CanWait);
866 
867 /* devctl.c */
868 
869 NTSTATUS
871 
872 
873 /* dirctl.c */
874 
875 ULONGLONG
877  PFILE_RECORD_HEADER FileRecord,
878  PCWSTR Stream,
879  ULONG StreamLength,
880  PULONGLONG AllocatedSize);
881 
882 NTSTATUS
884 
885 
886 /* dispatch.c */
887 
891  PIRP Irp);
892 
893 
894 /* fastio.c */
895 
898  BOOLEAN Wait);
899 
900 VOID NTAPI
902 
905  BOOLEAN Wait);
906 
907 VOID NTAPI
909 
910 FAST_IO_CHECK_IF_POSSIBLE NtfsFastIoCheckIfPossible;
911 FAST_IO_READ NtfsFastIoRead;
912 FAST_IO_WRITE NtfsFastIoWrite;
913 
914 
915 /* fcb.c */
916 
917 PNTFS_FCB
919  PCWSTR Stream,
920  PNTFS_VCB Vcb);
921 
922 VOID
924 
925 BOOLEAN
927 
928 BOOLEAN
930 
931 BOOLEAN
933 
934 BOOLEAN
936 
937 VOID
939  PNTFS_FCB Fcb);
940 
941 VOID
943  PNTFS_FCB Fcb);
944 
945 VOID
947  PNTFS_FCB Fcb);
948 
949 PNTFS_FCB
951  PCWSTR FileName);
952 
953 NTSTATUS
955  PNTFS_FCB Fcb);
956 
957 PNTFS_FCB
959 
960 PNTFS_FCB
962 
963 NTSTATUS
965  PNTFS_FCB Fcb,
967 
968 NTSTATUS
970  PNTFS_FCB *pParentFCB,
971  PNTFS_FCB *pFCB,
972  PCWSTR pFileName,
973  BOOLEAN CaseSensitive);
974 
975 NTSTATUS
977  PNTFS_FCB pFCB,
978  ULONG Type,
979  PCWSTR Name,
980  ULONG NameLength,
981  PVOID * Data);
982 
983 NTSTATUS
985  PNTFS_FCB DirectoryFCB,
987  PCWSTR Stream,
989  ULONGLONG MFTIndex,
990  PNTFS_FCB * fileFCB);
991 
992 
993 /* finfo.c */
994 
995 NTSTATUS
997 
998 NTSTATUS
1001  PDEVICE_EXTENSION DeviceExt,
1002  ULONG IrpFlags,
1003  BOOLEAN CaseSensitive,
1005 
1006 NTSTATUS
1008 
1009 /* fsctl.c */
1010 
1011 NTSTATUS
1013 
1014 
1015 /* mft.c */
1016 NTSTATUS
1018  ULONGLONG DirectoryMftIndex,
1019  ULONGLONG FileReferenceNumber,
1020  PFILENAME_ATTRIBUTE FilenameAttribute,
1021  BOOLEAN CaseSensitive);
1022 
1023 NTSTATUS
1025  PDEVICE_EXTENSION DeviceExt,
1026  PULONGLONG DestinationIndex,
1027  BOOLEAN CanWait);
1028 
1029 VOID
1031 
1034 
1035 VOID
1037 
1038 ULONG
1041  ULONGLONG Offset,
1042  PCHAR Buffer,
1043  ULONG Length);
1044 
1045 NTSTATUS
1048  ULONGLONG Offset,
1049  const PUCHAR Buffer,
1050  ULONG Length,
1051  PULONG LengthWritten,
1052  PFILE_RECORD_HEADER FileRecord);
1053 
1054 ULONGLONG
1056 
1057 NTSTATUS
1059  PNTFS_ATTR_CONTEXT AttrContext,
1060  PFILE_RECORD_HEADER FileRecord,
1061  ULONG AttrOffset,
1062  ULONG DataSize);
1063 
1066  PNTFS_ATTR_RECORD FirstAttributeToMove,
1067  ULONG FirstAttributeOffset,
1068  ULONG_PTR MoveTo);
1069 
1070 NTSTATUS
1072  PNTFS_FCB Fcb,
1073  PNTFS_ATTR_CONTEXT AttrContext,
1074  ULONG AttrOffset,
1075  PFILE_RECORD_HEADER FileRecord,
1077 
1078 VOID
1080  PNTFS_ATTR_RECORD AttrEnd,
1081  ULONG EndMarker);
1082 
1083 NTSTATUS
1085  PNTFS_ATTR_CONTEXT AttrContext,
1086  ULONG AttrOffset,
1087  PFILE_RECORD_HEADER FileRecord,
1089 
1090 NTSTATUS
1092  PNTFS_ATTR_CONTEXT AttrContext,
1093  ULONG AttrOffset,
1094  PFILE_RECORD_HEADER FileRecord,
1096 
1097 ULONGLONG
1099 
1100 BOOLEAN
1102  PINDEX_ENTRY_ATTRIBUTE IndexEntry,
1103  BOOLEAN DirSearch,
1104  BOOLEAN CaseSensitive);
1105 
1106 NTSTATUS
1108 
1109 NTSTATUS
1111  ULONGLONG index,
1113 
1114 NTSTATUS
1116  PFILE_RECORD_HEADER MftRecord,
1117  PCHAR IndexRecord,
1118  ULONG IndexBlockSize,
1119  PINDEX_ENTRY_ATTRIBUTE FirstEntry,
1120  PINDEX_ENTRY_ATTRIBUTE LastEntry,
1122  PULONG StartEntry,
1123  PULONG CurrentEntry,
1124  BOOLEAN DirSearch,
1125  ULONGLONG NewDataSize,
1126  ULONGLONG NewAllocatedSize,
1127  BOOLEAN CaseSensitive);
1128 
1129 NTSTATUS
1131  ULONGLONG ParentMFTIndex,
1133  BOOLEAN DirSearch,
1134  ULONGLONG NewDataSize,
1135  ULONGLONG NewAllocationSize,
1136  BOOLEAN CaseSensitive);
1137 
1138 NTSTATUS
1140  ULONGLONG MftIndex,
1141  PFILE_RECORD_HEADER FileRecord);
1142 
1143 NTSTATUS
1145  PFILE_RECORD_HEADER MftRecord,
1146  ULONG Type,
1147  PCWSTR Name,
1148  ULONG NameLength,
1149  PNTFS_ATTR_CONTEXT * AttrCtx,
1150  PULONG Offset);
1151 
1152 VOID
1156  ULONGLONG vcn,
1157  ULONG count,
1158  PVOID buffer);
1159 
1160 NTSTATUS
1163 
1164 NTSTATUS
1167 
1168 NTSTATUS
1170  ULONGLONG lcn,
1171  ULONG count,
1172  PVOID buffer);
1173 
1174 VOID
1178 
1179 NTSTATUS
1181  PUNICODE_STRING PathName,
1182  BOOLEAN CaseSensitive,
1183  PFILE_RECORD_HEADER *FileRecord,
1184  PULONGLONG MFTIndex);
1185 
1186 NTSTATUS
1188  PUNICODE_STRING PathName,
1189  BOOLEAN CaseSensitive,
1190  PFILE_RECORD_HEADER *FileRecord,
1191  PULONGLONG MFTIndex,
1192  ULONGLONG CurrentMFTIndex);
1193 
1194 VOID
1196  PFILE_RECORD_HEADER FileRecord);
1197 
1198 NTSTATUS
1200  PUNICODE_STRING SearchPattern,
1201  PULONG FirstEntry,
1202  PFILE_RECORD_HEADER *FileRecord,
1203  PULONGLONG MFTIndex,
1204  ULONGLONG CurrentMFTIndex,
1205  BOOLEAN CaseSensitive);
1206 
1207 NTSTATUS
1209  ULONGLONG MFTIndex,
1211  PULONG FirstEntry,
1212  BOOLEAN DirSearch,
1213  BOOLEAN CaseSensitive,
1214  ULONGLONG *OutMFTIndex);
1215 
1216 /* misc.c */
1217 
1218 BOOLEAN
1220 
1223  PIRP Irp);
1224 
1225 PVOID
1227  BOOLEAN Paging);
1228 
1229 NTSTATUS
1231  IN ULONG Length,
1233 
1234 #if 0
1235 BOOLEAN
1236 wstrcmpjoki(PWSTR s1, PWSTR s2);
1237 
1238 VOID
1239 CdfsSwapString(PWCHAR Out,
1240  PUCHAR In,
1241  ULONG Count);
1242 #endif
1243 
1244 VOID
1245 NtfsFileFlagsToAttributes(ULONG NtfsAttributes,
1247 
1248 
1249 /* rw.c */
1250 
1251 NTSTATUS
1252 NtfsRead(PNTFS_IRP_CONTEXT IrpContext);
1253 
1254 NTSTATUS
1255 NtfsWrite(PNTFS_IRP_CONTEXT IrpContext);
1256 
1257 
1258 /* volinfo.c */
1259 
1260 NTSTATUS
1262  ULONG FirstDesiredCluster,
1263  ULONG DesiredClusters,
1264  PULONG FirstAssignedCluster,
1265  PULONG AssignedClusters);
1266 
1267 ULONGLONG
1269 
1270 NTSTATUS
1272 
1273 NTSTATUS
1275 
1276 
1277 /* ntfs.c */
1278 
1279 INIT_FUNCTION
1280 DRIVER_INITIALIZE DriverEntry;
1281 
1282 INIT_FUNCTION
1283 VOID
1284 NTAPI
1286 
1287 #endif /* NTFS_H */
NTSTATUS SplitBTreeNode(PB_TREE Tree, PB_TREE_FILENAME_NODE Node, PB_TREE_KEY *MedianKey, PB_TREE_FILENAME_NODE *NewRightHandSibling, BOOLEAN CaseSensitive)
Definition: btree.c:1883
FAST_IO_WRITE NtfsFastIoWrite
Definition: ntfs.h:912
PNTFS_ATTR_RECORD MoveAttributes(PDEVICE_EXTENSION DeviceExt, PNTFS_ATTR_RECORD FirstAttributeToMove, ULONG FirstAttributeOffset, ULONG_PTR MoveTo)
Definition: mft.c:512
UCHAR OEMID[8]
Definition: ntfs.h:55
ULONG Reserved
Definition: ntfs.h:416
signed char * PCHAR
Definition: retypes.h:7
PNTFS_ATTR_RECORD LastAttr
Definition: ntfs.h:548
NTSTATUS AddRun(PNTFS_VCB Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, ULONGLONG NextAssignedCluster, ULONG RunLength)
Definition: attrib.c:599
NTSTATUS NtfsSetEndOfFile(PNTFS_FCB Fcb, PFILE_OBJECT FileObject, PDEVICE_EXTENSION DeviceExt, ULONG IrpFlags, BOOLEAN CaseSensitive, PLARGE_INTEGER NewFileSize)
Definition: finfo.c:561
ULONG Flags
Definition: ntfs.h:150
PNTFS_ATTRIBUTE_LIST_ITEM NonResidentStart
Definition: ntfs.h:549
struct NTFS_RECORD_HEADER * PNTFS_RECORD_HEADER
const uint16_t * PCWSTR
Definition: typedefs.h:55
#define IN
Definition: typedefs.h:38
VOID NtfsDumpFileRecord(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord)
Definition: mft.c:3334
ULONG GetSizeOfIndexEntries(PB_TREE_FILENAME_NODE Node)
Definition: btree.c:855
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
Definition: exfuncs.h:656
USHORT Padding
Definition: ntfs.h:257
ULONG CollationRule
Definition: ntfs.h:390
PDRIVER_OBJECT DriverObject
Definition: ntfs.h:147
LIST_ENTRY FcbListEntry
Definition: ntfs.h:526
PDEVICE_OBJECT DeviceObject
Definition: ntfs.h:484
ULONGLONG AllocatedSize
Definition: ntfs.h:361
struct S2 s2
struct NTFS_IRP_CONTEXT * PNTFS_IRP_CONTEXT
UCHAR Unused2[4]
Definition: ntfs.h:34
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
NTFSIDENTIFIER Identifier
Definition: ntfs.h:476
struct _FCB NTFS_FCB
Type
Definition: Type.h:6
NTSTATUS NtfsMakeFCBFromDirEntry(PNTFS_VCB Vcb, PNTFS_FCB DirectoryFCB, PUNICODE_STRING Name, PCWSTR Stream, PFILE_RECORD_HEADER Record, ULONGLONG MFTIndex, PNTFS_FCB *fileFCB)
Definition: fcb.c:378
NPAGED_LOOKASIDE_LIST AttrCtxtLookasideList
Definition: ntfs.h:154
_In_ PFCB _In_ LONGLONG StartingOffset
Definition: cdprocs.h:282
ULONGLONG LastAccessTime
Definition: ntfs.h:329
UCHAR MinorFunction
Definition: ntfs.h:480
NPAGED_LOOKASIDE_LIST FcbLookasideList
Definition: ntfs.h:153
FILENAME_ATTRIBUTE FileName
Definition: ntfs.h:423
ULONGLONG LastWriteTime
Definition: ntfs.h:328
ULONGLONG ChangeTime
Definition: ntfs.h:358
ULONGLONG SerialNumber
Definition: ntfs.h:77
ULONG BytesPerSector
Definition: ntfs.h:67
PFILE_OBJECT FileObject
Definition: ntfs.h:516
PFILENAME_ATTRIBUTE GetFileNameFromRecord(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord, UCHAR NameType)
Definition: attrib.c:1809
PIO_STACK_LOCATION Stack
Definition: ntfs.h:478
NTSTATUS UpdateIndexNode(PDEVICE_EXTENSION DeviceExt, PFILE_RECORD_HEADER FileRecord, PB_TREE_FILENAME_NODE Node, ULONG IndexBufferSize, PNTFS_ATTR_CONTEXT IndexAllocationContext, ULONG IndexAllocationOffset)
Definition: btree.c:1319
struct NTFSIDENTIFIER * PNTFSIDENTIFIER
struct NTFS_ATTR_RECORD * PNTFS_ATTR_RECORD
PFILE_OBJECT StreamFileObject
Definition: ntfs.h:111
_In_ PIRP Irp
Definition: csq.h:116
struct FIXUP_ARRAY * PFIXUP_ARRAY
ULONG ReadAttribute(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_CONTEXT Context, ULONGLONG Offset, PCHAR Buffer, ULONG Length)
Definition: mft.c:1065
#define IRPCONTEXT_COMPLETE
Definition: ntfs.h:471
Definition: cdstruc.h:908
struct _NTFS_INFO NTFS_INFO
NTSTATUS UpdateFileRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MftIndex, PFILE_RECORD_HEADER FileRecord)
Definition: mft.c:1931
BOOLEAN NtfsFCBIsRoot(PNTFS_FCB Fcb)
Definition: fcb.c:147
#define MAX_PATH
Definition: ntfs.h:507
uint16_t * PWSTR
Definition: typedefs.h:54
FORCEINLINE NTSTATUS NtfsMarkIrpContextForQueue(PNTFS_IRP_CONTEXT IrpContext)
Definition: ntfs.h:565
ULONG MFTRecordNumber
Definition: ntfs.h:258
ULONGLONG CacheRunOffset
Definition: ntfs.h:493
NTSTATUS FindNextAttribute(PFIND_ATTR_CONTXT Context, PNTFS_ATTR_RECORD *Attribute)
Definition: attrib.c:1431
PNTFS_FCB NtfsMakeRootFCB(PNTFS_VCB Vcb)
Definition: fcb.c:308
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned char * PUCHAR
Definition: retypes.h:3
char CHAR
Definition: xmlstorage.h:175
NTSTATUS NtfsSetInformation(PNTFS_IRP_CONTEXT IrpContext)
Definition: finfo.c:717
struct NTFS_ATTR_CONTEXT * PNTFS_ATTR_CONTEXT
LONG NTSTATUS
Definition: precomp.h:26
BOOLEAN NtfsFCBIsDirectory(PNTFS_FCB Fcb)
Definition: fcb.c:127
NTSTATUS NtfsLookupFile(PDEVICE_EXTENSION Vcb, PUNICODE_STRING PathName, BOOLEAN CaseSensitive, PFILE_RECORD_HEADER *FileRecord, PULONGLONG MFTIndex)
Definition: mft.c:3287
ULONG MftDataOffset
Definition: ntfs.h:121
UCHAR BootStrap[426]
Definition: ntfs.h:58
UCHAR Unused0[7]
Definition: ntfs.h:29
NPAGED_LOOKASIDE_LIST FileRecLookasideList
Definition: ntfs.h:119
ULONG FileAttribute
Definition: ntfs.h:330
ULONGLONG CacheRunLength
Definition: ntfs.h:495
PB_TREE_KEY FirstKey
Definition: ntfs.h:446
NTSTATUS NtfsFileSystemControl(PNTFS_IRP_CONTEXT IrpContext)
Definition: fsctl.c:963
USHORT Reserved
Definition: ntfs.h:422
ULONGLONG GetIndexEntryVCN(PINDEX_ENTRY_ATTRIBUTE IndexEntry)
Definition: btree.c:1641
ULONG DirIndex
Definition: ntfs.h:529
NTSTATUS SetNonResidentAttributeDataLength(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, PLARGE_INTEGER DataSize)
Definition: mft.c:756
ULONGLONG CacheRunCurrentOffset
Definition: ntfs.h:497
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
USHORT Length
Definition: ntfs.h:419
PNTFS_FCB NtfsGrabFCBFromTable(PNTFS_VCB Vcb, PCWSTR FileName)
Definition: fcb.c:211
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
ULONG BytesInUse
Definition: ntfs.h:253
ULONGLONG NtfsGetFileSize(PDEVICE_EXTENSION DeviceExt, PFILE_RECORD_HEADER FileRecord, PCWSTR Stream, ULONG StreamLength, PULONGLONG AllocatedSize)
Definition: dirctl.c:38
PFILE_RECORD_HEADER NtfsCreateEmptyFileRecord(PDEVICE_EXTENSION DeviceExt)
Definition: create.c:818
NTSTATUS NtfsReadSectors(IN PDEVICE_OBJECT DeviceObject, IN ULONG DiskSector, IN ULONG SectorCount, IN ULONG SectorSize, IN OUT PUCHAR Buffer, IN BOOLEAN Override)
Definition: blockdev.c:308
UCHAR MajorVersion
Definition: ntfs.h:457
GLuint buffer
Definition: glext.h:5915
ULONG LastCluster
Definition: ntfs.h:139
NTSTATUS NtfsLockUserBuffer(IN PIRP Irp, IN ULONG Length, IN LOCK_OPERATION Operation)
Definition: misc.c:158
struct _FIND_ATTR_CONTXT FIND_ATTR_CONTXT
ULONGLONG VCN
Definition: ntfs.h:445
USHORT LinkCount
Definition: ntfs.h:536
UCHAR NameLength
Definition: ntfs.h:373
UCHAR SectorsPerCluster
Definition: ntfs.h:28
Definition: ntfs.h:404
DRIVER_DISPATCH NtfsFsdDispatch
Definition: ntfs.h:888
WORK_QUEUE_ITEM WorkQueueItem
Definition: ntfs.h:481
struct _BIOS_PARAMETERS_BLOCK * PBIOS_PARAMETERS_BLOCK
uint16_t * PWCHAR
Definition: typedefs.h:54
PB_TREE_FILENAME_NODE RootNode
Definition: ntfs.h:451
USHORT SequenceNumber
Definition: ntfs.h:249
WCHAR PathName[MAX_PATH]
Definition: ntfs.h:521
NTSTATUS NtfsDeviceControl(PNTFS_IRP_CONTEXT IrpContext)
Definition: devctl.c:36
VOID DumpBTreeKey(PB_TREE Tree, PB_TREE_KEY Key, ULONG Number, ULONG Depth)
Definition: btree.c:1549
NTSTATUS FindNextAttributeListItem(PFIND_ATTR_CONTXT Context, PNTFS_ATTRIBUTE_LIST_ITEM *Item)
Definition: attrib.c:1321
ULONGLONG MFTIndex
Definition: ntfs.h:535
ULONGLONG ClusterCount
Definition: ntfs.h:71
PNTFS_ATTR_CONTEXT PrepareAttributeContext(PNTFS_ATTR_RECORD AttrRecord)
Definition: mft.c:41
NTSTATUS ConvertDataRunsToLargeMCB(PUCHAR DataRun, PLARGE_MCB DataRunsMCB, PULONGLONG pNextVBN)
Definition: attrib.c:825
ULONGLONG LastAccessTime
Definition: ntfs.h:360
ULONG Entry
Definition: ntfs.h:136
struct _B_TREE_KEY * PB_TREE_KEY
ULONGLONG VCN
Definition: ntfs.h:400
ULONGLONG NtfsGetFreeClusters(PDEVICE_EXTENSION DeviceExt)
Definition: volinfo.c:37
ULONGLONG MFTIndex
Definition: ntfs.h:310
CHAR InputBuffer[80]
Definition: conmgr.c:33
struct VOLINFO_ATTRIBUTE * PVOLINFO_ATTRIBUTE
UCHAR MajorVersion
Definition: ntfs.h:80
NTSTATUS DemoteBTreeRoot(PB_TREE Tree)
Definition: btree.c:1089
USHORT DataOffset
Definition: ntfs.h:414
LIST_ENTRY NextCCB
Definition: ntfs.h:132
ULONG FileAttributes
Definition: ntfs.h:363
USHORT KeyLength
Definition: ntfs.h:420
USHORT DataLength
Definition: ntfs.h:415
uint32_t ULONG_PTR
Definition: typedefs.h:63
VOID NTAPI NtfsRelLazyWrite(PVOID Context)
Definition: fastio.c:51
NTSTATUS NtfsDirectoryControl(PNTFS_IRP_CONTEXT IrpContext)
Definition: dirctl.c:590
PNTFS_ATTRIBUTE_LIST_ITEM NonResidentCur
Definition: ntfs.h:551
LONGLONG USN
Definition: ntbasedef.h:395
NTSTATUS UpdateIndexEntryFileNameSize(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER MftRecord, PCHAR IndexRecord, ULONG IndexBlockSize, PINDEX_ENTRY_ATTRIBUTE FirstEntry, PINDEX_ENTRY_ATTRIBUTE LastEntry, PUNICODE_STRING FileName, PULONG StartEntry, PULONG CurrentEntry, BOOLEAN DirSearch, ULONGLONG NewDataSize, ULONGLONG NewAllocatedSize, BOOLEAN CaseSensitive)
Definition: mft.c:1770
VOID NtfsDumpDataRuns(PVOID StartOfRun, ULONGLONG CurrentLCN)
Definition: attrib.c:1755
NTSTATUS NtfsCleanup(PNTFS_IRP_CONTEXT IrpContext)
Definition: cleanup.c:89
struct _B_TREE_FILENAME_NODE * PB_TREE_FILENAME_NODE
Definition: ntfs.h:129
struct B_TREE * PB_TREE
ULONG FirstEntryOffset
Definition: ntfs.h:380
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
Definition: ketypes.h:256
NTFSIDENTIFIER Identifier
Definition: ntfs.h:511
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
VOID SetFileRecordEnd(PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttrEnd, ULONG EndMarker)
Definition: mft.c:706
struct _EXTENDED_BIOS_PARAMETERS_BLOCK EXTENDED_BIOS_PARAMETERS_BLOCK
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
struct FILENAME_ATTRIBUTE * PFILENAME_ATTRIBUTE
struct NTFS_ATTRIBUTE_LIST_ITEM * PNTFS_ATTRIBUTE_LIST_ITEM
ERESOURCE Resource
Definition: ntfs.h:146
long LONG
Definition: pedump.c:60
USHORT AttributeOffset
Definition: ntfs.h:251
INDEX_HEADER_ATTRIBUTE Header
Definition: ntfs.h:401
NTSTATUS NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN CaseSensitive, BOOLEAN CanWait)
Definition: create.c:681
PNTFS_FCB NtfsCreateFCB(PCWSTR FileName, PCWSTR Stream, PNTFS_VCB Vcb)
Definition: fcb.c:67
USHORT USN
Definition: ntfs.h:557
ULARGE_INTEGER MftMirrStart
Definition: ntfs.h:73
struct _B_TREE_KEY B_TREE_KEY
ULONGLONG StartingVCN
Definition: ntfs.h:309
ULONG LastOffset
Definition: ntfs.h:140
USHORT VolumeLabelLength
Definition: ntfs.h:78
unsigned char BOOLEAN
ULONGLONG SectorCount
Definition: ntfs.h:70
NTSTATUS NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, ULONGLONG DirectoryMftIndex, ULONGLONG FileReferenceNumber, PFILENAME_ATTRIBUTE FilenameAttribute, BOOLEAN CaseSensitive)
Definition: mft.c:2192
NTFS_INFO NtfsInfo
Definition: ntfs.h:117
LONG RefCount
Definition: ntfs.h:531
NTSTATUS ReadLCN(PDEVICE_EXTENSION Vcb, ULONGLONG lcn, ULONG count, PVOID buffer)
Definition: mft.c:2631
NTSTATUS NtfsCloseFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject)
Definition: close.c:40
BOOLEAN NtfsFCBIsReparsePoint(PNTFS_FCB Fcb)
Definition: fcb.c:134
PNTFS_IRP_CONTEXT NtfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: misc.c:66
WCHAR Stream[MAX_PATH]
Definition: ntfs.h:519
VOID NTAPI NtfsRelReadAhead(PVOID Context)
Definition: fastio.c:72
NTSTATUS UpdateIndexAllocation(PDEVICE_EXTENSION DeviceExt, PB_TREE Tree, ULONG IndexBufferSize, PFILE_RECORD_HEADER FileRecord)
Definition: btree.c:1182
#define IRPCONTEXT_QUEUE
Definition: ntfs.h:472
#define FORCEINLINE
Definition: ntbasedef.h:221
_In_ LPGUID _In_ PVOID Data
Definition: classpnp.h:778
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
USHORT NextAttributeNumber
Definition: ntfs.h:256
USHORT LinkCount
Definition: ntfs.h:250
WCHAR * ObjectName
Definition: ntfs.h:520
#define MAXIMUM_VOLUME_LABEL_LENGTH
Definition: iotypes.h:154
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
Definition: wmitypes.h:55
struct _B_TREE_KEY * NextKey
Definition: ntfs.h:432
struct _FILE_RECORD_HEADER * PFILE_RECORD_HEADER
Definition: bufpool.h:45
ULONG BytesPerIndexRecord
Definition: ntfs.h:75
B_TREE_FILENAME_NODE * LesserChild
Definition: ntfs.h:433
NTSTATUS NtfsQueryInformation(PNTFS_IRP_CONTEXT IrpContext)
Definition: finfo.c:418
GLuint index
Definition: glext.h:6031
_Must_inspect_result_ __drv_aliasesMem _In_ PDEVICE_OBJECT _In_opt_ PVOID _In_ ULONG _Out_opt_ PVOID OutputBuffer
Definition: iofuncs.h:713
struct STANDARD_INFORMATION * PSTANDARD_INFORMATION
NTSTATUS CreateEmptyBTree(PB_TREE *NewTree)
Definition: btree.c:348
NTSTATUS NtfsRead(PNTFS_IRP_CONTEXT IrpContext)
Definition: rw.c:209
PDEVICE_EXTENSION Vcb
Definition: ntfs.h:544
BOOLEAN NTAPI NtfsAcqReadAhead(PVOID Context, BOOLEAN Wait)
Definition: fastio.c:60
ULONG SizeOfEntry
Definition: ntfs.h:391
NTSTATUS FindFirstAttributeListItem(PFIND_ATTR_CONTXT Context, PNTFS_ATTRIBUTE_LIST_ITEM *Item)
Definition: attrib.c:1307
VOID NtfsDestroyFCB(PNTFS_FCB Fcb)
Definition: fcb.c:115
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
Definition: fltkernel.h:1230
struct DEVICE_EXTENSION * PDEVICE_EXTENSION
_Inout_ PFILE_OBJECT FileObject
Definition: cdprocs.h:593
USHORT Length
Definition: ntfs.h:344
NTSTATUS NtfsInsertKey(PB_TREE Tree, ULONGLONG FileReference, PFILENAME_ATTRIBUTE FileNameAttribute, PB_TREE_FILENAME_NODE Node, BOOLEAN CaseSensitive, ULONG MaxIndexRootSize, ULONG IndexRecordSize, PB_TREE_KEY *MedianKey, PB_TREE_FILENAME_NODE *NewRightHandSibling)
Definition: btree.c:1691
FSRTL_COMMON_FCB_HEADER RFCB
Definition: ntfs.h:513
ATTRIBUTE_TYPE
Definition: ntfs.h:159
USHORT AttributeNumber
Definition: ntfs.h:349
ULONG OpenHandleCount
Definition: ntfs.h:533
int64_t LONGLONG
Definition: typedefs.h:66
NTSTATUS NtfsReadFCBAttribute(PNTFS_VCB Vcb, PNTFS_FCB pFCB, ULONG Type, PCWSTR Name, ULONG NameLength, PVOID *Data)
Definition: fcb.c:724
NTSTATUS ConvertLargeMCBToDataRuns(PLARGE_MCB DataRunsMCB, PUCHAR RunBuffer, ULONG MaxBufferSize, PULONG UsedBufferSize)
Definition: attrib.c:896
BOOLEAN NtfsIsIrpTopLevel(PIRP Irp)
Definition: misc.c:43
ULONGLONG GetAllocationOffsetFromVCN(PDEVICE_EXTENSION DeviceExt, ULONG IndexBufferSize, ULONGLONG Vcn)
Definition: btree.c:1630
USHORT AlignmentOrReserved
Definition: ntfs.h:369
NTSTATUS FindFirstAttribute(PFIND_ATTR_CONTXT Context, PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord, BOOLEAN OnlyResident, PNTFS_ATTR_RECORD *Attribute)
Definition: attrib.c:1383
ULONGLONG DataSize
Definition: ntfs.h:362
UCHAR Unused1[2]
Definition: ntfs.h:31
FAST_IO_CHECK_IF_POSSIBLE NtfsFastIoCheckIfPossible
Definition: ntfs.h:910
NTSTATUS AddFileName(PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress, PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN CaseSensitive, PULONGLONG ParentMftIndex)
Definition: attrib.c:230
BOOLEAN DiskNeedsUpdating
Definition: ntfs.h:444
VOID EnumerAttribute(PFILE_RECORD_HEADER file, PDEVICE_EXTENSION Vcb, PDEVICE_OBJECT DeviceObject)
struct _BOOT_SECTOR * PBOOT_SECTOR
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _FILE_RECORD_HEADER FILE_RECORD_HEADER
NTSTATUS NtfsCreateFileRecord(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject, BOOLEAN CaseSensitive, BOOLEAN CanWait)
Definition: create.c:886
NTSTATUS AddNewMftEntry(PFILE_RECORD_HEADER FileRecord, PDEVICE_EXTENSION DeviceExt, PULONGLONG DestinationIndex, BOOLEAN CanWait)
Definition: mft.c:2022
ULONG BytesAllocated
Definition: ntfs.h:254
#define STATUS_PENDING
Definition: ntstatus.h:82
struct _FILE_RECORD_HEADER * MasterFileTable
Definition: ntfs.h:114
PFILE_OBJECT PtrFileObject
Definition: ntfs.h:133
char CCHAR
Definition: typedefs.h:50
struct S1 s1
uint64_t ULONGLONG
Definition: typedefs.h:65
ULONG BytesPerFileRecord
Definition: ntfs.h:74
VOID NtfsFileFlagsToAttributes(ULONG NtfsAttributes, PULONG FileAttributes)
Definition: misc.c:105
#define Vcb
Definition: cdprocs.h:1425
UCHAR MajorFunction
Definition: ntfs.h:479
struct _NTFS_ATTR_CONTEXT NTFS_ATTR_CONTEXT
PNTFS_ATTR_RECORD FirstAttr
Definition: ntfs.h:546
NTSTATUS SetResidentAttributeDataLength(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, PLARGE_INTEGER DataSize)
Definition: mft.c:891
BIOS_PARAMETERS_BLOCK BPB
Definition: ntfs.h:56
BOOLEAN NtfsFCBIsCompressed(PNTFS_FCB Fcb)
Definition: fcb.c:141
ULONG AttributeType
Definition: ntfs.h:389
ULONGLONG CreationTime
Definition: ntfs.h:357
ULONG GetFileNameAttributeLength(PFILENAME_ATTRIBUTE FileNameAttribute)
Definition: attrib.c:1978
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
INDEX_HEADER_ATTRIBUTE Header
Definition: ntfs.h:394
enum ATTRIBUTE_TYPE * PATTRIBUTE_TYPE
* PFILE_OBJECT
Definition: iotypes.h:1955
CRegistryTree Tree
NTSTATUS FixupUpdateSequenceArray(PDEVICE_EXTENSION Vcb, PNTFS_RECORD_HEADER Record)
Definition: mft.c:1965
struct DEVICE_EXTENSION NTFS_VCB
struct INDEX_HEADER_ATTRIBUTE * PINDEX_HEADER_ATTRIBUTE
_In_opt_ PLARGE_INTEGER NewFileSize
Definition: mmfuncs.h:609
NTSTATUS AddFixupArray(PDEVICE_EXTENSION Vcb, PNTFS_RECORD_HEADER Record)
Definition: mft.c:2603
VOID DestroyBTree(PB_TREE Tree)
Definition: btree.c:1542
ULONGLONG AttributeDataLength(PNTFS_ATTR_RECORD AttrRecord)
Definition: mft.c:259
ULONG Flags
Definition: ntfs.h:532
PNTFS_VCB Vcb
Definition: ntfs.h:517
PWCHAR DirectorySearchPattern
Definition: ntfs.h:138
BOOLEAN CompareFileName(PUNICODE_STRING FileName, PINDEX_ENTRY_ATTRIBUTE IndexEntry, BOOLEAN DirSearch, BOOLEAN CaseSensitive)
Definition: mft.c:2650
unsigned char UCHAR
Definition: xmlstorage.h:181
USHORT Flags
Definition: ntfs.h:421
UCHAR NameOffset
Definition: ntfs.h:346
INIT_FUNCTION DRIVER_INITIALIZE DriverEntry
Definition: ntfs.h:1280
struct NTFS_CCB * PNTFS_CCB
NTSTATUS NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, PUNICODE_STRING PathName, BOOLEAN CaseSensitive, PFILE_RECORD_HEADER *FileRecord, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex)
Definition: mft.c:3229
NTSTATUS AddData(PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress)
Definition: attrib.c:160
NTSTATUS NtfsAttachFCBToFileObject(PNTFS_VCB Vcb, PNTFS_FCB Fcb, PFILE_OBJECT FileObject)
Definition: fcb.c:453
ULONG Type
Definition: ntfs.h:95
_In_ GUID _In_ PVOID _In_ ULONG ValueLength
Definition: hubbusif.h:311
PNTFS_ATTR_RECORD CurrAttr
Definition: ntfs.h:547
struct _FCB * PNTFS_FCB
ULONG TotalSizeOfEntries
Definition: ntfs.h:381
USHORT UsaCount
Definition: ntfs.h:237
VOID ReleaseAttributeContext(PNTFS_ATTR_CONTEXT Context)
Definition: mft.c:104
ULONG Offset
Definition: ntfs.h:552
ULONG Flags
Definition: ntfs.h:477
BOOLEAN NTAPI NtfsAcqLazyWrite(PVOID Context, BOOLEAN Wait)
Definition: fastio.c:39
FAST_IO_READ NtfsFastIoRead
Definition: ntfs.h:911
Definition: typedefs.h:117
NTFSIDENTIFIER Identifier
Definition: ntfs.h:131
ULONGLONG DirectoryFileReferenceNumber
Definition: ntfs.h:356
VOID ReadVCN(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER file, ATTRIBUTE_TYPE type, ULONGLONG vcn, ULONG count, PVOID buffer)
ULONG SectorCount
Definition: part_xbox.c:32
DRIVER_DISPATCH(nfs41_FsdDispatch)
UCHAR ClustersPerIndexRecord
Definition: ntfs.h:392
USHORT Flags
Definition: ntfs.h:82
NTSTATUS AddIndexRoot(PNTFS_VCB Vcb, PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress, PINDEX_ROOT_ATTRIBUTE NewIndexRoot, ULONG RootLength, PCWSTR Name, USHORT NameLength)
Definition: attrib.c:495
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
Definition: ntpoapi.h:204
ERESOURCE MainResource
Definition: ntfs.h:524
VOID FindCloseAttribute(PFIND_ATTR_CONTXT Context)
Definition: attrib.c:1465
struct REPARSE_POINT_ATTRIBUTE * PREPARSE_POINT_ATTRIBUTE
PSTANDARD_INFORMATION GetStandardInformationFromRecord(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord)
Definition: attrib.c:1940
PDEVICE_OBJECT DeviceObject
Definition: ntfs.h:148
USHORT Flags
Definition: ntfs.h:459
ULONGLONG Unknown1
Definition: ntfs.h:456
NTSTATUS SetAttributeDataLength(PFILE_OBJECT FileObject, PNTFS_FCB Fcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, PLARGE_INTEGER DataSize)
Definition: mft.c:615
ULONG ReparseTag
Definition: ntfs.h:371
NTSTATUS NtfsDeviceIoControl(IN PDEVICE_OBJECT DeviceObject, IN ULONG ControlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, IN OUT PVOID OutputBuffer, IN OUT PULONG OutputBufferSize, IN BOOLEAN Override)
Definition: blockdev.c:326
LONG CompareTreeKeys(PB_TREE_KEY Key1, PB_TREE_KEY Key2, BOOLEAN CaseSensitive)
Definition: btree.c:417
VOID NtfsGrabFCB(PNTFS_VCB Vcb, PNTFS_FCB Fcb)
Definition: fcb.c:154
UCHAR MinorVersion
Definition: ntfs.h:458
NTSTATUS SavedExceptionCode
Definition: ntfs.h:486
NTSTATUS NtfsCreate(PNTFS_IRP_CONTEXT IrpContext)
Definition: create.c:622
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
ULONG Unknown2
Definition: ntfs.h:460
NTSTATUS UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, ULONGLONG ParentMFTIndex, PUNICODE_STRING FileName, BOOLEAN DirSearch, ULONGLONG NewDataSize, ULONGLONG NewAllocationSize, BOOLEAN CaseSensitive)
Definition: mft.c:1660
ULONGLONG LastWriteTime
Definition: ntfs.h:359
NTSTATUS ReadFileRecord(PDEVICE_EXTENSION Vcb, ULONGLONG index, PFILE_RECORD_HEADER file)
Definition: mft.c:1631
LONGLONG CacheRunLastLCN
Definition: ntfs.h:496
ULONG MftZoneReservation
Definition: ntfs.h:84
VOID NtfsAddFCBToTable(PNTFS_VCB Vcb, PNTFS_FCB Fcb)
Definition: fcb.c:198
ULONGLONG FileMFTIndex
Definition: ntfs.h:499
enum _LOCK_OPERATION LOCK_OPERATION
NPAGED_LOOKASIDE_LIST IrpContextLookasideList
Definition: ntfs.h:152
UCHAR GetPackedByteCount(LONGLONG NumberToPack, BOOLEAN IsSigned)
Definition: attrib.c:1846
unsigned short USHORT
Definition: pedump.c:61
ULONGLONG IndexedFile
Definition: ntfs.h:410
CACHE_MANAGER_CALLBACKS CacheMgrCallbacks
Definition: ntfs.h:149
UCHAR Unused3[4]
Definition: ntfs.h:35
NTSTATUS NtfsWriteDisk(IN PDEVICE_OBJECT DeviceObject, IN LONGLONG StartingOffset, IN ULONG Length, IN ULONG SectorSize, IN const PUCHAR Buffer)
Definition: blockdev.c:163
EXTENDED_BIOS_PARAMETERS_BLOCK EBPB
Definition: ntfs.h:57
NTSTATUS GetLastClusterInDataRun(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_RECORD Attribute, PULONGLONG LastCluster)
Definition: attrib.c:1908
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH]
Definition: ntfs.h:79
struct DEVICE_EXTENSION * PNTFS_VCB
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
NTSTATUS CreateIndexRootFromBTree(PDEVICE_EXTENSION DeviceExt, PB_TREE Tree, ULONG MaxIndexSize, PINDEX_ROOT_ATTRIBUTE *IndexRoot, ULONG *Length)
Definition: btree.c:910
BOOLEAN OnlyResident
Definition: ntfs.h:545
struct _BIOS_PARAMETERS_BLOCK BIOS_PARAMETERS_BLOCK
LARGE_INTEGER CurrentByteOffset
Definition: ntfs.h:134
NTSTATUS CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecordWithIndex, PNTFS_ATTR_CONTEXT IndexRootContext, PINDEX_ROOT_ATTRIBUTE IndexRoot, PB_TREE *NewTree)
Definition: btree.c:682
ULONGLONG StartVcn
Definition: ntfs.h:347
ATTRIBUTE_TYPE AttributeType
Definition: ntfs.h:343
unsigned int * PULONG
Definition: retypes.h:1
struct _FIND_ATTR_CONTXT * PFIND_ATTR_CONTXT
struct _NTFS_ATTR_CONTEXT * MFTContext
Definition: ntfs.h:113
struct ATTRIBUTE_LIST * PATTRIBUTE_LIST
USHORT Flags
Definition: ntfs.h:252
struct _EXTENDED_BIOS_PARAMETERS_BLOCK * PEXTENDED_BIOS_PARAMETERS_BLOCK
struct INDEX_BUFFER * PINDEX_BUFFER
IN PVOID Instance
Definition: pci.h:359
UCHAR NameLength
Definition: ntfs.h:345
Definition: ntfs.h:449
NTSTATUS NtfsFindFileAt(PDEVICE_EXTENSION Vcb, PUNICODE_STRING SearchPattern, PULONG FirstEntry, PFILE_RECORD_HEADER *FileRecord, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex, BOOLEAN CaseSensitive)
Definition: mft.c:3355
NTSTATUS AddBitmap(PNTFS_VCB Vcb, PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress, PCWSTR Name, USHORT NameLength)
Definition: attrib.c:72
NTSTATUS InternalSetResidentAttributeLength(PDEVICE_EXTENSION DeviceExt, PNTFS_ATTR_CONTEXT AttrContext, PFILE_RECORD_HEADER FileRecord, ULONG AttrOffset, ULONG DataSize)
Definition: mft.c:542
NTSTATUS NtfsFCBInitializeCache(PNTFS_VCB Vcb, PNTFS_FCB Fcb)
Definition: fcb.c:254
ULONGLONG Lsn
Definition: ntfs.h:238
VOID DumpBTree(PB_TREE Tree)
Definition: btree.c:1622
struct _BEEP_DEVICE_EXTENSION DEVICE_EXTENSION
NTFSIDENTIFIER Identifier
Definition: ntfs.h:145
PNTFS_ATTR_RECORD pRecord
Definition: ntfs.h:501
INIT_FUNCTION VOID NTAPI NtfsInitializeFunctionPointers(PDRIVER_OBJECT DriverObject)
Definition: ntfs.c:175
BOOLEAN IsTopLevel
Definition: ntfs.h:483
VOID DestroyBTreeNode(PB_TREE_FILENAME_NODE Node)
Definition: btree.c:1511
NTFS_RECORD_HEADER Ntfs
Definition: ntfs.h:248
VOID DumpBTreeNode(PB_TREE Tree, PB_TREE_FILENAME_NODE Node, ULONG Number, ULONG Depth)
Definition: btree.c:1583
Definition: iotypes.h:166
#define OUT
Definition: typedefs.h:39
VOID NtfsDumpData(ULONG_PTR Buffer, ULONG Length)
Definition: mft.c:3297
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
Definition: ntbasedef.h:390
NTSTATUS NtfsGetFCBForFile(PNTFS_VCB Vcb, PNTFS_FCB *pParentFCB, PNTFS_FCB *pFCB, PCWSTR pFileName, BOOLEAN CaseSensitive)
Definition: fcb.c:592
FAST_IO_DISPATCH FastIoDispatch
Definition: ntfs.h:151
NTSTATUS WriteAttribute(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_CONTEXT Context, ULONGLONG Offset, const PUCHAR Buffer, ULONG Length, PULONG LengthWritten, PFILE_RECORD_HEADER FileRecord)
Definition: mft.c:1315
PUCHAR DecodeRun(PUCHAR DataRun, LONGLONG *DataRunOffset, ULONGLONG *DataRunLength)
Definition: attrib.c:966
ULONG ERESOURCE
Definition: env_spec_w32.h:594
PUCHAR CacheRun
Definition: ntfs.h:492
unsigned int ULONG
Definition: retypes.h:1
ULONGLONG BaseFileRecord
Definition: ntfs.h:255
PVOID NtfsGetUserBuffer(PIRP Irp, BOOLEAN Paging)
Definition: misc.c:120
ERESOURCE PagingIoResource
Definition: ntfs.h:523
NTSTATUS AddIndexAllocation(PNTFS_VCB Vcb, PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress, PCWSTR Name, USHORT NameLength)
Definition: attrib.c:388
PNTFS_GLOBAL_DATA NtfsGlobalData
Definition: ntfs.c:41
struct _FCB * VolumeFcb
Definition: ntfs.h:115
_In_ FLT_SET_CONTEXT_OPERATION Operation
Definition: fltkernel.h:1468
ULONGLONG CreationTime
Definition: ntfs.h:326
LONGLONG CacheRunStartLCN
Definition: ntfs.h:494
struct _FCB * ParentFcb
Definition: cdstruc.h:946
ULONG SectorsPerCluster
Definition: ntfs.h:68
struct INDEX_ROOT_ATTRIBUTE * PINDEX_ROOT_ATTRIBUTE
CCHAR PriorityBoost
Definition: ntfs.h:487
PFILENAME_ATTRIBUTE GetBestFileNameFromRecord(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord)
Definition: attrib.c:1985
ULARGE_INTEGER MftStart
Definition: ntfs.h:72
NTFS_RECORD_HEADER Ntfs
Definition: ntfs.h:399
struct NTFS_GLOBAL_DATA * PNTFS_GLOBAL_DATA
NTSTATUS FindAttribute(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER MftRecord, ULONG Type, PCWSTR Name, ULONG NameLength, PNTFS_ATTR_CONTEXT *AttrCtx, PULONG Offset)
Definition: mft.c:131
NTSTATUS AddStandardInformation(PFILE_RECORD_HEADER FileRecord, PNTFS_ATTR_RECORD AttributeAddress)
Definition: attrib.c:766
NTSTATUS NtfsClose(PNTFS_IRP_CONTEXT IrpContext)
Definition: close.c:84
PINDEX_ENTRY_ATTRIBUTE IndexEntry
Definition: ntfs.h:434
USHORT UsaOffset
Definition: ntfs.h:236
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 NameType
Definition: acpixf.h:654
NTSTATUS FreeClusters(PNTFS_VCB Vcb, PNTFS_ATTR_CONTEXT AttrContext, ULONG AttrOffset, PFILE_RECORD_HEADER FileRecord, ULONG ClustersToFree)
Definition: attrib.c:1057
struct _B_TREE_FILENAME_NODE B_TREE_FILENAME_NODE
Definition: ntfs.h:427
_In_ ULONG SectorSize
Definition: halfuncs.h:291
ULONGLONG FileOwnerMFTIndex
Definition: ntfs.h:500
ULONGLONG AttributeAllocatedLength(PNTFS_ATTR_RECORD AttrRecord)
Definition: mft.c:249
USHORT BytesPerSector
Definition: ntfs.h:27
NTSTATUS NtfsReadDisk(IN PDEVICE_OBJECT DeviceObject, IN LONGLONG StartingOffset, IN ULONG Length, IN ULONG SectorSize, IN OUT PUCHAR Buffer, IN BOOLEAN Override)
Definition: blockdev.c:37
_In_ PFCB Fcb
Definition: cdprocs.h:151
PNTFS_ATTRIBUTE_LIST_ITEM NonResidentEnd
Definition: ntfs.h:550
_In_ BOOLEAN _In_ USHORT Directory
Definition: rtlfuncs.h:3734
FILENAME_ATTRIBUTE Entry
Definition: ntfs.h:538
BOOLEAN EnableWriteSupport
Definition: ntfs.h:155
SECTION_OBJECT_POINTERS SectionObjectPointers
Definition: ntfs.h:514
UCHAR MinorVersion
Definition: ntfs.h:81
USHORT EndSector
Definition: ntfs.h:59
ULONG Size
Definition: ntfs.h:96
PFILE_OBJECT FileObject
Definition: ntfs.h:485
NTSTATUS NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING FileName, PULONG FirstEntry, BOOLEAN DirSearch, BOOLEAN CaseSensitive, ULONGLONG *OutMFTIndex)
Definition: mft.c:3146
ULONG BytesPerCluster
Definition: ntfs.h:69
UCHAR Jump[3]
Definition: ntfs.h:54
ULONGLONG FileReferenceNumber
Definition: ntfs.h:348
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
Definition: ndis.h:4751
PNTFS_FCB NtfsOpenRootFCB(PNTFS_VCB Vcb)
Definition: fcb.c:363
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
Definition: fltkernel.h:1092
struct _NTFS_INFO * PNTFS_INFO
NTSTATUS NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, ULONG FirstDesiredCluster, ULONG DesiredClusters, PULONG FirstAssignedCluster, PULONG AssignedClusters)
Definition: volinfo.c:105
struct INDEX_ENTRY_ATTRIBUTE * PINDEX_ENTRY_ATTRIBUTE
NTSTATUS NtfsQueryVolumeInformation(PNTFS_IRP_CONTEXT IrpContext)
Definition: volinfo.c:343
NTSTATUS UpdateMftMirror(PNTFS_VCB Vcb)
Definition: mft.c:2714
LARGE_MCB DataRunsMCB
Definition: ntfs.h:498
ULONGLONG ChangeTime
Definition: ntfs.h:327
NTFSIDENTIFIER Identifier
Definition: ntfs.h:101
NTSTATUS NtfsSetVolumeInformation(PNTFS_IRP_CONTEXT IrpContext)
Definition: volinfo.c:420
NTSTATUS NtfsWrite(PNTFS_IRP_CONTEXT IrpContext)
Definition: rw.c:530
VOID NtfsDumpFileAttributes(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER FileRecord)
Definition: attrib.c:1790
VOID NtfsReleaseFCB(PNTFS_VCB Vcb, PNTFS_FCB Fcb)
Definition: fcb.c:171
UCHAR NameType
Definition: ntfs.h:374
Definition: dlist.c:348
BOOLEAN HasValidVCN
Definition: ntfs.h:443
IN BOOLEAN Wait
Definition: fatprocs.h:1529
Definition: fci.c:126
struct _BOOT_SECTOR BOOT_SECTOR
USHORT SectorsPerTrack
Definition: ntfs.h:32
USHORT PackedEaSize
Definition: ntfs.h:368