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_

Generated on Sat May 15 19:40:57 2004 for test by doxygen 1.3.7