00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00022
00023
00024 #include <wdm.h>
00025
00026 #include "cbm_driver.h"
00027
00028 #include "../../arch/windows/debug.c"
00029
00031 #ifndef min
00032 # define min(_x, _y) ( ((_x) < (_y)) ? (_x) : (_y) )
00033 #endif
00034
00035 #if 0
00036 #define REPORT_BUG(_no, _a, _b, _c, _d, _str) KeBugCheckEx(_no, _a, _b, _c, _d)
00037 #else
00038 #define REPORT_BUG(_no, _a, _b, _c, _d, _str) \
00039 DbgPrint("--- REPORT_BUG: %04x (%08x, %08x, %08x, %08x). '%s' " \
00040 "in %s, %s(), line %u\n", \
00041 _no, _a, _b, _c, _d, _str, \
00042 __FILE__, __FUNCTION__, __LINE__);
00043 #endif
00044
00045
00046
00048 typedef
00049 struct NTSTATUS_DEBUGCODE
00050 {
00052 const UCHAR *Name;
00053
00055 NTSTATUS Value;
00056
00057 } NTSTATUS_DEBUGCODE;
00058
00060 #define DEFINE_STATUSCODE(_x) { #_x, _x }
00061
00063 #define _MARKLASTENTRY ((NTSTATUS) -1)
00064
00066 #define _LASTENTRY { "", _MARKLASTENTRY }
00067
00069 const
00070 NTSTATUS_DEBUGCODE text[] =
00071 {
00072 DEFINE_STATUSCODE(STATUS_SUCCESS),
00073 DEFINE_STATUSCODE(STATUS_SUCCESS),
00074 DEFINE_STATUSCODE(STATUS_WAIT_0),
00075 DEFINE_STATUSCODE(STATUS_WAIT_1),
00076 DEFINE_STATUSCODE(STATUS_WAIT_2),
00077 DEFINE_STATUSCODE(STATUS_WAIT_3),
00078 DEFINE_STATUSCODE(STATUS_WAIT_63),
00079 DEFINE_STATUSCODE(STATUS_ABANDONED),
00080 DEFINE_STATUSCODE(STATUS_ABANDONED_WAIT_0),
00081 DEFINE_STATUSCODE(STATUS_ABANDONED_WAIT_63),
00082 DEFINE_STATUSCODE(STATUS_USER_APC),
00083 DEFINE_STATUSCODE(STATUS_KERNEL_APC),
00084 DEFINE_STATUSCODE(STATUS_ALERTED),
00085 DEFINE_STATUSCODE(STATUS_TIMEOUT),
00086 DEFINE_STATUSCODE(STATUS_PENDING),
00087 DEFINE_STATUSCODE(STATUS_REPARSE),
00088 DEFINE_STATUSCODE(STATUS_MORE_ENTRIES),
00089 DEFINE_STATUSCODE(STATUS_NOT_ALL_ASSIGNED),
00090 DEFINE_STATUSCODE(STATUS_SOME_NOT_MAPPED),
00091 DEFINE_STATUSCODE(STATUS_OPLOCK_BREAK_IN_PROGRESS),
00092 DEFINE_STATUSCODE(STATUS_VOLUME_MOUNTED),
00093 DEFINE_STATUSCODE(STATUS_RXACT_COMMITTED),
00094 DEFINE_STATUSCODE(STATUS_NOTIFY_CLEANUP),
00095 DEFINE_STATUSCODE(STATUS_NOTIFY_ENUM_DIR),
00096 DEFINE_STATUSCODE(STATUS_NO_QUOTAS_FOR_ACCOUNT),
00097 DEFINE_STATUSCODE(STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED),
00098 DEFINE_STATUSCODE(STATUS_PAGE_FAULT_TRANSITION),
00099 DEFINE_STATUSCODE(STATUS_PAGE_FAULT_DEMAND_ZERO),
00100 DEFINE_STATUSCODE(STATUS_PAGE_FAULT_COPY_ON_WRITE),
00101 DEFINE_STATUSCODE(STATUS_PAGE_FAULT_GUARD_PAGE),
00102 DEFINE_STATUSCODE(STATUS_PAGE_FAULT_PAGING_FILE),
00103 DEFINE_STATUSCODE(STATUS_CACHE_PAGE_LOCKED),
00104 DEFINE_STATUSCODE(STATUS_CRASH_DUMP),
00105 DEFINE_STATUSCODE(STATUS_BUFFER_ALL_ZEROS),
00106 DEFINE_STATUSCODE(STATUS_REPARSE_OBJECT),
00107 DEFINE_STATUSCODE(STATUS_RESOURCE_REQUIREMENTS_CHANGED),
00108 DEFINE_STATUSCODE(STATUS_TRANSLATION_COMPLETE),
00109 DEFINE_STATUSCODE(STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY),
00110 DEFINE_STATUSCODE(DBG_EXCEPTION_HANDLED),
00111 DEFINE_STATUSCODE(DBG_CONTINUE),
00112 DEFINE_STATUSCODE(STATUS_OBJECT_NAME_EXISTS),
00113 DEFINE_STATUSCODE(STATUS_THREAD_WAS_SUSPENDED),
00114 DEFINE_STATUSCODE(STATUS_WORKING_SET_LIMIT_RANGE),
00115 DEFINE_STATUSCODE(STATUS_IMAGE_NOT_AT_BASE),
00116 DEFINE_STATUSCODE(STATUS_RXACT_STATE_CREATED),
00117 DEFINE_STATUSCODE(STATUS_SEGMENT_NOTIFICATION),
00118 DEFINE_STATUSCODE(STATUS_LOCAL_USER_SESSION_KEY),
00119 DEFINE_STATUSCODE(STATUS_BAD_CURRENT_DIRECTORY),
00120 DEFINE_STATUSCODE(STATUS_SERIAL_MORE_WRITES),
00121 DEFINE_STATUSCODE(STATUS_REGISTRY_RECOVERED),
00122 DEFINE_STATUSCODE(STATUS_FT_READ_RECOVERY_FROM_BACKUP),
00123 DEFINE_STATUSCODE(STATUS_FT_WRITE_RECOVERY),
00124 DEFINE_STATUSCODE(STATUS_SERIAL_COUNTER_TIMEOUT),
00125 DEFINE_STATUSCODE(STATUS_NULL_LM_PASSWORD),
00126 DEFINE_STATUSCODE(STATUS_IMAGE_MACHINE_TYPE_MISMATCH),
00127 DEFINE_STATUSCODE(STATUS_RECEIVE_PARTIAL),
00128 DEFINE_STATUSCODE(STATUS_RECEIVE_EXPEDITED),
00129 DEFINE_STATUSCODE(STATUS_RECEIVE_PARTIAL_EXPEDITED),
00130 DEFINE_STATUSCODE(STATUS_EVENT_DONE),
00131 DEFINE_STATUSCODE(STATUS_EVENT_PENDING),
00132 DEFINE_STATUSCODE(STATUS_CHECKING_FILE_SYSTEM),
00133 DEFINE_STATUSCODE(STATUS_FATAL_APP_EXIT),
00134 DEFINE_STATUSCODE(STATUS_PREDEFINED_HANDLE),
00135 DEFINE_STATUSCODE(STATUS_WAS_UNLOCKED),
00136 DEFINE_STATUSCODE(STATUS_SERVICE_NOTIFICATION),
00137 DEFINE_STATUSCODE(STATUS_WAS_LOCKED),
00138 DEFINE_STATUSCODE(STATUS_LOG_HARD_ERROR),
00139 DEFINE_STATUSCODE(STATUS_ALREADY_WIN32),
00140 DEFINE_STATUSCODE(STATUS_WX86_UNSIMULATE),
00141 DEFINE_STATUSCODE(STATUS_WX86_CONTINUE),
00142 DEFINE_STATUSCODE(STATUS_WX86_SINGLE_STEP),
00143 DEFINE_STATUSCODE(STATUS_WX86_BREAKPOINT),
00144 DEFINE_STATUSCODE(STATUS_WX86_EXCEPTION_CONTINUE),
00145 DEFINE_STATUSCODE(STATUS_WX86_EXCEPTION_LASTCHANCE),
00146 DEFINE_STATUSCODE(STATUS_WX86_EXCEPTION_CHAIN),
00147 DEFINE_STATUSCODE(STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE),
00148 DEFINE_STATUSCODE(STATUS_NO_YIELD_PERFORMED),
00149 DEFINE_STATUSCODE(STATUS_TIMER_RESUME_IGNORED),
00150 DEFINE_STATUSCODE(STATUS_ARBITRATION_UNHANDLED),
00151 DEFINE_STATUSCODE(STATUS_CARDBUS_NOT_SUPPORTED),
00152 DEFINE_STATUSCODE(STATUS_WX86_CREATEWX86TIB),
00153 DEFINE_STATUSCODE(STATUS_MP_PROCESSOR_MISMATCH),
00154 DEFINE_STATUSCODE(DBG_REPLY_LATER),
00155 DEFINE_STATUSCODE(DBG_UNABLE_TO_PROVIDE_HANDLE),
00156 DEFINE_STATUSCODE(DBG_TERMINATE_THREAD),
00157 DEFINE_STATUSCODE(DBG_TERMINATE_PROCESS),
00158 DEFINE_STATUSCODE(DBG_CONTROL_C),
00159 DEFINE_STATUSCODE(DBG_PRINTEXCEPTION_C),
00160 DEFINE_STATUSCODE(DBG_RIPEXCEPTION),
00161 DEFINE_STATUSCODE(DBG_CONTROL_BREAK),
00162 DEFINE_STATUSCODE(STATUS_GUARD_PAGE_VIOLATION),
00163 DEFINE_STATUSCODE(STATUS_DATATYPE_MISALIGNMENT),
00164 DEFINE_STATUSCODE(STATUS_BREAKPOINT),
00165 DEFINE_STATUSCODE(STATUS_SINGLE_STEP),
00166 DEFINE_STATUSCODE(STATUS_BUFFER_OVERFLOW),
00167 DEFINE_STATUSCODE(STATUS_NO_MORE_FILES),
00168 DEFINE_STATUSCODE(STATUS_WAKE_SYSTEM_DEBUGGER),
00169 DEFINE_STATUSCODE(STATUS_HANDLES_CLOSED),
00170 DEFINE_STATUSCODE(STATUS_NO_INHERITANCE),
00171 DEFINE_STATUSCODE(STATUS_GUID_SUBSTITUTION_MADE),
00172 DEFINE_STATUSCODE(STATUS_PARTIAL_COPY),
00173 DEFINE_STATUSCODE(STATUS_DEVICE_PAPER_EMPTY),
00174 DEFINE_STATUSCODE(STATUS_DEVICE_POWERED_OFF),
00175 DEFINE_STATUSCODE(STATUS_DEVICE_OFF_LINE),
00176 DEFINE_STATUSCODE(STATUS_DEVICE_BUSY),
00177 DEFINE_STATUSCODE(STATUS_NO_MORE_EAS),
00178 DEFINE_STATUSCODE(STATUS_INVALID_EA_NAME),
00179 DEFINE_STATUSCODE(STATUS_EA_LIST_INCONSISTENT),
00180 DEFINE_STATUSCODE(STATUS_INVALID_EA_FLAG),
00181 DEFINE_STATUSCODE(STATUS_VERIFY_REQUIRED),
00182 DEFINE_STATUSCODE(STATUS_EXTRANEOUS_INFORMATION),
00183 DEFINE_STATUSCODE(STATUS_RXACT_COMMIT_NECESSARY),
00184 DEFINE_STATUSCODE(STATUS_NO_MORE_ENTRIES),
00185 DEFINE_STATUSCODE(STATUS_FILEMARK_DETECTED),
00186 DEFINE_STATUSCODE(STATUS_MEDIA_CHANGED),
00187 DEFINE_STATUSCODE(STATUS_BUS_RESET),
00188 DEFINE_STATUSCODE(STATUS_END_OF_MEDIA),
00189 DEFINE_STATUSCODE(STATUS_BEGINNING_OF_MEDIA),
00190 DEFINE_STATUSCODE(STATUS_MEDIA_CHECK),
00191 DEFINE_STATUSCODE(STATUS_SETMARK_DETECTED),
00192 DEFINE_STATUSCODE(STATUS_NO_DATA_DETECTED),
00193 DEFINE_STATUSCODE(STATUS_REDIRECTOR_HAS_OPEN_HANDLES),
00194 DEFINE_STATUSCODE(STATUS_SERVER_HAS_OPEN_HANDLES),
00195 DEFINE_STATUSCODE(STATUS_ALREADY_DISCONNECTED),
00196 DEFINE_STATUSCODE(STATUS_LONGJUMP),
00197 DEFINE_STATUSCODE(DBG_EXCEPTION_NOT_HANDLED),
00198 DEFINE_STATUSCODE(STATUS_UNSUCCESSFUL),
00199 DEFINE_STATUSCODE(STATUS_NOT_IMPLEMENTED),
00200 DEFINE_STATUSCODE(STATUS_INVALID_INFO_CLASS),
00201 DEFINE_STATUSCODE(STATUS_INFO_LENGTH_MISMATCH),
00202 DEFINE_STATUSCODE(STATUS_ACCESS_VIOLATION),
00203 DEFINE_STATUSCODE(STATUS_IN_PAGE_ERROR),
00204 DEFINE_STATUSCODE(STATUS_PAGEFILE_QUOTA),
00205 DEFINE_STATUSCODE(STATUS_INVALID_HANDLE),
00206 DEFINE_STATUSCODE(STATUS_BAD_INITIAL_STACK),
00207 DEFINE_STATUSCODE(STATUS_BAD_INITIAL_PC),
00208 DEFINE_STATUSCODE(STATUS_INVALID_CID),
00209 DEFINE_STATUSCODE(STATUS_TIMER_NOT_CANCELED),
00210 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER),
00211 DEFINE_STATUSCODE(STATUS_NO_SUCH_DEVICE),
00212 DEFINE_STATUSCODE(STATUS_NO_SUCH_FILE),
00213 DEFINE_STATUSCODE(STATUS_INVALID_DEVICE_REQUEST),
00214 DEFINE_STATUSCODE(STATUS_END_OF_FILE),
00215 DEFINE_STATUSCODE(STATUS_WRONG_VOLUME),
00216 DEFINE_STATUSCODE(STATUS_NO_MEDIA_IN_DEVICE),
00217 DEFINE_STATUSCODE(STATUS_UNRECOGNIZED_MEDIA),
00218 DEFINE_STATUSCODE(STATUS_NONEXISTENT_SECTOR),
00219 DEFINE_STATUSCODE(STATUS_MORE_PROCESSING_REQUIRED),
00220 DEFINE_STATUSCODE(STATUS_NO_MEMORY),
00221 DEFINE_STATUSCODE(STATUS_CONFLICTING_ADDRESSES),
00222 DEFINE_STATUSCODE(STATUS_NOT_MAPPED_VIEW),
00223 DEFINE_STATUSCODE(STATUS_UNABLE_TO_FREE_VM),
00224 DEFINE_STATUSCODE(STATUS_UNABLE_TO_DELETE_SECTION),
00225 DEFINE_STATUSCODE(STATUS_INVALID_SYSTEM_SERVICE),
00226 DEFINE_STATUSCODE(STATUS_ILLEGAL_INSTRUCTION),
00227 DEFINE_STATUSCODE(STATUS_INVALID_LOCK_SEQUENCE),
00228 DEFINE_STATUSCODE(STATUS_INVALID_VIEW_SIZE),
00229 DEFINE_STATUSCODE(STATUS_INVALID_FILE_FOR_SECTION),
00230 DEFINE_STATUSCODE(STATUS_ALREADY_COMMITTED),
00231 DEFINE_STATUSCODE(STATUS_ACCESS_DENIED),
00232 DEFINE_STATUSCODE(STATUS_BUFFER_TOO_SMALL),
00233 DEFINE_STATUSCODE(STATUS_OBJECT_TYPE_MISMATCH),
00234 DEFINE_STATUSCODE(STATUS_NONCONTINUABLE_EXCEPTION),
00235 DEFINE_STATUSCODE(STATUS_INVALID_DISPOSITION),
00236 DEFINE_STATUSCODE(STATUS_UNWIND),
00237 DEFINE_STATUSCODE(STATUS_BAD_STACK),
00238 DEFINE_STATUSCODE(STATUS_INVALID_UNWIND_TARGET),
00239 DEFINE_STATUSCODE(STATUS_NOT_LOCKED),
00240 DEFINE_STATUSCODE(STATUS_PARITY_ERROR),
00241 DEFINE_STATUSCODE(STATUS_UNABLE_TO_DECOMMIT_VM),
00242 DEFINE_STATUSCODE(STATUS_NOT_COMMITTED),
00243 DEFINE_STATUSCODE(STATUS_INVALID_PORT_ATTRIBUTES),
00244 DEFINE_STATUSCODE(STATUS_PORT_MESSAGE_TOO_LONG),
00245 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_MIX),
00246 DEFINE_STATUSCODE(STATUS_INVALID_QUOTA_LOWER),
00247 DEFINE_STATUSCODE(STATUS_DISK_CORRUPT_ERROR),
00248 DEFINE_STATUSCODE(STATUS_OBJECT_NAME_INVALID),
00249 DEFINE_STATUSCODE(STATUS_OBJECT_NAME_NOT_FOUND),
00250 DEFINE_STATUSCODE(STATUS_OBJECT_NAME_COLLISION),
00251 DEFINE_STATUSCODE(STATUS_PORT_DISCONNECTED),
00252 DEFINE_STATUSCODE(STATUS_DEVICE_ALREADY_ATTACHED),
00253 DEFINE_STATUSCODE(STATUS_OBJECT_PATH_INVALID),
00254 DEFINE_STATUSCODE(STATUS_OBJECT_PATH_NOT_FOUND),
00255 DEFINE_STATUSCODE(STATUS_OBJECT_PATH_SYNTAX_BAD),
00256 DEFINE_STATUSCODE(STATUS_DATA_OVERRUN),
00257 DEFINE_STATUSCODE(STATUS_DATA_LATE_ERROR),
00258 DEFINE_STATUSCODE(STATUS_DATA_ERROR),
00259 DEFINE_STATUSCODE(STATUS_CRC_ERROR),
00260 DEFINE_STATUSCODE(STATUS_SECTION_TOO_BIG),
00261 DEFINE_STATUSCODE(STATUS_PORT_CONNECTION_REFUSED),
00262 DEFINE_STATUSCODE(STATUS_INVALID_PORT_HANDLE),
00263 DEFINE_STATUSCODE(STATUS_SHARING_VIOLATION),
00264 DEFINE_STATUSCODE(STATUS_QUOTA_EXCEEDED),
00265 DEFINE_STATUSCODE(STATUS_INVALID_PAGE_PROTECTION),
00266 DEFINE_STATUSCODE(STATUS_MUTANT_NOT_OWNED),
00267 DEFINE_STATUSCODE(STATUS_SEMAPHORE_LIMIT_EXCEEDED),
00268 DEFINE_STATUSCODE(STATUS_PORT_ALREADY_SET),
00269 DEFINE_STATUSCODE(STATUS_SECTION_NOT_IMAGE),
00270 DEFINE_STATUSCODE(STATUS_SUSPEND_COUNT_EXCEEDED),
00271 DEFINE_STATUSCODE(STATUS_THREAD_IS_TERMINATING),
00272 DEFINE_STATUSCODE(STATUS_BAD_WORKING_SET_LIMIT),
00273 DEFINE_STATUSCODE(STATUS_INCOMPATIBLE_FILE_MAP),
00274 DEFINE_STATUSCODE(STATUS_SECTION_PROTECTION),
00275 DEFINE_STATUSCODE(STATUS_EAS_NOT_SUPPORTED),
00276 DEFINE_STATUSCODE(STATUS_EA_TOO_LARGE),
00277 DEFINE_STATUSCODE(STATUS_NONEXISTENT_EA_ENTRY),
00278 DEFINE_STATUSCODE(STATUS_NO_EAS_ON_FILE),
00279 DEFINE_STATUSCODE(STATUS_EA_CORRUPT_ERROR),
00280 DEFINE_STATUSCODE(STATUS_FILE_LOCK_CONFLICT),
00281 DEFINE_STATUSCODE(STATUS_LOCK_NOT_GRANTED),
00282 DEFINE_STATUSCODE(STATUS_DELETE_PENDING),
00283 DEFINE_STATUSCODE(STATUS_CTL_FILE_NOT_SUPPORTED),
00284 DEFINE_STATUSCODE(STATUS_UNKNOWN_REVISION),
00285 DEFINE_STATUSCODE(STATUS_REVISION_MISMATCH),
00286 DEFINE_STATUSCODE(STATUS_INVALID_OWNER),
00287 DEFINE_STATUSCODE(STATUS_INVALID_PRIMARY_GROUP),
00288 DEFINE_STATUSCODE(STATUS_NO_IMPERSONATION_TOKEN),
00289 DEFINE_STATUSCODE(STATUS_CANT_DISABLE_MANDATORY),
00290 DEFINE_STATUSCODE(STATUS_NO_LOGON_SERVERS),
00291 DEFINE_STATUSCODE(STATUS_NO_SUCH_LOGON_SESSION),
00292 DEFINE_STATUSCODE(STATUS_NO_SUCH_PRIVILEGE),
00293 DEFINE_STATUSCODE(STATUS_PRIVILEGE_NOT_HELD),
00294 DEFINE_STATUSCODE(STATUS_INVALID_ACCOUNT_NAME),
00295 DEFINE_STATUSCODE(STATUS_USER_EXISTS),
00296 DEFINE_STATUSCODE(STATUS_NO_SUCH_USER),
00297 DEFINE_STATUSCODE(STATUS_GROUP_EXISTS),
00298 DEFINE_STATUSCODE(STATUS_NO_SUCH_GROUP),
00299 DEFINE_STATUSCODE(STATUS_MEMBER_IN_GROUP),
00300 DEFINE_STATUSCODE(STATUS_MEMBER_NOT_IN_GROUP),
00301 DEFINE_STATUSCODE(STATUS_LAST_ADMIN),
00302 DEFINE_STATUSCODE(STATUS_WRONG_PASSWORD),
00303 DEFINE_STATUSCODE(STATUS_ILL_FORMED_PASSWORD),
00304 DEFINE_STATUSCODE(STATUS_PASSWORD_RESTRICTION),
00305 DEFINE_STATUSCODE(STATUS_LOGON_FAILURE),
00306 DEFINE_STATUSCODE(STATUS_ACCOUNT_RESTRICTION),
00307 DEFINE_STATUSCODE(STATUS_INVALID_LOGON_HOURS),
00308 DEFINE_STATUSCODE(STATUS_INVALID_WORKSTATION),
00309 DEFINE_STATUSCODE(STATUS_PASSWORD_EXPIRED),
00310 DEFINE_STATUSCODE(STATUS_ACCOUNT_DISABLED),
00311 DEFINE_STATUSCODE(STATUS_NONE_MAPPED),
00312 DEFINE_STATUSCODE(STATUS_TOO_MANY_LUIDS_REQUESTED),
00313 DEFINE_STATUSCODE(STATUS_LUIDS_EXHAUSTED),
00314 DEFINE_STATUSCODE(STATUS_INVALID_SUB_AUTHORITY),
00315 DEFINE_STATUSCODE(STATUS_INVALID_ACL),
00316 DEFINE_STATUSCODE(STATUS_INVALID_SID),
00317 DEFINE_STATUSCODE(STATUS_INVALID_SECURITY_DESCR),
00318 DEFINE_STATUSCODE(STATUS_PROCEDURE_NOT_FOUND),
00319 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_FORMAT),
00320 DEFINE_STATUSCODE(STATUS_NO_TOKEN),
00321 DEFINE_STATUSCODE(STATUS_BAD_INHERITANCE_ACL),
00322 DEFINE_STATUSCODE(STATUS_RANGE_NOT_LOCKED),
00323 DEFINE_STATUSCODE(STATUS_DISK_FULL),
00324 DEFINE_STATUSCODE(STATUS_SERVER_DISABLED),
00325 DEFINE_STATUSCODE(STATUS_SERVER_NOT_DISABLED),
00326 DEFINE_STATUSCODE(STATUS_TOO_MANY_GUIDS_REQUESTED),
00327 DEFINE_STATUSCODE(STATUS_GUIDS_EXHAUSTED),
00328 DEFINE_STATUSCODE(STATUS_INVALID_ID_AUTHORITY),
00329 DEFINE_STATUSCODE(STATUS_AGENTS_EXHAUSTED),
00330 DEFINE_STATUSCODE(STATUS_INVALID_VOLUME_LABEL),
00331 DEFINE_STATUSCODE(STATUS_SECTION_NOT_EXTENDED),
00332 DEFINE_STATUSCODE(STATUS_NOT_MAPPED_DATA),
00333 DEFINE_STATUSCODE(STATUS_RESOURCE_DATA_NOT_FOUND),
00334 DEFINE_STATUSCODE(STATUS_RESOURCE_TYPE_NOT_FOUND),
00335 DEFINE_STATUSCODE(STATUS_RESOURCE_NAME_NOT_FOUND),
00336 DEFINE_STATUSCODE(STATUS_ARRAY_BOUNDS_EXCEEDED),
00337 DEFINE_STATUSCODE(STATUS_FLOAT_DENORMAL_OPERAND),
00338 DEFINE_STATUSCODE(STATUS_FLOAT_DIVIDE_BY_ZERO),
00339 DEFINE_STATUSCODE(STATUS_FLOAT_INEXACT_RESULT),
00340 DEFINE_STATUSCODE(STATUS_FLOAT_INVALID_OPERATION),
00341 DEFINE_STATUSCODE(STATUS_FLOAT_OVERFLOW),
00342 DEFINE_STATUSCODE(STATUS_FLOAT_STACK_CHECK),
00343 DEFINE_STATUSCODE(STATUS_FLOAT_UNDERFLOW),
00344 DEFINE_STATUSCODE(STATUS_INTEGER_DIVIDE_BY_ZERO),
00345 DEFINE_STATUSCODE(STATUS_INTEGER_OVERFLOW),
00346 DEFINE_STATUSCODE(STATUS_PRIVILEGED_INSTRUCTION),
00347 DEFINE_STATUSCODE(STATUS_TOO_MANY_PAGING_FILES),
00348 DEFINE_STATUSCODE(STATUS_FILE_INVALID),
00349 DEFINE_STATUSCODE(STATUS_ALLOTTED_SPACE_EXCEEDED),
00350 DEFINE_STATUSCODE(STATUS_INSUFFICIENT_RESOURCES),
00351 DEFINE_STATUSCODE(STATUS_DFS_EXIT_PATH_FOUND),
00352 DEFINE_STATUSCODE(STATUS_DEVICE_DATA_ERROR),
00353 DEFINE_STATUSCODE(STATUS_DEVICE_NOT_CONNECTED),
00354 DEFINE_STATUSCODE(STATUS_DEVICE_POWER_FAILURE),
00355 DEFINE_STATUSCODE(STATUS_FREE_VM_NOT_AT_BASE),
00356 DEFINE_STATUSCODE(STATUS_MEMORY_NOT_ALLOCATED),
00357 DEFINE_STATUSCODE(STATUS_WORKING_SET_QUOTA),
00358 DEFINE_STATUSCODE(STATUS_MEDIA_WRITE_PROTECTED),
00359 DEFINE_STATUSCODE(STATUS_DEVICE_NOT_READY),
00360 DEFINE_STATUSCODE(STATUS_INVALID_GROUP_ATTRIBUTES),
00361 DEFINE_STATUSCODE(STATUS_BAD_IMPERSONATION_LEVEL),
00362 DEFINE_STATUSCODE(STATUS_CANT_OPEN_ANONYMOUS),
00363 DEFINE_STATUSCODE(STATUS_BAD_VALIDATION_CLASS),
00364 DEFINE_STATUSCODE(STATUS_BAD_TOKEN_TYPE),
00365 DEFINE_STATUSCODE(STATUS_BAD_MASTER_BOOT_RECORD),
00366 DEFINE_STATUSCODE(STATUS_INSTRUCTION_MISALIGNMENT),
00367 DEFINE_STATUSCODE(STATUS_INSTANCE_NOT_AVAILABLE),
00368 DEFINE_STATUSCODE(STATUS_PIPE_NOT_AVAILABLE),
00369 DEFINE_STATUSCODE(STATUS_INVALID_PIPE_STATE),
00370 DEFINE_STATUSCODE(STATUS_PIPE_BUSY),
00371 DEFINE_STATUSCODE(STATUS_ILLEGAL_FUNCTION),
00372 DEFINE_STATUSCODE(STATUS_PIPE_DISCONNECTED),
00373 DEFINE_STATUSCODE(STATUS_PIPE_CLOSING),
00374 DEFINE_STATUSCODE(STATUS_PIPE_CONNECTED),
00375 DEFINE_STATUSCODE(STATUS_PIPE_LISTENING),
00376 DEFINE_STATUSCODE(STATUS_INVALID_READ_MODE),
00377 DEFINE_STATUSCODE(STATUS_IO_TIMEOUT),
00378 DEFINE_STATUSCODE(STATUS_FILE_FORCED_CLOSED),
00379 DEFINE_STATUSCODE(STATUS_PROFILING_NOT_STARTED),
00380 DEFINE_STATUSCODE(STATUS_PROFILING_NOT_STOPPED),
00381 DEFINE_STATUSCODE(STATUS_COULD_NOT_INTERPRET),
00382 DEFINE_STATUSCODE(STATUS_FILE_IS_A_DIRECTORY),
00383 DEFINE_STATUSCODE(STATUS_NOT_SUPPORTED),
00384 DEFINE_STATUSCODE(STATUS_REMOTE_NOT_LISTENING),
00385 DEFINE_STATUSCODE(STATUS_DUPLICATE_NAME),
00386 DEFINE_STATUSCODE(STATUS_BAD_NETWORK_PATH),
00387 DEFINE_STATUSCODE(STATUS_NETWORK_BUSY),
00388 DEFINE_STATUSCODE(STATUS_DEVICE_DOES_NOT_EXIST),
00389 DEFINE_STATUSCODE(STATUS_TOO_MANY_COMMANDS),
00390 DEFINE_STATUSCODE(STATUS_ADAPTER_HARDWARE_ERROR),
00391 DEFINE_STATUSCODE(STATUS_INVALID_NETWORK_RESPONSE),
00392 DEFINE_STATUSCODE(STATUS_UNEXPECTED_NETWORK_ERROR),
00393 DEFINE_STATUSCODE(STATUS_BAD_REMOTE_ADAPTER),
00394 DEFINE_STATUSCODE(STATUS_PRINT_QUEUE_FULL),
00395 DEFINE_STATUSCODE(STATUS_NO_SPOOL_SPACE),
00396 DEFINE_STATUSCODE(STATUS_PRINT_CANCELLED),
00397 DEFINE_STATUSCODE(STATUS_NETWORK_NAME_DELETED),
00398 DEFINE_STATUSCODE(STATUS_NETWORK_ACCESS_DENIED),
00399 DEFINE_STATUSCODE(STATUS_BAD_DEVICE_TYPE),
00400 DEFINE_STATUSCODE(STATUS_BAD_NETWORK_NAME),
00401 DEFINE_STATUSCODE(STATUS_TOO_MANY_NAMES),
00402 DEFINE_STATUSCODE(STATUS_TOO_MANY_SESSIONS),
00403 DEFINE_STATUSCODE(STATUS_SHARING_PAUSED),
00404 DEFINE_STATUSCODE(STATUS_REQUEST_NOT_ACCEPTED),
00405 DEFINE_STATUSCODE(STATUS_REDIRECTOR_PAUSED),
00406 DEFINE_STATUSCODE(STATUS_NET_WRITE_FAULT),
00407 DEFINE_STATUSCODE(STATUS_PROFILING_AT_LIMIT),
00408 DEFINE_STATUSCODE(STATUS_NOT_SAME_DEVICE),
00409 DEFINE_STATUSCODE(STATUS_FILE_RENAMED),
00410 DEFINE_STATUSCODE(STATUS_VIRTUAL_CIRCUIT_CLOSED),
00411 DEFINE_STATUSCODE(STATUS_NO_SECURITY_ON_OBJECT),
00412 DEFINE_STATUSCODE(STATUS_CANT_WAIT),
00413 DEFINE_STATUSCODE(STATUS_PIPE_EMPTY),
00414 DEFINE_STATUSCODE(STATUS_CANT_ACCESS_DOMAIN_INFO),
00415 DEFINE_STATUSCODE(STATUS_CANT_TERMINATE_SELF),
00416 DEFINE_STATUSCODE(STATUS_INVALID_SERVER_STATE),
00417 DEFINE_STATUSCODE(STATUS_INVALID_DOMAIN_STATE),
00418 DEFINE_STATUSCODE(STATUS_INVALID_DOMAIN_ROLE),
00419 DEFINE_STATUSCODE(STATUS_NO_SUCH_DOMAIN),
00420 DEFINE_STATUSCODE(STATUS_DOMAIN_EXISTS),
00421 DEFINE_STATUSCODE(STATUS_DOMAIN_LIMIT_EXCEEDED),
00422 DEFINE_STATUSCODE(STATUS_OPLOCK_NOT_GRANTED),
00423 DEFINE_STATUSCODE(STATUS_INVALID_OPLOCK_PROTOCOL),
00424 DEFINE_STATUSCODE(STATUS_INTERNAL_DB_CORRUPTION),
00425 DEFINE_STATUSCODE(STATUS_INTERNAL_ERROR),
00426 DEFINE_STATUSCODE(STATUS_GENERIC_NOT_MAPPED),
00427 DEFINE_STATUSCODE(STATUS_BAD_DESCRIPTOR_FORMAT),
00428 DEFINE_STATUSCODE(STATUS_INVALID_USER_BUFFER),
00429 DEFINE_STATUSCODE(STATUS_UNEXPECTED_IO_ERROR),
00430 DEFINE_STATUSCODE(STATUS_UNEXPECTED_MM_CREATE_ERR),
00431 DEFINE_STATUSCODE(STATUS_UNEXPECTED_MM_MAP_ERROR),
00432 DEFINE_STATUSCODE(STATUS_UNEXPECTED_MM_EXTEND_ERR),
00433 DEFINE_STATUSCODE(STATUS_NOT_LOGON_PROCESS),
00434 DEFINE_STATUSCODE(STATUS_LOGON_SESSION_EXISTS),
00435 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_1),
00436 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_2),
00437 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_3),
00438 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_4),
00439 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_5),
00440 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_6),
00441 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_7),
00442 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_8),
00443 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_9),
00444 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_10),
00445 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_11),
00446 DEFINE_STATUSCODE(STATUS_INVALID_PARAMETER_12),
00447 DEFINE_STATUSCODE(STATUS_REDIRECTOR_NOT_STARTED),
00448 DEFINE_STATUSCODE(STATUS_REDIRECTOR_STARTED),
00449 DEFINE_STATUSCODE(STATUS_STACK_OVERFLOW),
00450 DEFINE_STATUSCODE(STATUS_NO_SUCH_PACKAGE),
00451 DEFINE_STATUSCODE(STATUS_BAD_FUNCTION_TABLE),
00452 DEFINE_STATUSCODE(STATUS_VARIABLE_NOT_FOUND),
00453 DEFINE_STATUSCODE(STATUS_DIRECTORY_NOT_EMPTY),
00454 DEFINE_STATUSCODE(STATUS_FILE_CORRUPT_ERROR),
00455 DEFINE_STATUSCODE(STATUS_NOT_A_DIRECTORY),
00456 DEFINE_STATUSCODE(STATUS_BAD_LOGON_SESSION_STATE),
00457 DEFINE_STATUSCODE(STATUS_LOGON_SESSION_COLLISION),
00458 DEFINE_STATUSCODE(STATUS_NAME_TOO_LONG),
00459 DEFINE_STATUSCODE(STATUS_FILES_OPEN),
00460 DEFINE_STATUSCODE(STATUS_CONNECTION_IN_USE),
00461 DEFINE_STATUSCODE(STATUS_MESSAGE_NOT_FOUND),
00462 DEFINE_STATUSCODE(STATUS_PROCESS_IS_TERMINATING),
00463 DEFINE_STATUSCODE(STATUS_INVALID_LOGON_TYPE),
00464 DEFINE_STATUSCODE(STATUS_NO_GUID_TRANSLATION),
00465 DEFINE_STATUSCODE(STATUS_CANNOT_IMPERSONATE),
00466 DEFINE_STATUSCODE(STATUS_IMAGE_ALREADY_LOADED),
00467 DEFINE_STATUSCODE(STATUS_ABIOS_NOT_PRESENT),
00468 DEFINE_STATUSCODE(STATUS_ABIOS_LID_NOT_EXIST),
00469 DEFINE_STATUSCODE(STATUS_ABIOS_LID_ALREADY_OWNED),
00470 DEFINE_STATUSCODE(STATUS_ABIOS_NOT_LID_OWNER),
00471 DEFINE_STATUSCODE(STATUS_ABIOS_INVALID_COMMAND),
00472 DEFINE_STATUSCODE(STATUS_ABIOS_INVALID_LID),
00473 DEFINE_STATUSCODE(STATUS_ABIOS_SELECTOR_NOT_AVAILABLE),
00474 DEFINE_STATUSCODE(STATUS_ABIOS_INVALID_SELECTOR),
00475 DEFINE_STATUSCODE(STATUS_NO_LDT),
00476 DEFINE_STATUSCODE(STATUS_INVALID_LDT_SIZE),
00477 DEFINE_STATUSCODE(STATUS_INVALID_LDT_OFFSET),
00478 DEFINE_STATUSCODE(STATUS_INVALID_LDT_DESCRIPTOR),
00479 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_NE_FORMAT),
00480 DEFINE_STATUSCODE(STATUS_RXACT_INVALID_STATE),
00481 DEFINE_STATUSCODE(STATUS_RXACT_COMMIT_FAILURE),
00482 DEFINE_STATUSCODE(STATUS_MAPPED_FILE_SIZE_ZERO),
00483 DEFINE_STATUSCODE(STATUS_TOO_MANY_OPENED_FILES),
00484 DEFINE_STATUSCODE(STATUS_CANCELLED),
00485 DEFINE_STATUSCODE(STATUS_CANNOT_DELETE),
00486 DEFINE_STATUSCODE(STATUS_INVALID_COMPUTER_NAME),
00487 DEFINE_STATUSCODE(STATUS_FILE_DELETED),
00488 DEFINE_STATUSCODE(STATUS_SPECIAL_ACCOUNT),
00489 DEFINE_STATUSCODE(STATUS_SPECIAL_GROUP),
00490 DEFINE_STATUSCODE(STATUS_SPECIAL_USER),
00491 DEFINE_STATUSCODE(STATUS_MEMBERS_PRIMARY_GROUP),
00492 DEFINE_STATUSCODE(STATUS_FILE_CLOSED),
00493 DEFINE_STATUSCODE(STATUS_TOO_MANY_THREADS),
00494 DEFINE_STATUSCODE(STATUS_THREAD_NOT_IN_PROCESS),
00495 DEFINE_STATUSCODE(STATUS_TOKEN_ALREADY_IN_USE),
00496 DEFINE_STATUSCODE(STATUS_PAGEFILE_QUOTA_EXCEEDED),
00497 DEFINE_STATUSCODE(STATUS_COMMITMENT_LIMIT),
00498 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_LE_FORMAT),
00499 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_NOT_MZ),
00500 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_PROTECT),
00501 DEFINE_STATUSCODE(STATUS_INVALID_IMAGE_WIN_16),
00502 DEFINE_STATUSCODE(STATUS_LOGON_SERVER_CONFLICT),
00503 DEFINE_STATUSCODE(STATUS_TIME_DIFFERENCE_AT_DC),
00504 DEFINE_STATUSCODE(STATUS_SYNCHRONIZATION_REQUIRED),
00505 DEFINE_STATUSCODE(STATUS_DLL_NOT_FOUND),
00506 DEFINE_STATUSCODE(STATUS_OPEN_FAILED),
00507 DEFINE_STATUSCODE(STATUS_IO_PRIVILEGE_FAILED),
00508 DEFINE_STATUSCODE(STATUS_ORDINAL_NOT_FOUND),
00509 DEFINE_STATUSCODE(STATUS_ENTRYPOINT_NOT_FOUND),
00510 DEFINE_STATUSCODE(STATUS_CONTROL_C_EXIT),
00511 DEFINE_STATUSCODE(STATUS_LOCAL_DISCONNECT),
00512 DEFINE_STATUSCODE(STATUS_REMOTE_DISCONNECT),
00513 DEFINE_STATUSCODE(STATUS_REMOTE_RESOURCES),
00514 DEFINE_STATUSCODE(STATUS_LINK_FAILED),
00515 DEFINE_STATUSCODE(STATUS_LINK_TIMEOUT),
00516 DEFINE_STATUSCODE(STATUS_INVALID_CONNECTION),
00517 DEFINE_STATUSCODE(STATUS_INVALID_ADDRESS),
00518 DEFINE_STATUSCODE(STATUS_DLL_INIT_FAILED),
00519 DEFINE_STATUSCODE(STATUS_MISSING_SYSTEMFILE),
00520 DEFINE_STATUSCODE(STATUS_UNHANDLED_EXCEPTION),
00521 DEFINE_STATUSCODE(STATUS_APP_INIT_FAILURE),
00522 DEFINE_STATUSCODE(STATUS_PAGEFILE_CREATE_FAILED),
00523 DEFINE_STATUSCODE(STATUS_NO_PAGEFILE),
00524 DEFINE_STATUSCODE(STATUS_INVALID_LEVEL),
00525 DEFINE_STATUSCODE(STATUS_WRONG_PASSWORD_CORE),
00526 DEFINE_STATUSCODE(STATUS_ILLEGAL_FLOAT_CONTEXT),
00527 DEFINE_STATUSCODE(STATUS_PIPE_BROKEN),
00528 DEFINE_STATUSCODE(STATUS_REGISTRY_CORRUPT),
00529 DEFINE_STATUSCODE(STATUS_REGISTRY_IO_FAILED),
00530 DEFINE_STATUSCODE(STATUS_NO_EVENT_PAIR),
00531 DEFINE_STATUSCODE(STATUS_UNRECOGNIZED_VOLUME),
00532 DEFINE_STATUSCODE(STATUS_SERIAL_NO_DEVICE_INITED),
00533 DEFINE_STATUSCODE(STATUS_NO_SUCH_ALIAS),
00534 DEFINE_STATUSCODE(STATUS_MEMBER_NOT_IN_ALIAS),
00535 DEFINE_STATUSCODE(STATUS_MEMBER_IN_ALIAS),
00536 DEFINE_STATUSCODE(STATUS_ALIAS_EXISTS),
00537 DEFINE_STATUSCODE(STATUS_LOGON_NOT_GRANTED),
00538 DEFINE_STATUSCODE(STATUS_TOO_MANY_SECRETS),
00539 DEFINE_STATUSCODE(STATUS_SECRET_TOO_LONG),
00540 DEFINE_STATUSCODE(STATUS_INTERNAL_DB_ERROR),
00541 DEFINE_STATUSCODE(STATUS_FULLSCREEN_MODE),
00542 DEFINE_STATUSCODE(STATUS_TOO_MANY_CONTEXT_IDS),
00543 DEFINE_STATUSCODE(STATUS_LOGON_TYPE_NOT_GRANTED),
00544 DEFINE_STATUSCODE(STATUS_NOT_REGISTRY_FILE),
00545 DEFINE_STATUSCODE(STATUS_NT_CROSS_ENCRYPTION_REQUIRED),
00546 DEFINE_STATUSCODE(STATUS_DOMAIN_CTRLR_CONFIG_ERROR),
00547 DEFINE_STATUSCODE(STATUS_FT_MISSING_MEMBER),
00548 DEFINE_STATUSCODE(STATUS_ILL_FORMED_SERVICE_ENTRY),
00549 DEFINE_STATUSCODE(STATUS_ILLEGAL_CHARACTER),
00550 DEFINE_STATUSCODE(STATUS_UNMAPPABLE_CHARACTER),
00551 DEFINE_STATUSCODE(STATUS_UNDEFINED_CHARACTER),
00552 DEFINE_STATUSCODE(STATUS_FLOPPY_VOLUME),
00553 DEFINE_STATUSCODE(STATUS_FLOPPY_ID_MARK_NOT_FOUND),
00554 DEFINE_STATUSCODE(STATUS_FLOPPY_WRONG_CYLINDER),
00555 DEFINE_STATUSCODE(STATUS_FLOPPY_UNKNOWN_ERROR),
00556 DEFINE_STATUSCODE(STATUS_FLOPPY_BAD_REGISTERS),
00557 DEFINE_STATUSCODE(STATUS_DISK_RECALIBRATE_FAILED),
00558 DEFINE_STATUSCODE(STATUS_DISK_OPERATION_FAILED),
00559 DEFINE_STATUSCODE(STATUS_DISK_RESET_FAILED),
00560 DEFINE_STATUSCODE(STATUS_SHARED_IRQ_BUSY),
00561 DEFINE_STATUSCODE(STATUS_FT_ORPHANING),
00562 DEFINE_STATUSCODE(STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT),
00563 DEFINE_STATUSCODE(STATUS_PARTITION_FAILURE),
00564 DEFINE_STATUSCODE(STATUS_INVALID_BLOCK_LENGTH),
00565 DEFINE_STATUSCODE(STATUS_DEVICE_NOT_PARTITIONED),
00566 DEFINE_STATUSCODE(STATUS_UNABLE_TO_LOCK_MEDIA),
00567 DEFINE_STATUSCODE(STATUS_UNABLE_TO_UNLOAD_MEDIA),
00568 DEFINE_STATUSCODE(STATUS_EOM_OVERFLOW),
00569 DEFINE_STATUSCODE(STATUS_NO_MEDIA),
00570 DEFINE_STATUSCODE(STATUS_NO_SUCH_MEMBER),
00571 DEFINE_STATUSCODE(STATUS_INVALID_MEMBER),
00572 DEFINE_STATUSCODE(STATUS_KEY_DELETED),
00573 DEFINE_STATUSCODE(STATUS_NO_LOG_SPACE),
00574 DEFINE_STATUSCODE(STATUS_TOO_MANY_SIDS),
00575 DEFINE_STATUSCODE(STATUS_LM_CROSS_ENCRYPTION_REQUIRED),
00576 DEFINE_STATUSCODE(STATUS_KEY_HAS_CHILDREN),
00577 DEFINE_STATUSCODE(STATUS_CHILD_MUST_BE_VOLATILE),
00578 DEFINE_STATUSCODE(STATUS_DEVICE_CONFIGURATION_ERROR),
00579 DEFINE_STATUSCODE(STATUS_DRIVER_INTERNAL_ERROR),
00580 DEFINE_STATUSCODE(STATUS_INVALID_DEVICE_STATE),
00581 DEFINE_STATUSCODE(STATUS_IO_DEVICE_ERROR),
00582 DEFINE_STATUSCODE(STATUS_DEVICE_PROTOCOL_ERROR),
00583 DEFINE_STATUSCODE(STATUS_BACKUP_CONTROLLER),
00584 DEFINE_STATUSCODE(STATUS_LOG_FILE_FULL),
00585 DEFINE_STATUSCODE(STATUS_TOO_LATE),
00586 DEFINE_STATUSCODE(STATUS_NO_TRUST_LSA_SECRET),
00587 DEFINE_STATUSCODE(STATUS_NO_TRUST_SAM_ACCOUNT),
00588 DEFINE_STATUSCODE(STATUS_TRUSTED_DOMAIN_FAILURE),
00589 DEFINE_STATUSCODE(STATUS_TRUSTED_RELATIONSHIP_FAILURE),
00590 DEFINE_STATUSCODE(STATUS_EVENTLOG_FILE_CORRUPT),
00591 DEFINE_STATUSCODE(STATUS_EVENTLOG_CANT_START),
00592 DEFINE_STATUSCODE(STATUS_TRUST_FAILURE),
00593 DEFINE_STATUSCODE(STATUS_MUTANT_LIMIT_EXCEEDED),
00594 DEFINE_STATUSCODE(STATUS_NETLOGON_NOT_STARTED),
00595 DEFINE_STATUSCODE(STATUS_ACCOUNT_EXPIRED),
00596 DEFINE_STATUSCODE(STATUS_POSSIBLE_DEADLOCK),
00597 DEFINE_STATUSCODE(STATUS_NETWORK_CREDENTIAL_CONFLICT),
00598 DEFINE_STATUSCODE(STATUS_REMOTE_SESSION_LIMIT),
00599 DEFINE_STATUSCODE(STATUS_EVENTLOG_FILE_CHANGED),
00600 DEFINE_STATUSCODE(STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT),
00601 DEFINE_STATUSCODE(STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT),
00602 DEFINE_STATUSCODE(STATUS_NOLOGON_SERVER_TRUST_ACCOUNT),
00603 DEFINE_STATUSCODE(STATUS_DOMAIN_TRUST_INCONSISTENT),
00604 DEFINE_STATUSCODE(STATUS_FS_DRIVER_REQUIRED),
00605 DEFINE_STATUSCODE(STATUS_NO_USER_SESSION_KEY),
00606 DEFINE_STATUSCODE(STATUS_USER_SESSION_DELETED),
00607 DEFINE_STATUSCODE(STATUS_RESOURCE_LANG_NOT_FOUND),
00608 DEFINE_STATUSCODE(STATUS_INSUFF_SERVER_RESOURCES),
00609 DEFINE_STATUSCODE(STATUS_INVALID_BUFFER_SIZE),
00610 DEFINE_STATUSCODE(STATUS_INVALID_ADDRESS_COMPONENT),
00611 DEFINE_STATUSCODE(STATUS_INVALID_ADDRESS_WILDCARD),
00612 DEFINE_STATUSCODE(STATUS_TOO_MANY_ADDRESSES),
00613 DEFINE_STATUSCODE(STATUS_ADDRESS_ALREADY_EXISTS),
00614 DEFINE_STATUSCODE(STATUS_ADDRESS_CLOSED),
00615 DEFINE_STATUSCODE(STATUS_CONNECTION_DISCONNECTED),
00616 DEFINE_STATUSCODE(STATUS_CONNECTION_RESET),
00617 DEFINE_STATUSCODE(STATUS_TOO_MANY_NODES),
00618 DEFINE_STATUSCODE(STATUS_TRANSACTION_ABORTED),
00619 DEFINE_STATUSCODE(STATUS_TRANSACTION_TIMED_OUT),
00620 DEFINE_STATUSCODE(STATUS_TRANSACTION_NO_RELEASE),
00621 DEFINE_STATUSCODE(STATUS_TRANSACTION_NO_MATCH),
00622 DEFINE_STATUSCODE(STATUS_TRANSACTION_RESPONDED),
00623 DEFINE_STATUSCODE(STATUS_TRANSACTION_INVALID_ID),
00624 DEFINE_STATUSCODE(STATUS_TRANSACTION_INVALID_TYPE),
00625 DEFINE_STATUSCODE(STATUS_NOT_SERVER_SESSION),
00626 DEFINE_STATUSCODE(STATUS_NOT_CLIENT_SESSION),
00627 DEFINE_STATUSCODE(STATUS_CANNOT_LOAD_REGISTRY_FILE),
00628 DEFINE_STATUSCODE(STATUS_DEBUG_ATTACH_FAILED),
00629 DEFINE_STATUSCODE(STATUS_SYSTEM_PROCESS_TERMINATED),
00630 DEFINE_STATUSCODE(STATUS_DATA_NOT_ACCEPTED),
00631 DEFINE_STATUSCODE(STATUS_NO_BROWSER_SERVERS_FOUND),
00632 DEFINE_STATUSCODE(STATUS_VDM_HARD_ERROR),
00633 DEFINE_STATUSCODE(STATUS_DRIVER_CANCEL_TIMEOUT),
00634 DEFINE_STATUSCODE(STATUS_REPLY_MESSAGE_MISMATCH),
00635 DEFINE_STATUSCODE(STATUS_MAPPED_ALIGNMENT),
00636 DEFINE_STATUSCODE(STATUS_IMAGE_CHECKSUM_MISMATCH),
00637 DEFINE_STATUSCODE(STATUS_LOST_WRITEBEHIND_DATA),
00638 DEFINE_STATUSCODE(STATUS_CLIENT_SERVER_PARAMETERS_INVALID),
00639 DEFINE_STATUSCODE(STATUS_PASSWORD_MUST_CHANGE),
00640 DEFINE_STATUSCODE(STATUS_NOT_FOUND),
00641 DEFINE_STATUSCODE(STATUS_NOT_TINY_STREAM),
00642 DEFINE_STATUSCODE(STATUS_RECOVERY_FAILURE),
00643 DEFINE_STATUSCODE(STATUS_STACK_OVERFLOW_READ),
00644 DEFINE_STATUSCODE(STATUS_FAIL_CHECK),
00645 DEFINE_STATUSCODE(STATUS_DUPLICATE_OBJECTID),
00646 DEFINE_STATUSCODE(STATUS_OBJECTID_EXISTS),
00647 DEFINE_STATUSCODE(STATUS_CONVERT_TO_LARGE),
00648 DEFINE_STATUSCODE(STATUS_RETRY),
00649 DEFINE_STATUSCODE(STATUS_FOUND_OUT_OF_SCOPE),
00650 DEFINE_STATUSCODE(STATUS_ALLOCATE_BUCKET),
00651 DEFINE_STATUSCODE(STATUS_PROPSET_NOT_FOUND),
00652 DEFINE_STATUSCODE(STATUS_MARSHALL_OVERFLOW),
00653 DEFINE_STATUSCODE(STATUS_INVALID_VARIANT),
00654 DEFINE_STATUSCODE(STATUS_DOMAIN_CONTROLLER_NOT_FOUND),
00655 DEFINE_STATUSCODE(STATUS_ACCOUNT_LOCKED_OUT),
00656 DEFINE_STATUSCODE(STATUS_HANDLE_NOT_CLOSABLE),
00657 DEFINE_STATUSCODE(STATUS_CONNECTION_REFUSED),
00658 DEFINE_STATUSCODE(STATUS_GRACEFUL_DISCONNECT),
00659 DEFINE_STATUSCODE(STATUS_ADDRESS_ALREADY_ASSOCIATED),
00660 DEFINE_STATUSCODE(STATUS_ADDRESS_NOT_ASSOCIATED),
00661 DEFINE_STATUSCODE(STATUS_CONNECTION_INVALID),
00662 DEFINE_STATUSCODE(STATUS_CONNECTION_ACTIVE),
00663 DEFINE_STATUSCODE(STATUS_NETWORK_UNREACHABLE),
00664 DEFINE_STATUSCODE(STATUS_HOST_UNREACHABLE),
00665 DEFINE_STATUSCODE(STATUS_PROTOCOL_UNREACHABLE),
00666 DEFINE_STATUSCODE(STATUS_PORT_UNREACHABLE),
00667 DEFINE_STATUSCODE(STATUS_REQUEST_ABORTED),
00668 DEFINE_STATUSCODE(STATUS_CONNECTION_ABORTED),
00669 DEFINE_STATUSCODE(STATUS_BAD_COMPRESSION_BUFFER),
00670 DEFINE_STATUSCODE(STATUS_USER_MAPPED_FILE),
00671 DEFINE_STATUSCODE(STATUS_AUDIT_FAILED),
00672 DEFINE_STATUSCODE(STATUS_TIMER_RESOLUTION_NOT_SET),
00673 DEFINE_STATUSCODE(STATUS_CONNECTION_COUNT_LIMIT),
00674 DEFINE_STATUSCODE(STATUS_LOGIN_TIME_RESTRICTION),
00675 DEFINE_STATUSCODE(STATUS_LOGIN_WKSTA_RESTRICTION),
00676 DEFINE_STATUSCODE(STATUS_IMAGE_MP_UP_MISMATCH),
00677 DEFINE_STATUSCODE(STATUS_INSUFFICIENT_LOGON_INFO),
00678 DEFINE_STATUSCODE(STATUS_BAD_DLL_ENTRYPOINT),
00679 DEFINE_STATUSCODE(STATUS_BAD_SERVICE_ENTRYPOINT),
00680 DEFINE_STATUSCODE(STATUS_LPC_REPLY_LOST),
00681 DEFINE_STATUSCODE(STATUS_IP_ADDRESS_CONFLICT1),
00682 DEFINE_STATUSCODE(STATUS_IP_ADDRESS_CONFLICT2),
00683 DEFINE_STATUSCODE(STATUS_REGISTRY_QUOTA_LIMIT),
00684 DEFINE_STATUSCODE(STATUS_PATH_NOT_COVERED),
00685 DEFINE_STATUSCODE(STATUS_NO_CALLBACK_ACTIVE),
00686 DEFINE_STATUSCODE(STATUS_LICENSE_QUOTA_EXCEEDED),
00687 DEFINE_STATUSCODE(STATUS_PWD_TOO_SHORT),
00688 DEFINE_STATUSCODE(STATUS_PWD_TOO_RECENT),
00689 DEFINE_STATUSCODE(STATUS_PWD_HISTORY_CONFLICT),
00690 DEFINE_STATUSCODE(STATUS_PLUGPLAY_NO_DEVICE),
00691 DEFINE_STATUSCODE(STATUS_UNSUPPORTED_COMPRESSION),
00692 DEFINE_STATUSCODE(STATUS_INVALID_HW_PROFILE),
00693 DEFINE_STATUSCODE(STATUS_INVALID_PLUGPLAY_DEVICE_PATH),
00694 DEFINE_STATUSCODE(STATUS_DRIVER_ORDINAL_NOT_FOUND),
00695 DEFINE_STATUSCODE(STATUS_DRIVER_ENTRYPOINT_NOT_FOUND),
00696 DEFINE_STATUSCODE(STATUS_RESOURCE_NOT_OWNED),
00697 DEFINE_STATUSCODE(STATUS_TOO_MANY_LINKS),
00698 DEFINE_STATUSCODE(STATUS_QUOTA_LIST_INCONSISTENT),
00699 DEFINE_STATUSCODE(STATUS_FILE_IS_OFFLINE),
00700 DEFINE_STATUSCODE(STATUS_EVALUATION_EXPIRATION),
00701 DEFINE_STATUSCODE(STATUS_ILLEGAL_DLL_RELOCATION),
00702 DEFINE_STATUSCODE(STATUS_LICENSE_VIOLATION),
00703 DEFINE_STATUSCODE(STATUS_DLL_INIT_FAILED_LOGOFF),
00704 DEFINE_STATUSCODE(STATUS_DRIVER_UNABLE_TO_LOAD),
00705 DEFINE_STATUSCODE(STATUS_DFS_UNAVAILABLE),
00706 DEFINE_STATUSCODE(STATUS_VOLUME_DISMOUNTED),
00707 DEFINE_STATUSCODE(STATUS_WX86_INTERNAL_ERROR),
00708 DEFINE_STATUSCODE(STATUS_WX86_FLOAT_STACK_CHECK),
00709 DEFINE_STATUSCODE(STATUS_VALIDATE_CONTINUE),
00710 DEFINE_STATUSCODE(STATUS_NO_MATCH),
00711 DEFINE_STATUSCODE(STATUS_NO_MORE_MATCHES),
00712 DEFINE_STATUSCODE(STATUS_NOT_A_REPARSE_POINT),
00713 DEFINE_STATUSCODE(STATUS_IO_REPARSE_TAG_INVALID),
00714 DEFINE_STATUSCODE(STATUS_IO_REPARSE_TAG_MISMATCH),
00715 DEFINE_STATUSCODE(STATUS_IO_REPARSE_DATA_INVALID),
00716 DEFINE_STATUSCODE(STATUS_IO_REPARSE_TAG_NOT_HANDLED),
00717 DEFINE_STATUSCODE(STATUS_REPARSE_POINT_NOT_RESOLVED),
00718 DEFINE_STATUSCODE(STATUS_DIRECTORY_IS_A_REPARSE_POINT),
00719 DEFINE_STATUSCODE(STATUS_RANGE_LIST_CONFLICT),
00720 DEFINE_STATUSCODE(STATUS_SOURCE_ELEMENT_EMPTY),
00721 DEFINE_STATUSCODE(STATUS_DESTINATION_ELEMENT_FULL),
00722 DEFINE_STATUSCODE(STATUS_ILLEGAL_ELEMENT_ADDRESS),
00723 DEFINE_STATUSCODE(STATUS_MAGAZINE_NOT_PRESENT),
00724 DEFINE_STATUSCODE(STATUS_REINITIALIZATION_NEEDED),
00725 DEFINE_STATUSCODE(STATUS_DEVICE_REQUIRES_CLEANING),
00726 DEFINE_STATUSCODE(STATUS_DEVICE_DOOR_OPEN),
00727 DEFINE_STATUSCODE(STATUS_ENCRYPTION_FAILED),
00728 DEFINE_STATUSCODE(STATUS_DECRYPTION_FAILED),
00729 DEFINE_STATUSCODE(STATUS_RANGE_NOT_FOUND),
00730 DEFINE_STATUSCODE(STATUS_NO_RECOVERY_POLICY),
00731 DEFINE_STATUSCODE(STATUS_NO_EFS),
00732 DEFINE_STATUSCODE(STATUS_WRONG_EFS),
00733 DEFINE_STATUSCODE(STATUS_NO_USER_KEYS),
00734 DEFINE_STATUSCODE(STATUS_FILE_NOT_ENCRYPTED),
00735 DEFINE_STATUSCODE(STATUS_NOT_EXPORT_FORMAT),
00736 DEFINE_STATUSCODE(STATUS_FILE_ENCRYPTED),
00737 DEFINE_STATUSCODE(STATUS_WAKE_SYSTEM),
00738 DEFINE_STATUSCODE(STATUS_WMI_GUID_NOT_FOUND),
00739 DEFINE_STATUSCODE(STATUS_WMI_INSTANCE_NOT_FOUND),
00740 DEFINE_STATUSCODE(STATUS_WMI_ITEMID_NOT_FOUND),
00741 DEFINE_STATUSCODE(STATUS_WMI_TRY_AGAIN),
00742 DEFINE_STATUSCODE(STATUS_SHARED_POLICY),
00743 DEFINE_STATUSCODE(STATUS_POLICY_OBJECT_NOT_FOUND),
00744 DEFINE_STATUSCODE(STATUS_POLICY_ONLY_IN_DS),
00745 DEFINE_STATUSCODE(STATUS_VOLUME_NOT_UPGRADED),
00746 DEFINE_STATUSCODE(STATUS_REMOTE_STORAGE_NOT_ACTIVE),
00747 DEFINE_STATUSCODE(STATUS_REMOTE_STORAGE_MEDIA_ERROR),
00748 DEFINE_STATUSCODE(STATUS_NO_TRACKING_SERVICE),
00749 DEFINE_STATUSCODE(STATUS_SERVER_SID_MISMATCH),
00750 DEFINE_STATUSCODE(STATUS_DS_NO_ATTRIBUTE_OR_VALUE),
00751 DEFINE_STATUSCODE(STATUS_DS_INVALID_ATTRIBUTE_SYNTAX),
00752 DEFINE_STATUSCODE(STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED),
00753 DEFINE_STATUSCODE(STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS),
00754 DEFINE_STATUSCODE(STATUS_DS_BUSY),
00755 DEFINE_STATUSCODE(STATUS_DS_UNAVAILABLE),
00756 DEFINE_STATUSCODE(STATUS_DS_NO_RIDS_ALLOCATED),
00757 DEFINE_STATUSCODE(STATUS_DS_NO_MORE_RIDS),
00758 DEFINE_STATUSCODE(STATUS_DS_INCORRECT_ROLE_OWNER),
00759 DEFINE_STATUSCODE(STATUS_DS_RIDMGR_INIT_ERROR),
00760 DEFINE_STATUSCODE(STATUS_DS_OBJ_CLASS_VIOLATION),
00761 DEFINE_STATUSCODE(STATUS_DS_CANT_ON_NON_LEAF),
00762 DEFINE_STATUSCODE(STATUS_DS_CANT_ON_RDN),
00763 DEFINE_STATUSCODE(STATUS_DS_CANT_MOD_OBJ_CLASS),
00764 DEFINE_STATUSCODE(STATUS_DS_CROSS_DOM_MOVE_FAILED),
00765 DEFINE_STATUSCODE(STATUS_DS_GC_NOT_AVAILABLE),
00766 DEFINE_STATUSCODE(STATUS_DIRECTORY_SERVICE_REQUIRED),
00767 DEFINE_STATUSCODE(STATUS_REPARSE_ATTRIBUTE_CONFLICT),
00768 DEFINE_STATUSCODE(STATUS_CANT_ENABLE_DENY_ONLY),
00769 DEFINE_STATUSCODE(STATUS_FLOAT_MULTIPLE_FAULTS),
00770 DEFINE_STATUSCODE(STATUS_FLOAT_MULTIPLE_TRAPS),
00771 DEFINE_STATUSCODE(STATUS_DEVICE_REMOVED),
00772 DEFINE_STATUSCODE(STATUS_JOURNAL_DELETE_IN_PROGRESS),
00773 DEFINE_STATUSCODE(STATUS_JOURNAL_NOT_ACTIVE),
00774 DEFINE_STATUSCODE(STATUS_NOINTERFACE),
00775 DEFINE_STATUSCODE(STATUS_DS_ADMIN_LIMIT_EXCEEDED),
00776 DEFINE_STATUSCODE(STATUS_DRIVER_FAILED_SLEEP),
00777 DEFINE_STATUSCODE(STATUS_MUTUAL_AUTHENTICATION_FAILED),
00778 DEFINE_STATUSCODE(STATUS_CORRUPT_SYSTEM_FILE),
00779 DEFINE_STATUSCODE(STATUS_DATATYPE_MISALIGNMENT_ERROR),
00780 DEFINE_STATUSCODE(STATUS_WMI_READ_ONLY),
00781 DEFINE_STATUSCODE(STATUS_WMI_SET_FAILURE),
00782 DEFINE_STATUSCODE(STATUS_COMMITMENT_MINIMUM),
00783 DEFINE_STATUSCODE(STATUS_REG_NAT_CONSUMPTION),
00784 DEFINE_STATUSCODE(STATUS_TRANSPORT_FULL),
00785 DEFINE_STATUSCODE(STATUS_DS_SAM_INIT_FAILURE),
00786 DEFINE_STATUSCODE(STATUS_ONLY_IF_CONNECTED),
00787 DEFINE_STATUSCODE(STATUS_DS_SENSITIVE_GROUP_VIOLATION),
00788 DEFINE_STATUSCODE(STATUS_PNP_RESTART_ENUMERATION),
00789 DEFINE_STATUSCODE(STATUS_JOURNAL_ENTRY_DELETED),
00790 DEFINE_STATUSCODE(STATUS_DS_CANT_MOD_PRIMARYGROUPID),
00791 DEFINE_STATUSCODE(STATUS_SYSTEM_IMAGE_BAD_SIGNATURE),
00792 DEFINE_STATUSCODE(STATUS_PNP_REBOOT_REQUIRED),
00793 DEFINE_STATUSCODE(STATUS_POWER_STATE_INVALID),
00794 DEFINE_STATUSCODE(STATUS_DS_INVALID_GROUP_TYPE),
00795 DEFINE_STATUSCODE(STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN),
00796 DEFINE_STATUSCODE(STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN),
00797 DEFINE_STATUSCODE(STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER),
00798 DEFINE_STATUSCODE(STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER),
00799 DEFINE_STATUSCODE(STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER),
00800 DEFINE_STATUSCODE(STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER),
00801 DEFINE_STATUSCODE(STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER),
00802 DEFINE_STATUSCODE(STATUS_DS_HAVE_PRIMARY_MEMBERS),
00803 DEFINE_STATUSCODE(STATUS_WMI_NOT_SUPPORTED),
00804 DEFINE_STATUSCODE(STATUS_INSUFFICIENT_POWER),
00805 DEFINE_STATUSCODE(STATUS_SAM_NEED_BOOTKEY_PASSWORD),
00806 DEFINE_STATUSCODE(STATUS_SAM_NEED_BOOTKEY_FLOPPY),
00807 DEFINE_STATUSCODE(STATUS_DS_CANT_START),
00808 DEFINE_STATUSCODE(STATUS_DS_INIT_FAILURE),
00809 DEFINE_STATUSCODE(STATUS_SAM_INIT_FAILURE),
00810 DEFINE_STATUSCODE(STATUS_DS_GC_REQUIRED),
00811 DEFINE_STATUSCODE(STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY),
00812 DEFINE_STATUSCODE(STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS),
00813 DEFINE_STATUSCODE(STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED),
00814 DEFINE_STATUSCODE(STATUS_MULTIPLE_FAULT_VIOLATION),
00815 DEFINE_STATUSCODE(STATUS_NOT_SUPPORTED_ON_SBS),
00816 DEFINE_STATUSCODE(STATUS_WOW_ASSERTION),
00817 DEFINE_STATUSCODE(DBG_NO_STATE_CHANGE),
00818 DEFINE_STATUSCODE(DBG_APP_NOT_IDLE),
00819 DEFINE_STATUSCODE(RPC_NT_INVALID_STRING_BINDING),
00820 DEFINE_STATUSCODE(RPC_NT_WRONG_KIND_OF_BINDING),
00821 DEFINE_STATUSCODE(RPC_NT_INVALID_BINDING),
00822 DEFINE_STATUSCODE(RPC_NT_PROTSEQ_NOT_SUPPORTED),
00823 DEFINE_STATUSCODE(RPC_NT_INVALID_RPC_PROTSEQ),
00824 DEFINE_STATUSCODE(RPC_NT_INVALID_STRING_UUID),
00825 DEFINE_STATUSCODE(RPC_NT_INVALID_ENDPOINT_FORMAT),
00826 DEFINE_STATUSCODE(RPC_NT_INVALID_NET_ADDR),
00827 DEFINE_STATUSCODE(RPC_NT_NO_ENDPOINT_FOUND),
00828 DEFINE_STATUSCODE(RPC_NT_INVALID_TIMEOUT),
00829 DEFINE_STATUSCODE(RPC_NT_OBJECT_NOT_FOUND),
00830 DEFINE_STATUSCODE(RPC_NT_ALREADY_REGISTERED),
00831 DEFINE_STATUSCODE(RPC_NT_TYPE_ALREADY_REGISTERED),
00832 DEFINE_STATUSCODE(RPC_NT_ALREADY_LISTENING),
00833 DEFINE_STATUSCODE(RPC_NT_NO_PROTSEQS_REGISTERED),
00834 DEFINE_STATUSCODE(RPC_NT_NOT_LISTENING),
00835 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_MGR_TYPE),
00836 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_IF),
00837 DEFINE_STATUSCODE(RPC_NT_NO_BINDINGS),
00838 DEFINE_STATUSCODE(RPC_NT_NO_PROTSEQS),
00839 DEFINE_STATUSCODE(RPC_NT_CANT_CREATE_ENDPOINT),
00840 DEFINE_STATUSCODE(RPC_NT_OUT_OF_RESOURCES),
00841 DEFINE_STATUSCODE(RPC_NT_SERVER_UNAVAILABLE),
00842 DEFINE_STATUSCODE(RPC_NT_SERVER_TOO_BUSY),
00843 DEFINE_STATUSCODE(RPC_NT_INVALID_NETWORK_OPTIONS),
00844 DEFINE_STATUSCODE(RPC_NT_NO_CALL_ACTIVE),
00845 DEFINE_STATUSCODE(RPC_NT_CALL_FAILED),
00846 DEFINE_STATUSCODE(RPC_NT_CALL_FAILED_DNE),
00847 DEFINE_STATUSCODE(RPC_NT_PROTOCOL_ERROR),
00848 DEFINE_STATUSCODE(RPC_NT_UNSUPPORTED_TRANS_SYN),
00849 DEFINE_STATUSCODE(RPC_NT_UNSUPPORTED_TYPE),
00850 DEFINE_STATUSCODE(RPC_NT_INVALID_TAG),
00851 DEFINE_STATUSCODE(RPC_NT_INVALID_BOUND),
00852 DEFINE_STATUSCODE(RPC_NT_NO_ENTRY_NAME),
00853 DEFINE_STATUSCODE(RPC_NT_INVALID_NAME_SYNTAX),
00854 DEFINE_STATUSCODE(RPC_NT_UNSUPPORTED_NAME_SYNTAX),
00855 DEFINE_STATUSCODE(RPC_NT_UUID_NO_ADDRESS),
00856 DEFINE_STATUSCODE(RPC_NT_DUPLICATE_ENDPOINT),
00857 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_AUTHN_TYPE),
00858 DEFINE_STATUSCODE(RPC_NT_MAX_CALLS_TOO_SMALL),
00859 DEFINE_STATUSCODE(RPC_NT_STRING_TOO_LONG),
00860 DEFINE_STATUSCODE(RPC_NT_PROTSEQ_NOT_FOUND),
00861 DEFINE_STATUSCODE(RPC_NT_PROCNUM_OUT_OF_RANGE),
00862 DEFINE_STATUSCODE(RPC_NT_BINDING_HAS_NO_AUTH),
00863 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_AUTHN_SERVICE),
00864 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_AUTHN_LEVEL),
00865 DEFINE_STATUSCODE(RPC_NT_INVALID_AUTH_IDENTITY),
00866 DEFINE_STATUSCODE(RPC_NT_UNKNOWN_AUTHZ_SERVICE),
00867 DEFINE_STATUSCODE(EPT_NT_INVALID_ENTRY),
00868 DEFINE_STATUSCODE(EPT_NT_CANT_PERFORM_OP),
00869 DEFINE_STATUSCODE(EPT_NT_NOT_REGISTERED),
00870 DEFINE_STATUSCODE(RPC_NT_NOTHING_TO_EXPORT),
00871 DEFINE_STATUSCODE(RPC_NT_INCOMPLETE_NAME),
00872 DEFINE_STATUSCODE(RPC_NT_INVALID_VERS_OPTION),
00873 DEFINE_STATUSCODE(RPC_NT_NO_MORE_MEMBERS),
00874 DEFINE_STATUSCODE(RPC_NT_NOT_ALL_OBJS_UNEXPORTED),
00875 DEFINE_STATUSCODE(RPC_NT_INTERFACE_NOT_FOUND),
00876 DEFINE_STATUSCODE(RPC_NT_ENTRY_ALREADY_EXISTS),
00877 DEFINE_STATUSCODE(RPC_NT_ENTRY_NOT_FOUND),
00878 DEFINE_STATUSCODE(RPC_NT_NAME_SERVICE_UNAVAILABLE),
00879 DEFINE_STATUSCODE(RPC_NT_INVALID_NAF_ID),
00880 DEFINE_STATUSCODE(RPC_NT_CANNOT_SUPPORT),
00881 DEFINE_STATUSCODE(RPC_NT_NO_CONTEXT_AVAILABLE),
00882 DEFINE_STATUSCODE(RPC_NT_INTERNAL_ERROR),
00883 DEFINE_STATUSCODE(RPC_NT_ZERO_DIVIDE),
00884 DEFINE_STATUSCODE(RPC_NT_ADDRESS_ERROR),
00885 DEFINE_STATUSCODE(RPC_NT_FP_DIV_ZERO),
00886 DEFINE_STATUSCODE(RPC_NT_FP_UNDERFLOW),
00887 DEFINE_STATUSCODE(RPC_NT_FP_OVERFLOW),
00888 DEFINE_STATUSCODE(RPC_NT_NO_MORE_ENTRIES),
00889 DEFINE_STATUSCODE(RPC_NT_SS_CHAR_TRANS_OPEN_FAIL),
00890 DEFINE_STATUSCODE(RPC_NT_SS_CHAR_TRANS_SHORT_FILE),
00891 DEFINE_STATUSCODE(RPC_NT_SS_IN_NULL_CONTEXT),
00892 DEFINE_STATUSCODE(RPC_NT_SS_CONTEXT_MISMATCH),
00893 DEFINE_STATUSCODE(RPC_NT_SS_CONTEXT_DAMAGED),
00894 DEFINE_STATUSCODE(RPC_NT_SS_HANDLES_MISMATCH),
00895 DEFINE_STATUSCODE(RPC_NT_SS_CANNOT_GET_CALL_HANDLE),
00896 DEFINE_STATUSCODE(RPC_NT_NULL_REF_POINTER),
00897 DEFINE_STATUSCODE(RPC_NT_ENUM_VALUE_OUT_OF_RANGE),
00898 DEFINE_STATUSCODE(RPC_NT_BYTE_COUNT_TOO_SMALL),
00899 DEFINE_STATUSCODE(RPC_NT_BAD_STUB_DATA),
00900 DEFINE_STATUSCODE(RPC_NT_CALL_IN_PROGRESS),
00901 DEFINE_STATUSCODE(RPC_NT_NO_MORE_BINDINGS),
00902 DEFINE_STATUSCODE(RPC_NT_GROUP_MEMBER_NOT_FOUND),
00903 DEFINE_STATUSCODE(EPT_NT_CANT_CREATE),
00904 DEFINE_STATUSCODE(RPC_NT_INVALID_OBJECT),
00905 DEFINE_STATUSCODE(RPC_NT_NO_INTERFACES),
00906 DEFINE_STATUSCODE(RPC_NT_CALL_CANCELLED),
00907 DEFINE_STATUSCODE(RPC_NT_BINDING_INCOMPLETE),
00908 DEFINE_STATUSCODE(RPC_NT_COMM_FAILURE),
00909 DEFINE_STATUSCODE(RPC_NT_UNSUPPORTED_AUTHN_LEVEL),
00910 DEFINE_STATUSCODE(RPC_NT_NO_PRINC_NAME),
00911 DEFINE_STATUSCODE(RPC_NT_NOT_RPC_ERROR),
00912 DEFINE_STATUSCODE(RPC_NT_UUID_LOCAL_ONLY),
00913 DEFINE_STATUSCODE(RPC_NT_SEC_PKG_ERROR),
00914 DEFINE_STATUSCODE(RPC_NT_NOT_CANCELLED),
00915 DEFINE_STATUSCODE(RPC_NT_INVALID_ES_ACTION),
00916 DEFINE_STATUSCODE(RPC_NT_WRONG_ES_VERSION),
00917 DEFINE_STATUSCODE(RPC_NT_WRONG_STUB_VERSION),
00918 DEFINE_STATUSCODE(RPC_NT_INVALID_PIPE_OBJECT),
00919 DEFINE_STATUSCODE(RPC_NT_INVALID_PIPE_OPERATION),
00920 DEFINE_STATUSCODE(RPC_NT_WRONG_PIPE_VERSION),
00921 DEFINE_STATUSCODE(RPC_NT_PIPE_CLOSED),
00922 DEFINE_STATUSCODE(RPC_NT_PIPE_DISCIPLINE_ERROR),
00923 DEFINE_STATUSCODE(RPC_NT_PIPE_EMPTY),
00924 DEFINE_STATUSCODE(RPC_NT_INVALID_ASYNC_HANDLE),
00925 DEFINE_STATUSCODE(RPC_NT_INVALID_ASYNC_CALL),
00926 DEFINE_STATUSCODE(RPC_NT_SEND_INCOMPLETE),
00927 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_OPCODE),
00928 DEFINE_STATUSCODE(STATUS_ACPI_STACK_OVERFLOW),
00929 DEFINE_STATUSCODE(STATUS_ACPI_ASSERT_FAILED),
00930 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_INDEX),
00931 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_ARGUMENT),
00932 DEFINE_STATUSCODE(STATUS_ACPI_FATAL),
00933 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_SUPERNAME),
00934 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_ARGTYPE),
00935 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_OBJTYPE),
00936 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_TARGETTYPE),
00937 DEFINE_STATUSCODE(STATUS_ACPI_INCORRECT_ARGUMENT_COUNT),
00938 DEFINE_STATUSCODE(STATUS_ACPI_ADDRESS_NOT_MAPPED),
00939 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_EVENTTYPE),
00940 DEFINE_STATUSCODE(STATUS_ACPI_HANDLER_COLLISION),
00941 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_DATA),
00942 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_REGION),
00943 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_ACCESS_SIZE),
00944 DEFINE_STATUSCODE(STATUS_ACPI_ACQUIRE_GLOBAL_LOCK),
00945 DEFINE_STATUSCODE(STATUS_ACPI_ALREADY_INITIALIZED),
00946 DEFINE_STATUSCODE(STATUS_ACPI_NOT_INITIALIZED),
00947 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_MUTEX_LEVEL),
00948 DEFINE_STATUSCODE(STATUS_ACPI_MUTEX_NOT_OWNED),
00949 DEFINE_STATUSCODE(STATUS_ACPI_MUTEX_NOT_OWNER),
00950 DEFINE_STATUSCODE(STATUS_ACPI_RS_ACCESS),
00951 DEFINE_STATUSCODE(STATUS_ACPI_INVALID_TABLE),
00952 DEFINE_STATUSCODE(STATUS_ACPI_REG_HANDLER_FAILED),
00953 DEFINE_STATUSCODE(STATUS_ACPI_POWER_REQUEST_FAILED),
00954 DEFINE_STATUSCODE(STATUS_CTX_WINSTATION_NAME_INVALID),
00955 DEFINE_STATUSCODE(STATUS_CTX_INVALID_PD),
00956 DEFINE_STATUSCODE(STATUS_CTX_PD_NOT_FOUND),
00957 DEFINE_STATUSCODE(STATUS_CTX_CDM_CONNECT),
00958 DEFINE_STATUSCODE(STATUS_CTX_CDM_DISCONNECT),
00959 DEFINE_STATUSCODE(STATUS_CTX_CLOSE_PENDING),
00960 DEFINE_STATUSCODE(STATUS_CTX_NO_OUTBUF),
00961 DEFINE_STATUSCODE(STATUS_CTX_MODEM_INF_NOT_FOUND),
00962 DEFINE_STATUSCODE(STATUS_CTX_INVALID_MODEMNAME),
00963 DEFINE_STATUSCODE(STATUS_CTX_RESPONSE_ERROR),
00964 DEFINE_STATUSCODE(STATUS_CTX_MODEM_RESPONSE_TIMEOUT),
00965 DEFINE_STATUSCODE(STATUS_CTX_MODEM_RESPONSE_NO_CARRIER),
00966 DEFINE_STATUSCODE(STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE),
00967 DEFINE_STATUSCODE(STATUS_CTX_MODEM_RESPONSE_BUSY),
00968 DEFINE_STATUSCODE(STATUS_CTX_MODEM_RESPONSE_VOICE),
00969 DEFINE_STATUSCODE(STATUS_CTX_TD_ERROR),
00970 DEFINE_STATUSCODE(STATUS_CTX_LICENSE_CLIENT_INVALID),
00971 DEFINE_STATUSCODE(STATUS_CTX_LICENSE_NOT_AVAILABLE),
00972 DEFINE_STATUSCODE(STATUS_CTX_LICENSE_EXPIRED),
00973 DEFINE_STATUSCODE(STATUS_CTX_WINSTATION_NOT_FOUND),
00974 DEFINE_STATUSCODE(STATUS_CTX_WINSTATION_NAME_COLLISION),
00975 DEFINE_STATUSCODE(STATUS_CTX_WINSTATION_BUSY),
00976 DEFINE_STATUSCODE(STATUS_CTX_BAD_VIDEO_MODE),
00977 DEFINE_STATUSCODE(STATUS_CTX_GRAPHICS_INVALID),
00978 DEFINE_STATUSCODE(STATUS_CTX_NOT_CONSOLE),
00979 DEFINE_STATUSCODE(STATUS_CTX_CLIENT_QUERY_TIMEOUT),
00980 DEFINE_STATUSCODE(STATUS_CTX_CONSOLE_DISCONNECT),
00981 DEFINE_STATUSCODE(STATUS_CTX_CONSOLE_CONNECT),
00982 DEFINE_STATUSCODE(STATUS_CTX_SHADOW_DENIED),
00983 DEFINE_STATUSCODE(STATUS_CTX_WINSTATION_ACCESS_DENIED),
00984 DEFINE_STATUSCODE(STATUS_CTX_INVALID_WD),
00985 DEFINE_STATUSCODE(STATUS_CTX_WD_NOT_FOUND),
00986 DEFINE_STATUSCODE(STATUS_CTX_SHADOW_INVALID),
00987 DEFINE_STATUSCODE(STATUS_CTX_SHADOW_DISABLED),
00988 DEFINE_STATUSCODE(STATUS_RDP_PROTOCOL_ERROR),
00989 DEFINE_STATUSCODE(STATUS_CTX_CLIENT_LICENSE_NOT_SET),
00990 DEFINE_STATUSCODE(STATUS_CTX_CLIENT_LICENSE_IN_USE),
00991 DEFINE_STATUSCODE(STATUS_PNP_BAD_MPS_TABLE),
00992 DEFINE_STATUSCODE(STATUS_PNP_TRANSLATION_FAILED),
00993 DEFINE_STATUSCODE(STATUS_PNP_IRQ_TRANSLATION_FAILED),
00994
00995 _LASTENTRY
00996 };
00997
00998
01011 const UCHAR *
01012 DebugNtStatus(NTSTATUS Value)
01013 {
01014 int i = 0;
01015
01016 while (text[i].Value != _MARKLASTENTRY)
01017 {
01018 if (text[i].Value == Value)
01019 {
01020 return text[i].Name;
01021 }
01022 ++i;
01023 }
01024
01025 return "*UNKNOWN*";
01026 }
01027
01028 #if DBG
01029
01030 #define USE_SPINLOCK 1
01031
01032
01033
01034 static volatile PCHAR DbgMemoryBuffer = NULL;
01035 static volatile ULONG DbgNextWriteMemoryBuffer = 0;
01036
01037 #ifdef USE_SPINLOCK
01038
01039 static KSPIN_LOCK DbgMemoryBufferSpinLock;
01040 static KIRQL DbgMemoryBufferSpinLockIrql;
01041
01042 #else // #ifdef USE_SPINLOCK
01043
01044 static LONG DbgMemoryBufferSpinLock = 0;
01045 static LONG DbgMemoryBufferUsageCounter = 0;
01046
01047 #ifdef USE_IRQL_ELEVATION
01048 static KIRQL DbgMemoryBufferIrql;
01049 #endif
01050
01051 #endif // #ifdef USE_SPINLOCK
01052
01053 #define DBG_SIZE_MEMORY_BUFFER 0x20000u
01054
01070 static VOID
01071 DbgBufferSynchronizeStart(VOID)
01072 {
01073 LONG tmp;
01074 KIRQL irql;
01075
01076
01077
01078 #ifdef USE_SPINLOCK
01079
01080 KeAcquireSpinLock(&DbgMemoryBufferSpinLock, &irql);
01081 DbgMemoryBufferSpinLockIrql = irql;
01082
01083 #else // #ifdef USE_SPINLOCK
01084
01085 #ifdef USE_IRQL_ELEVATION
01086
01087 if (DbgMemoryBufferIrql != PASSIVE_LEVEL)
01088 {
01089 REPORT_BUG(0x133, DbgMemoryBufferUsageCounter,
01090 DbgMemoryBufferSpinLock, DbgMemoryBufferIrql, 0,
01091 "Not IRQL == PASSIVE_LEVEL");
01092 }
01093
01094 KeRaiseIrql(DISPATCH_LEVEL, &DbgMemoryBufferIrql);
01095
01096 #endif // #ifdef USE_IRQL_ELEVATION
01097
01098 while (InterlockedExchange(&DbgMemoryBufferSpinLock, 1) == 0)
01099 ;
01100
01101 tmp = InterlockedIncrement(&DbgMemoryBufferUsageCounter);
01102 if (tmp != 1)
01103 {
01104 REPORT_BUG(0x130, tmp, DbgMemoryBufferSpinLock, 0, 0,
01105 "Usage counter bigger than 1 after incrementing!");
01106 }
01107
01108 #endif // #ifdef USE_SPINLOCK
01109 }
01110
01118 static VOID
01119 DbgBufferSynchronizeStop(VOID)
01120 {
01121 LONG tmp;
01122
01123 #ifdef USE_SPINLOCK
01124
01125 KeReleaseSpinLock(&DbgMemoryBufferSpinLock, DbgMemoryBufferSpinLockIrql);
01126
01127 #else // #ifdef USE_SPINLOCK
01128
01129 tmp = InterlockedDecrement(&DbgMemoryBufferUsageCounter);
01130 if (tmp != 0)
01131 {
01132 REPORT_BUG(0x131, tmp, DbgMemoryBufferSpinLock, 0, 0,
01133 "Usage counter not null after decrementing!");
01134 }
01135
01136 tmp = InterlockedExchange(&DbgMemoryBufferSpinLock, 0);
01137 if (tmp != 1)
01138 {
01139 REPORT_BUG(0x132, DbgMemoryBufferUsageCounter, tmp, 0, 0,
01140 "(own) Spinlock not 1 before releasing.");
01141 }
01142
01143 #ifdef USE_IRQL_ELEVATION
01144
01145 KeLowerIrql(DbgMemoryBufferIrql);
01146 DbgMemoryBufferIrql = PASSIVE_LEVEL;
01147
01148 #endif // #ifdef USE_IRQL_ELEVATION
01149
01150 #endif // #ifdef USE_SPINLOCK
01151 }
01152
01153 VOID
01154 DbgInit(VOID)
01155 {
01156 #ifdef USE_SPINLOCK
01157
01158 KeInitializeSpinLock(&DbgMemoryBufferSpinLock);
01159
01160 #endif // #ifdef USE_SPINLOCK
01161 }
01162
01168 VOID
01169 DbgAllocateMemoryBuffer(VOID)
01170 {
01171 DbgBufferSynchronizeStart();
01172
01173 DbgMemoryBuffer = ExAllocatePoolWithTag(NonPagedPool,
01174 DBG_SIZE_MEMORY_BUFFER + 1, MTAG_DBGBUFFER);
01175
01176 if (DbgMemoryBuffer)
01177 {
01178 RtlZeroMemory(DbgMemoryBuffer, DBG_SIZE_MEMORY_BUFFER + 1);
01179 }
01180
01181 DbgNextWriteMemoryBuffer = 0;
01182
01183 DbgBufferSynchronizeStop();
01184 }
01185
01190 VOID
01191 DbgFreeMemoryBuffer(VOID)
01192 {
01193 DbgBufferSynchronizeStart();
01194
01195 if (DbgMemoryBuffer)
01196 {
01197 ExFreePool(DbgMemoryBuffer);
01198 DbgMemoryBuffer = NULL;
01199 }
01200
01201 DbgBufferSynchronizeStop();
01202 }
01203
01217 VOID
01218 DbgOutputMemoryBuffer(const char *String)
01219 {
01220 DbgBufferSynchronizeStart();
01221
01222 if (DbgMemoryBuffer)
01223 {
01224 PCHAR localMemoryBuffer;
01225 ULONG localNextWriteMemoryBuffer;
01226 ULONG strLength;
01227
01228 localMemoryBuffer = DbgMemoryBuffer;
01229 localNextWriteMemoryBuffer = DbgNextWriteMemoryBuffer;
01230
01231 if (DbgNextWriteMemoryBuffer > DBG_SIZE_MEMORY_BUFFER)
01232 {
01233 REPORT_BUG(0x123, DbgNextWriteMemoryBuffer, DBG_SIZE_MEMORY_BUFFER, -1, 0,
01234 "DbgNextWriteMemoryBuffer already out of buffer!");
01235 }
01236
01237 strLength = strlen(String) + 1;
01238
01239 if (strLength >= 200)
01240 {
01241 REPORT_BUG(0x123, DbgNextWriteMemoryBuffer, DBG_SIZE_MEMORY_BUFFER,
01242 strLength, 0, "string too long");
01243 }
01244
01245
01246
01247 if ((localMemoryBuffer != DbgMemoryBuffer)
01248 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01249 {
01250 REPORT_BUG(0x140, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01251 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01252 "local copies do not match the global ones (1)");
01253 }
01254
01255
01256
01257 if (DbgNextWriteMemoryBuffer + strLength > DBG_SIZE_MEMORY_BUFFER)
01258 {
01259 if (DBG_SIZE_MEMORY_BUFFER - DbgNextWriteMemoryBuffer >= strLength)
01260 {
01261 REPORT_BUG(0x124, DbgNextWriteMemoryBuffer, DBG_SIZE_MEMORY_BUFFER,
01262 strLength, 0, "");
01263 }
01264
01265
01266
01267 if ((localMemoryBuffer != DbgMemoryBuffer)
01268 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01269 {
01270 REPORT_BUG(0x141, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01271 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01272 "local copies do not match the global ones (2)");
01273 }
01274
01275 RtlZeroMemory(&DbgMemoryBuffer[DbgNextWriteMemoryBuffer],
01276 DBG_SIZE_MEMORY_BUFFER - DbgNextWriteMemoryBuffer);
01277
01278
01279
01280 if ((localMemoryBuffer != DbgMemoryBuffer)
01281 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01282 {
01283 REPORT_BUG(0x142, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01284 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01285 "local copies do not match the global ones (3)");
01286 }
01287
01288 DbgNextWriteMemoryBuffer = 0;
01289 localNextWriteMemoryBuffer = 0;
01290 }
01291
01292
01293
01294 if ((localMemoryBuffer != DbgMemoryBuffer)
01295 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01296 {
01297 REPORT_BUG(0x143, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01298 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01299 "local copies do not match the global ones (4)");
01300 }
01301
01302 if (DbgNextWriteMemoryBuffer > DBG_SIZE_MEMORY_BUFFER)
01303 {
01304 REPORT_BUG(0x125, DbgNextWriteMemoryBuffer, DBG_SIZE_MEMORY_BUFFER,
01305 strLength, 0,
01306 "String does not fit in the buffer (but should have fitted!)");
01307 }
01308
01309
01310
01311 if ((localMemoryBuffer != DbgMemoryBuffer)
01312 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01313 {
01314 REPORT_BUG(0x144, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01315 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01316 "local copies do not match the global ones (5)");
01317 }
01318
01319 if (DbgNextWriteMemoryBuffer > 0)
01320 {
01321 DbgMemoryBuffer[DbgNextWriteMemoryBuffer-1] = 13;
01322 }
01323
01324
01325
01326 if ((localMemoryBuffer != DbgMemoryBuffer)
01327 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01328 {
01329 REPORT_BUG(0x145, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01330 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01331 "local copies do not match the global ones (6)");
01332 }
01333
01334 RtlCopyMemory(&DbgMemoryBuffer[DbgNextWriteMemoryBuffer], String, strLength);
01335 DbgNextWriteMemoryBuffer += strLength;
01336 localNextWriteMemoryBuffer += strLength;
01337
01338
01339
01340 if ((localMemoryBuffer != DbgMemoryBuffer)
01341 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01342 {
01343 REPORT_BUG(0x146, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01344 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01345 "local copies do not match the global ones (7)");
01346 }
01347
01348 if (DbgNextWriteMemoryBuffer > DBG_SIZE_MEMORY_BUFFER)
01349 {
01350 REPORT_BUG(0x126, DbgNextWriteMemoryBuffer, DBG_SIZE_MEMORY_BUFFER,
01351 strLength, 0,
01352 "DbgNextWriteMemoryBuffer out of buffer after write!");
01353 }
01354
01355
01356
01357 if ((localMemoryBuffer != DbgMemoryBuffer)
01358 || (localNextWriteMemoryBuffer != DbgNextWriteMemoryBuffer))
01359 {
01360 REPORT_BUG(0x147, (ULONG_PTR) localMemoryBuffer, (ULONG_PTR) DbgMemoryBuffer,
01361 localNextWriteMemoryBuffer, DbgNextWriteMemoryBuffer,
01362 "local copies do not match the global ones (8)");
01363 }
01364 }
01365
01366 DbgBufferSynchronizeStop();
01367 }
01368
01392 NTSTATUS
01393 cbm_dbg_readbuffer(IN PDEVICE_EXTENSION Pdx, OUT PCHAR ReturnBuffer,
01394 IN OUT PULONG ReturnLength)
01395 {
01396 FUNC_ENTER();
01397
01398 DbgBufferSynchronizeStart();
01399
01400 if (DbgMemoryBuffer)
01401 {
01402 PCHAR writePosition;
01403 ULONG stillToWrite;
01404 ULONG writtenBytes;
01405
01406 writePosition = ReturnBuffer;
01407 stillToWrite = *ReturnLength;
01408 writtenBytes = 0;
01409
01410
01411 if (stillToWrite > DbgNextWriteMemoryBuffer)
01412 {
01413 ULONG lengthBeforeWrapAround;
01414
01416
01417
01418
01419
01420 lengthBeforeWrapAround =
01421 strlen(&DbgMemoryBuffer[DbgNextWriteMemoryBuffer+1]) + 1;
01422
01423 if (lengthBeforeWrapAround > 1)
01424 {
01425 ULONG lengthToCopy;
01426
01427 lengthToCopy = stillToWrite - DbgNextWriteMemoryBuffer + 1;
01428
01429 lengthToCopy = min(lengthToCopy, lengthBeforeWrapAround);
01430
01431 RtlCopyMemory(writePosition,
01432 &DbgMemoryBuffer[DbgNextWriteMemoryBuffer
01433 + lengthBeforeWrapAround
01434 - lengthToCopy],
01435 lengthToCopy);
01436
01437 writePosition += lengthToCopy;
01438 writtenBytes += lengthToCopy;
01439 stillToWrite -= lengthToCopy;
01440
01441 if (stillToWrite > 0)
01442 {
01443 *writePosition++ = 13;
01444 ++writtenBytes;
01445 --stillToWrite;
01446 }
01447 }
01448 }
01449
01450 stillToWrite = min(stillToWrite, DbgNextWriteMemoryBuffer);
01451
01452 RtlCopyMemory(writePosition,
01453 &DbgMemoryBuffer[DbgNextWriteMemoryBuffer - stillToWrite],
01454 stillToWrite);
01455
01456 writtenBytes += stillToWrite;
01457
01458
01459 *ReturnLength = writtenBytes;
01460 }
01461
01462 DbgBufferSynchronizeStop();
01463
01464 FUNC_LEAVE_NTSTATUS_CONST(STATUS_SUCCESS);
01465 }
01466
01467 #endif