WindowsXP-SP1/base/fs/ntfs/attrdata.c
2020-09-30 16:53:49 +02:00

176 lines
8.9 KiB
C

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
AttrData.c
Abstract:
This module contains an initial image of the Attribute Definition File.
Author:
Tom Miller [TomM] 7-Jun-1991
Revision History:
--*/
#include "NtfsProc.h"
//
// Define an array to hold the initial attribute definitions. This is
// essentially the initial contents of the Attribute Definition File.
// NTFS may find it convenient to use this module for attribute
// definitions prior to getting an NTFS volume mounted, however it is valid
// for NTFS to assume knowledge of the system-defined attributes without
// consulting this table.
//
ATTRIBUTE_DEFINITION_COLUMNS NtfsAttributeDefinitions[ ] =
{
{{'$','S','T','A','N','D','A','R','D','_','I','N','F','O','R','M','A','T','I','O','N'},
$STANDARD_INFORMATION, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
SIZEOF_OLD_STANDARD_INFORMATION, // Minimum length
sizeof(STANDARD_INFORMATION)}, // Maximum length
{{'$','A','T','T','R','I','B','U','T','E','_','L','I','S','T'},
$ATTRIBUTE_LIST, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','F','I','L','E','_','N','A','M','E'},
$FILE_NAME, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT | ATTRIBUTE_DEF_INDEXABLE, // Flags
sizeof(FILE_NAME), // Minimum length
sizeof(FILE_NAME) + (255 * sizeof(WCHAR))}, // Maximum length
{{'$','O','B','J','E','C','T','_','I','D'},
$OBJECT_ID, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
0, // Minimum length
256}, // Maximum length
{{'$','S','E','C','U','R','I','T','Y','_','D','E','S','C','R','I','P','T','O','R'},
$SECURITY_DESCRIPTOR, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','V','O','L','U','M','E','_','N','A','M','E'},
$VOLUME_NAME, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
2, // Minimum length
256}, // Maximum length
{{'$','V','O','L','U','M','E','_','I','N','F','O','R','M','A','T','I','O','N'},
$VOLUME_INFORMATION, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
FIELD_OFFSET( VOLUME_INFORMATION, LastMountedMajorVersion), // Minimum length
FIELD_OFFSET( VOLUME_INFORMATION, LastMountedMajorVersion)}, // Maximum length
{{'$','D','A','T','A'},
$DATA, // Attribute code
0, // Display rule
0, // Collation rule
0, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','I','N','D','E','X','_','R','O','O','T'},
$INDEX_ROOT, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','I','N','D','E','X','_','A','L','L','O','C','A','T','I','O','N'},
$INDEX_ALLOCATION, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','B','I','T','M','A','P'},
$BITMAP, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
-1}, // Maximum length
{{'$','R','E','P','A','R','S','E','_','P','O','I','N','T'},
$REPARSE_POINT, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
16*1024}, // Maximum length
{{'$','E','A','_','I','N','F','O','R','M','A','T','I','O','N'},
$EA_INFORMATION, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_MUST_BE_RESIDENT, // Flags
sizeof(EA_INFORMATION), // Minimum length
sizeof(EA_INFORMATION)}, // Maximum length
{{'$','E','A',},
$EA, // Attribute code
0, // Display rule
0, // Collation rule
0, // Flags
0, // Minimum length
0x10000}, // Maximum length
{{0,0,0,0},
0xF0,
0,
0,
0,
0},
{{'$','L','O','G','G','E','D','_','U','T','I','L','I','T','Y','_','S','T','R','E','A','M'},
$LOGGED_UTILITY_STREAM, // Attribute code
0, // Display rule
0, // Collation rule
ATTRIBUTE_DEF_LOG_NONRESIDENT, // Flags
0, // Minimum length
0x10000}, // Maximum length
{{0, 0, 0, 0},
$UNUSED, // Attribute code
0, // Display rule
0, // Collation rule
0, // Flags
0, // Minimum length
0}, // Maximum length
};
//
// The number of attributes in the above table, including the end record.
//
ULONG NtfsAttributeDefinitionsCount = sizeof( NtfsAttributeDefinitions ) / sizeof( ATTRIBUTE_DEFINITION_COLUMNS );