176 lines
8.7 KiB
C
176 lines
8.7 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 );
|