|
|
/*++
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 );
|