4 /* GENERAL DEFINITIONS ****************************************************/
8 #define _WIN32_WINNT 0x0400
10 #include <ddk/kedef.h>
11 #include <ddk/iodef.h>
13 #define EXPORTED __declspec(dllexport)
14 #define IMPORTED __declspec(dllimport)
17 * PURPOSE: Number of a thread priority levels
19 #define NR_PRIORITY_LEVELS (32)
22 * PURPOSE: Type of queue to insert a work item in
28 HyperCriticalWorkQueue,
32 * Types of memory to allocate
37 NonPagedPoolMustSucceed,
38 NonPagedPoolCacheAligned,
39 NonPagedPoolCacheAlignedMustS,
41 PagedPoolCacheAligned,
45 * This is a list of bug check types (not MS's)
49 APC_INDEX_MISMATCH = 1,
50 DEVICE_QUEUE_NOT_BUSY,
52 INVALID_DATA_ACCESS_TRAP,
53 INVALID_PROCESS_ATTACH_ATTEMPT,
54 INVALID_PROCESS_DEATTACH_ATTEMPT,
55 INVALID_SOFTWARE_INTERRUPT,
56 IRQL_NOT_DISPATCH_LEVEL,
57 IRQL_NOT_GREATER_OR_EQUAL,
58 NO_EXCEPTION_HANDLING_SUPPORT,
59 MAXIMUM_WAIT_OBJECTS_EXCEEDED,
60 MUTEX_LEVEL_NUMBER_VIOLATION,
62 SPIN_LOCK_ALREADY_OWNED,
64 THREAD_NOT_MUTEX_OWNER,
66 EMPTY_THREAD_REAPER_LIST,
67 CREATE_DELETE_LOCK_NOT_LOCKED,
68 LAST_CHANCE_CALLED_FROM_KMODE,
76 NO_SPIN_LOCK_AVAILABLE,
77 KMODE_EXCEPTION_NOT_HANDLED,
78 SHARED_RESOURCE_CONV_ERROR,
79 KERNEL_APC_PENDING_DURING_EXIT,
92 SCSI_DISK_DRIVER_INTERNAL,
93 INSTRUCTION_BUS_ERROR,
94 SET_OF_INVALID_CONTEXT,
95 PHASE0_INITIALIZATION_FAILED,
96 PHASE1_INITIALIZATION_FAILED,
97 UNEXPECTED_INITIALIZATION_CALL,
99 NO_MORE_IRP_STACK_LOCATIONS,
100 DEVICE_REFERENCE_COUNT_NOT_ZERO,
101 FLOPPY_INTERNAL_ERROR,
102 SERIAL_DRIVER_INTERNAL,
103 SYSTEM_EXIT_OWNED_MUTEX,
104 SYSTEM_UNWIND_PREVIOUS_USER,
105 SYSTEN_SERVICE_EXCEPTION,
106 INTERRUPT_UNWIND_ATTEMPTED,
107 INTERRUPT_EXCEPTION_NOT_HANDLED,
108 MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED,
110 TARGET_MDL_TOO_SMALL,
111 MUST_SUCCEED_POOL_EMPTY,
112 ATDISK_DRIVER_INTERNAL,
114 MULTIPLE_IRP_COMPLETE_REQUESTS,
115 INSUFFICENT_SYSTEM_MAP_PAGES,
116 DEREF_UNKNOWN_LOGON_SERVICE,
117 REF_UNKNOWN_LOGON_SERVICE,
118 CANCEL_STATE_IN_COMPLETED_IRP,
119 PAGE_FAULT_WITH_INTERRUPTS_OFF,
120 IRQL_GT_ZERO_AT_SYSTEM_SERVICE,
121 STREAMS_INTERNAL_ERROR,
122 FATAL_UNHANDLED_HARD_ERROR,
126 PAGE_FAULT_IN_NONPAGED_AREA,
128 MAILSLOT_FILE_SYSTEM,
130 LM_SERVER_INTERNAL_ERROR,
131 DATA_COHERENCY_EXCEPTION,
132 INSTRUCTION_COHERENCY_EXCEPTION,
134 FTDISK_INTERNAL_ERROR,
136 CRITICAL_SERVICE_FAILED,
138 HAL_INITIALIZED_FAILED,
139 UNSUPPORTED_PROCESSOR,
140 OBJECT_INITIALIZATION_FAILED,
141 SECURITY_INITIALIZATION_FAILED,
142 PROCESS_INITIALIZATION_FAILED,
143 HAL1_INITIALIZATION_FAILED,
149 KBUG_IO_STACK_OVERFLOW,
151 KBUG_POOL_FREE_LIST_CORRUPT,
154 * These are well known but the actual value is unknown
156 // NO_PAGES_AVAILABLE,
159 * These are well known (MS) bug types
160 * (Reference: NT Insider 1997 - http://www.osr.com)
162 IRQL_NOT_LESS_OR_EQUAL = 0xa,
163 // KMODE_EXCEPTION_NOT_HANDLED = 0x1e,
164 UNEXPECTED_KERNEL_MODE_TRAP = 0x7f,
165 PAGE_FAULT_IN_NON_PAGED_AREA = 0x50,
169 * PURPOSE: Object attributes
174 OBJ_PERMANENT = 0x10,
175 OBJ_EXCLUSIVE = 0x20,
176 OBJ_CASE_INSENSITIVE = 0x40,
178 OBJ_OPENLINK = 0x100,
\r
179 OBJ_VALID_ATTRIBUTES = 0x1F2,
\r
183 * PURPOSE: Timer types
188 SynchronizationTimer,
192 * PURPOSE: Some drivers use these
201 * PURPOSE: Arguments to MmProbeAndLockPages
210 #define MAXIMUM_VOLUME_LABEL_LENGTH (32)
212 #include <ddk/i386/irql.h>
214 #define PASSIVE_LEVEL 0 // Passive release level
215 #define LOW_LEVEL 0 // Lowest interrupt level
216 #define APC_LEVEL 1 // APC interrupt level
217 #define DISPATCH_LEVEL 2 // Dispatcher level
218 /* timer used for profiling */
219 #define PROFILE_LEVEL 27
220 /* Interval clock 1 level - Not used on x86 */
221 #define CLOCK1_LEVEL 28
222 #define CLOCK2_LEVEL 28 // Interval clock 2 level
223 #define IPI_LEVEL 29 // Interprocessor interrupt level
224 #define POWER_LEVEL 30 // Power failure level
225 #define HIGH_LEVEL 31 // Highest interrupt level
226 #define SYNCH_LEVEL (IPI_LEVEL-1) // synchronization level
230 /* Values returned by KeGetPreviousMode() */
231 #define KernelMode (0)
234 #endif /* ndef _DDK_DEFINES_H */