Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.3 KiB

  1. #define $ATTRIBUTE_LIST 0x20
  2. #define $DATA 0x80
  3. #define $END 0xffffffff
  4. #define SEQUENCE_NUMBER_STRIDE 0x200
  5. #define BIT_MAP_FILE_NUMBER 6
  6. typedef struct _MFT_SEGMENT_REFERENCE {
  7. ULONG LowPart;
  8. ULONG HighPart;
  9. UINT SeqNo;
  10. } MFT_SEGMENT_REFERENCE, _far *FPMFT_SEGMENT_REFERENCE;
  11. typedef struct _MULTI_SECTOR_HEADER {
  12. ULONG Signature;
  13. UINT UpdateArrayOfs;
  14. UINT UpdateArraySize;
  15. } MULTI_SECTOR_HEADER, _far *FPMULTI_SECTOR_HEADER;
  16. typedef struct _FILE_RECORD_SEGMENT {
  17. MULTI_SECTOR_HEADER Header;
  18. ULONG Lsn;
  19. ULONG Lsnh;
  20. UINT SequenceNumber;
  21. UINT ReferenceCount;
  22. UINT FirstAttribute;
  23. UINT Flags;
  24. ULONG FirstFreeByte;
  25. ULONG BytesAvailable;
  26. MFT_SEGMENT_REFERENCE BaseFRS;
  27. UINT NextInstance;
  28. } FILE_RECORD_SEGMENT, _far *FPFILE_RECORD_SEGMENT;
  29. #define FILE_RECORD_SEGMENT_IN_USE 0x0001
  30. typedef struct _ATTRIBUTE_RECORD {
  31. ULONG TypeCode;
  32. ULONG RecordLength;
  33. BYTE FormCode;
  34. BYTE NameLength;
  35. UINT NameOffset;
  36. UINT Flags;
  37. UINT Instance;
  38. BYTE FormUnion;
  39. } ATTRIBUTE_RECORD, _far *FPATTRIBUTE_RECORD;
  40. #define RESIDENT_FORM 0
  41. #define NONRESIDENT_FORM 1
  42. typedef struct _RESIDENT_ATTRIBUTE_FORM {
  43. ULONG ValueLength;
  44. UINT ValueOffset;
  45. BYTE ResidentFlags;
  46. BYTE Reserved;
  47. } RESIDENT_ATTRIBUTE_FORM, _far *FPRESIDENT_ATTRIBUTE_FORM;
  48. typedef struct _NONRESIDENT_ATTRIBUTE_FORM {
  49. ULONG LowestVcn;
  50. ULONG LowestVcnh;
  51. ULONG HighestVcn;
  52. ULONG HighestVcnh;
  53. UINT MappingPairOffset;
  54. UINT Reserved[3];
  55. ULONG AllocatedLength;
  56. ULONG AllocatedLengthh;
  57. ULONG FileSize;
  58. ULONG FileSizeh;
  59. ULONG ValidDataLength;
  60. ULONG ValidDataLengthh;
  61. } NONRESIDENT_ATTRIBUTE_FORM, _far *FPNONRESIDENT_ATTRIBUTE_FORM;
  62. typedef struct _ATTRIBUTE_LIST_ENTRY {
  63. ULONG TypeCode;
  64. UINT Length;
  65. BYTE NameLength;
  66. BYTE NameOffset;
  67. ULONG LowestVcn;
  68. ULONG LowestVcnh;
  69. MFT_SEGMENT_REFERENCE SegmentReference;
  70. UINT Instance;
  71. UINT Name;
  72. } ATTRIBUTE_LIST_ENTRY, _far *FPATTRIBUTE_LIST_ENTRY;