VirtualBox

Changeset 69873 in vbox for trunk/include/iprt/formats


Ignore:
Timestamp:
Nov 29, 2017 10:38:53 PM (7 years ago)
Author:
vboxsync
Message:

iprt/ntfsvfs.cpp: updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/formats/ntfs.h

    r69866 r69873  
    195195/** NTFSATSTDINFO */
    196196#define NTFS_AT_STANDARD_INFORMATION        RT_H2LE_U32_C(UINT32_C(0x00000010))
     197/** NTFSATLISTENTRY */
    197198#define NTFS_AT_ATTRIBUTE_LIST              RT_H2LE_U32_C(UINT32_C(0x00000020))
    198 /** PCNTFSATFILENAME */
     199/** NTFSATFILENAME */
    199200#define NTFS_AT_FILENAME                    RT_H2LE_U32_C(UINT32_C(0x00000030))
    200201#define NTFS_AT_OBJECT_ID                   RT_H2LE_U32_C(UINT32_C(0x00000040))
     
    311312#define NTFSATTRIBHDR_SIZE_NONRES_COMPRESSED        (0x40)
    312313/** @} */
     314
     315
     316/**
     317 * Attribute list entry (NTFS_AT_ATTRIBUTE_LIST).
     318 *
     319 * This is used to deal with a file having attributes in more than one MFT
     320 * record.  A prominent example is an fragment file (unnamed data attribute)
     321 * which mapping pairs doesn't fit in a single MFT record.
     322 *
     323 * This attribute can be non-resident, however it's mapping pair program must
     324 * fit in the base MFT record.
     325 */
     326typedef struct NTFSATLISTENTRY
     327{
     328    /** 0x00: Attribute type (NTFS_AT_XXX). */
     329    uint32_t            uAttrType;
     330    /** 0x04: Length of this entry. */
     331    uint16_t            cbEntry;
     332    /** 0x06: Attribute name length (zero if none). */
     333    uint8_t             cwcName;
     334    /** 0x07: Name offset. */
     335    uint8_t             offName;
     336    /** 0x08: The first VNC for this part of the attribute value. */
     337    int64_t             iVcnFirst;
     338    /** 0x10: The MFT record holding the actual attribute. */
     339    NTFSMFTREF          InMftRec;
     340    /** 0x18: Attribute instance number.  Unique within the MFT record. */
     341    uint16_t            idAttrib;
     342    /** 0x1a: Maybe where the attribute name starts. */
     343    RTUTF16             wszName[RT_FLEXIBLE_ARRAY];
     344} NTFSATLISTENTRY;
     345AssertCompileMemberOffset(NTFSATLISTENTRY, idAttrib, 0x18);
     346/** Pointer to a NTFS attribute list entry. */
     347typedef NTFSATLISTENTRY *PNTFSATLISTENTRY;
     348/** Pointer to a const NTFS attribute list entry. */
     349typedef NTFSATLISTENTRY const *PCNTFSATLISTENTRY;
     350
     351/** Unaligned minimum entry size (no name). */
     352#define NTFSATLISTENTRY_SIZE_MINIMAL        0x1a
     353
     354
    313355
    314356/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette