test: nodetype.h Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# nodetype.h

Go to the documentation of this file.

    00001 /*++
    00002
    00003 Copyright (c) 1996  Microsoft Corporation
    00004
    00005 Module Name:
    00006
    00007     NodeType.h
    00008
    00009 Abstract:
    00010
    00011     This module defines all of the node type codes used in this development
    00012     shell.  Every major data structure in the file system is assigned a node
    00013     type code.  This code is the first CSHORT in the structure and is followed
    00014     by a CSHORT containing the size, in bytes, of the structure.
    00015
    00016     A single structure can fake polymorphism by using a set of node type codes.
    00017     This is what the two FCB types do.
    00018
    00019 Author:
    00020
    00021     Dan Lovinger    [DanLo]   20-May-1996
    00022
    00023 Revision History:
    00024
    00025 --*/
    00026
    00027 #ifndef _UDFNODETYPE_
    00028 #define _UDFNODETYPE_
    00029
    00030 typedef CSHORT NODE_TYPE_CODE;
    00031 typedef NODE_TYPE_CODE *PNODE_TYPE_CODE;
    00032
    00033 #define NTC_UNDEFINED                   ((NODE_TYPE_CODE)0x0000)
    00034
    00035 #define UDFS_NTC_DATA_HEADER            ((NODE_TYPE_CODE)0x0901)
    00036 #define UDFS_NTC_VCB                    ((NODE_TYPE_CODE)0x0902)
    00037 #define UDFS_NTC_FCB_INDEX              ((NODE_TYPE_CODE)0x0903)
    00038 #define UDFS_NTC_FCB_DATA               ((NODE_TYPE_CODE)0x0904)
    00039 #define UDFS_NTC_FCB_NONPAGED           ((NODE_TYPE_CODE)0x0905)
    00040 #define UDFS_NTC_CCB                    ((NODE_TYPE_CODE)0x0906)
    00041 #define UDFS_NTC_IRP_CONTEXT            ((NODE_TYPE_CODE)0x0907)
    00042 #define UDFS_NTC_IRP_CONTEXT_LITE       ((NODE_TYPE_CODE)0x0908)
    00043 #define UDFS_NTC_LCB                    ((NODE_TYPE_CODE)0x0909)
    00044 #define UDFS_NTC_PCB                    ((NODE_TYPE_CODE)0x090a)
    00045
    00046 typedef CSHORT NODE_BYTE_SIZE;
    00047
    00048 //
    00049 //  So all records start with
    00050 //
    00051 //  typedef struct _RECORD_NAME {
    00052 //      NODE_TYPE_CODE NodeTypeCode;
    00053 //      NODE_BYTE_SIZE NodeByteSize;
    00054 //          :
    00055 //  } RECORD_NAME;
    00056 //  typedef RECORD_NAME *PRECORD_NAME;
    00057 //
    00058
    00059 #ifndef NodeType
    00060 #define NodeType(P) ((P) != NULL ? (*((PNODE_TYPE_CODE)(P))) : NTC_UNDEFINED)
    00061 #endif
    00062 #ifndef SafeNodeType
    00063 #define SafeNodeType(Ptr) (*((PNODE_TYPE_CODE)(Ptr)))
    00064 #endif
    00065
    00066 //
    00067 //  The following definitions are used to generate meaningful blue bugcheck
    00068 //  screens.  On a bugcheck the file system can output 4 ulongs of useful
    00069 //  information.  The first ulong will have encoded in it a source file id
    00070 //  (in the high word) and the line number of the bugcheck (in the low word).
    00071 //  The other values can be whatever the caller of the bugcheck routine deems
    00072 //  necessary.
    00073 //
    00074 //  Each individual file that calls bugcheck needs to have defined at the
    00075 //  start of the file a constant called BugCheckFileId with one of the
    00076 //  UDFS_BUG_CHECK_ values defined below and then use UdfBugCheck to bugcheck
    00077 //  the system.
    00078 //
    00079 //  We also will define the debug trace level masks here.  Set UdfsDebugTraceLevel
    00080 //  to include a given filemask to see debug information from that module when
    00081 //  compiled with debugging.
    00082 //
    00083
    00084 //
    00085 //  Not all of these are actually used in UDFS. Perhaps this list will be
    00086 //  optimized when UDFS is functionally complete.
    00087 //
    00088
    00089 #define UDFS_BUG_CHECK_ALLOCSUP          (0x00010000)
    00090 #define UDFS_BUG_CHECK_CACHESUP          (0x00020000)
    00091 #define UDFS_BUG_CHECK_CLEANUP           (0x00030000)
    00092 #define UDFS_BUG_CHECK_CLOSE             (0x00040000)
    00093 #define UDFS_BUG_CHECK_CREATE            (0x00050000)
    00094 #define UDFS_BUG_CHECK_DEVCTRL           (0x00060000)
    00095 #define UDFS_BUG_CHECK_DEVIOSUP          (0x00070000)
    00096 #define UDFS_BUG_CHECK_DIRCTRL           (0x00080000)
    00097 #define UDFS_BUG_CHECK_DIRSUP            (0x00090000)
    00098 #define UDFS_BUG_CHECK_FILEINFO          (0x000a0000)
    00099 #define UDFS_BUG_CHECK_FILOBSUP          (0x000b0000)
    00100 #define UDFS_BUG_CHECK_FSCTRL            (0x000c0000)
    00101 #define UDFS_BUG_CHECK_FSPDISP           (0x000d0000)
    00102 #define UDFS_BUG_CHECK_LOCKCTRL          (0x000e0000)
    00103 #define UDFS_BUG_CHECK_NAMESUP           (0x000f0000)
    00104 #define UDFS_BUG_CHECK_PREFXSUP          (0x00100000)
    00105 #define UDFS_BUG_CHECK_READ              (0x00110000)
    00106 #define UDFS_BUG_CHECK_RESRCSUP          (0x00120000)
    00107 #define UDFS_BUG_CHECK_STRUCSUP          (0x00130000)
    00108 #define UDFS_BUG_CHECK_UDFDATA           (0x00140000)
    00109 #define UDFS_BUG_CHECK_UDFINIT           (0x00150000)
    00110 #define UDFS_BUG_CHECK_VERFYSUP          (0x00160000)
    00111 #define UDFS_BUG_CHECK_VMCBSUP           (0x00170000)
    00112 #define UDFS_BUG_CHECK_VOLINFO           (0x00180000)
    00113 #define UDFS_BUG_CHECK_WORKQUE           (0x00190000)
    00114 #define UDFS_BUG_CHECK_COMMON            (0x001a0000)
    00115
    00116 #define UDFS_DEBUG_LEVEL_ALLOCSUP        (0x00000001)
    00117 #define UDFS_DEBUG_LEVEL_CACHESUP        (0x00000002)
    00118 #define UDFS_DEBUG_LEVEL_CLEANUP         (0x00000004)
    00119 #define UDFS_DEBUG_LEVEL_CLOSE           (0x00000008)
    00120 #define UDFS_DEBUG_LEVEL_CREATE          (0x00000010)
    00121 #define UDFS_DEBUG_LEVEL_DEVCTRL         (0x00000020)
    00122 #define UDFS_DEBUG_LEVEL_DEVIOSUP        (0x00000040)
    00123 #define UDFS_DEBUG_LEVEL_DIRCTRL         (0x00000080)
    00124 #define UDFS_DEBUG_LEVEL_DIRSUP          (0x00000100)
    00125 #define UDFS_DEBUG_LEVEL_FILEINFO        (0x00000200)
    00126 #define UDFS_DEBUG_LEVEL_FILOBSUP        (0x00000400)
    00127 #define UDFS_DEBUG_LEVEL_FSCTRL          (0x00000800)
    00128 #define UDFS_DEBUG_LEVEL_FSPDISP         (0x00001000)
    00129 #define UDFS_DEBUG_LEVEL_LOCKCTRL        (0x00002000)
    00130 #define UDFS_DEBUG_LEVEL_NAMESUP         (0x00004000)
    00131 #define UDFS_DEBUG_LEVEL_PREFXSUP        (0x00008000)
    00132 #define UDFS_DEBUG_LEVEL_READ            (0x00010000)
    00133 #define UDFS_DEBUG_LEVEL_RESRCSUP        (0x00020000)
    00134 #define UDFS_DEBUG_LEVEL_STRUCSUP        (0x00040000)
    00135 #define UDFS_DEBUG_LEVEL_UDFDATA         (0x00080000)
    00136 #define UDFS_DEBUG_LEVEL_UDFINIT         (0x00100000)
    00137 #define UDFS_DEBUG_LEVEL_VERFYSUP        (0x00200000)
    00138 #define UDFS_DEBUG_LEVEL_VMCBSUP         (0x00400000)
    00139 #define UDFS_DEBUG_LEVEL_VOLINFO         (0x00800000)
    00140 #define UDFS_DEBUG_LEVEL_WORKQUE         (0x01000000)
    00141 #define UDFS_DEBUG_LEVEL_COMMON          (0x02000000)
    00142
    00143 //
    00144 //  Use UNWIND for reports from exception handlers.
    00145 //
    00146
    00147 #define UDFS_DEBUG_LEVEL_UNWIND          (0x80000000)
    00148
    00149 #define UdfBugCheck(A,B,C) { KeBugCheckEx(UDFS_FILE_SYSTEM, BugCheckFileId | __LINE__, A, B, C ); }
    00150
    00151 #ifndef BUILDING_FSKDEXT
    00152
    00153 //
    00154 //  The following are the pool tags for UDFS memory allocations
    00155 //
    00156
    00157 #define TAG_CCB                         'xfdU'
    00158 #define TAG_CDROM_TOC                   'tfdU'
    00159 #define TAG_CRC_TABLE                   'CfdU'
    00160 #define TAG_ENUM_EXPRESSION             'efdU'
    00161 #define TAG_FCB_DATA                    'dfdU'
    00162 #define TAG_FCB_INDEX                   'ifdU'
    00163 #define TAG_FCB_NONPAGED                'FfdU'
    00164 #define TAG_FID_BUFFER                  'DfdU'
    00165 #define TAG_FILE_NAME                   'ffdU'
    00166 #define TAG_GENERIC_TABLE               'TfdU'
    00167 #define TAG_IO_BUFFER                   'bfdU'
    00168 #define TAG_IO_CONTEXT                  'IfdU'
    00169 #define TAG_IRP_CONTEXT                 'cfdU'
    00170 #define TAG_IRP_CONTEXT_LITE            'LfdU'
    00171 #define TAG_LCB                         'lfdU'
    00172 #define TAG_PCB                         'pfdU'
    00173 #define TAG_SHORT_FILE_NAME             'SfdU'
    00174 #define TAG_VPB                         'vfdU'
    00175 #define TAG_SPARING_MCB                 'sfdU'
    00176
    00177 #define TAG_NSR_FSD                     '1fdU'
    00178 #define TAG_NSR_VSD                     '2fdU'
    00179 #define TAG_NSR_VDSD                    '3fdU'
    00180
    00181 #endif
    00182
    00183 #endif // _UDFNODETYPE_