1 /* 2 * COPYRIGHT: See COPYRIGHT.TXT 3 * PROJECT: Ext2 File System Driver for WinNT/2K/XP 4 * FILE: Debug.c 5 * PROGRAMMER: Matt Wu <mattwu@163.com> 6 * HOMEPAGE: http://www.ext2fsd.com 7 * UPDATE HISTORY: 8 */ 9 10 /* INCLUDES **************************************************************/ 11 12 #include "stdarg.h" 13 #include "ext2fs.h" 14 15 /* GLOBALS ***************************************************************/ 16 17 #if EXT2_DEBUG 18 19 #define SYSTEM_PROCESS_NAME "System" 20 21 extern PEXT2_GLOBAL Ext2Global; 22 23 ULONG DebugFilter = DL_DEFAULT; 24 25 ULONG ProcessNameOffset = 0; 26 27 /* DEFINITIONS ***********************************************************/ 28 29 30 /* Static Definitions ****************************************************/ 31 32 static PUCHAR IrpMjStrings[] = { 33 "IRP_MJ_CREATE", 34 "IRP_MJ_CREATE_NAMED_PIPE", 35 "IRP_MJ_CLOSE", 36 "IRP_MJ_READ", 37 "IRP_MJ_WRITE", 38 "IRP_MJ_QUERY_INFORMATION", 39 "IRP_MJ_SET_INFORMATION", 40 "IRP_MJ_QUERY_EA", 41 "IRP_MJ_SET_EA", 42 "IRP_MJ_FLUSH_BUFFERS", 43 "IRP_MJ_QUERY_VOLUME_INFORMATION", 44 "IRP_MJ_SET_VOLUME_INFORMATION", 45 "IRP_MJ_DIRECTORY_CONTROL", 46 "IRP_MJ_FILE_SYSTEM_CONTROL", 47 "IRP_MJ_DEVICE_CONTROL", 48 "IRP_MJ_INTERNAL_DEVICE_CONTROL", 49 "IRP_MJ_SHUTDOWN", 50 "IRP_MJ_LOCK_CONTROL", 51 "IRP_MJ_CLEANUP", 52 "IRP_MJ_CREATE_MAILSLOT", 53 "IRP_MJ_QUERY_SECURITY", 54 "IRP_MJ_SET_SECURITY", 55 "IRP_MJ_POWER", 56 "IRP_MJ_SYSTEM_CONTROL", 57 "IRP_MJ_DEVICE_CHANGE", 58 "IRP_MJ_QUERY_QUOTA", 59 "IRP_MJ_SET_QUOTA", 60 "IRP_MJ_PNP" 61 }; 62 63 static PUCHAR FileInformationClassStrings[] = { 64 "Unknown FileInformationClass 0", 65 "FileDirectoryInformation", 66 "FileFullDirectoryInformation", 67 "FileBothDirectoryInformation", 68 "FileBasicInformation", 69 "FileStandardInformation", 70 "FileInternalInformation", 71 "FileEaInformation", 72 "FileAccessInformation", 73 "FileNameInformation", 74 "FileRenameInformation", 75 "FileLinkInformation", 76 "FileNamesInformation", 77 "FileDispositionInformation", 78 "FilePositionInformation", 79 "FileFullEaInformation", 80 "FileModeInformation", 81 "FileAlignmentInformation", 82 "FileAllInformation", 83 "FileAllocationInformation", 84 "FileEndOfFileInformation", 85 "FileAlternateNameInformation", 86 "FileStreamInformation", 87 "FilePipeInformation", 88 "FilePipeLocalInformation", 89 "FilePipeRemoteInformation", 90 "FileMailslotQueryInformation", 91 "FileMailslotSetInformation", 92 "FileCompressionInformation", 93 "FileObjectIdInformation", 94 "FileCompletionInformation", 95 "FileMoveClusterInformation", 96 "FileQuotaInformation", 97 "FileReparsePointInformation", 98 "FileNetworkOpenInformation", 99 "FileAttributeTagInformation", 100 "FileTrackingInformation" 101 }; 102 103 static PUCHAR FsInformationClassStrings[] = { 104 "Unknown FsInformationClass 0", 105 "FileFsVolumeInformation", 106 "FileFsLabelInformation", 107 "FileFsSizeInformation", 108 "FileFsDeviceInformation", 109 "FileFsAttributeInformation", 110 "FileFsControlInformation", 111 "FileFsFullSizeInformation", 112 "FileFsObjectIdInformation" 113 }; 114 115 /* 116 * Ext2Printf 117 * This function is variable-argument, level-sensitive debug print routine. 118 * If the specified debug level for the print statement is lower or equal 119 * to the current debug level, the message will be printed. 120 * 121 * Arguments: 122 * DebugMessage - Variable argument ascii c string 123 * 124 * Return Value: 125 * N/A 126 * 127 * NOTES: 128 * N/A 129 */ 130 131 #define DBG_BUF_LEN 0x100 132 VOID 133 Ext2Printf( 134 PCHAR DebugMessage, 135 ... 136 ) 137 { 138 va_list ap; 139 LARGE_INTEGER CurrentTime; 140 TIME_FIELDS TimeFields; 141 CHAR Buffer[DBG_BUF_LEN]; 142 ULONG i; 143 144 RtlZeroMemory(Buffer, DBG_BUF_LEN); 145 va_start(ap, DebugMessage); 146 147 KeQuerySystemTime( &CurrentTime); 148 RtlTimeToTimeFields(&CurrentTime, &TimeFields); 149 _vsnprintf(&Buffer[0], DBG_BUF_LEN, DebugMessage, ap); 150 151 DbgPrint(DRIVER_NAME":~%d: %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s", 152 KeGetCurrentProcessorNumber(), 153 TimeFields.Hour, TimeFields.Minute, 154 TimeFields.Second, TimeFields.Milliseconds, 155 PsGetCurrentThread(), Buffer); 156 157 va_end(ap); 158 } 159 160 VOID 161 Ext2NiPrintf( 162 PCHAR DebugMessage, 163 ... 164 ) 165 { 166 va_list ap; 167 LARGE_INTEGER CurrentTime; 168 TIME_FIELDS TimeFields; 169 CHAR Buffer[0x100]; 170 ULONG i; 171 172 va_start(ap, DebugMessage); 173 174 KeQuerySystemTime( &CurrentTime); 175 RtlTimeToTimeFields(&CurrentTime, &TimeFields); 176 _vsnprintf(&Buffer[0], 0x100, DebugMessage, ap); 177 178 DbgPrint(DRIVER_NAME":~%d: %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s", 179 KeGetCurrentProcessorNumber(), 180 TimeFields.Hour, TimeFields.Minute, 181 TimeFields.Second, TimeFields.Milliseconds, 182 PsGetCurrentThread(), Buffer); 183 184 va_end(ap); 185 186 } // Ext2NiPrintf() 187 188 ULONG 189 Ext2GetProcessNameOffset ( VOID ) 190 { 191 PEPROCESS Process; 192 ULONG i; 193 194 Process = PsGetCurrentProcess(); 195 196 for (i = 0; i < PAGE_SIZE; i++) { 197 if (!strncmp( 198 SYSTEM_PROCESS_NAME, 199 (PCHAR) Process + i, 200 strlen(SYSTEM_PROCESS_NAME) 201 )) { 202 203 return i; 204 } 205 } 206 207 DEBUG(DL_ERR, ( ": *** FsdGetProcessNameOffset failed ***\n")); 208 209 return 0; 210 } 211 212 213 VOID 214 Ext2DbgPrintCall (IN PDEVICE_OBJECT DeviceObject, 215 IN PIRP Irp ) 216 { 217 PIO_STACK_LOCATION IoStackLocation; 218 PFILE_OBJECT FileObject; 219 PWCHAR FileName; 220 PEXT2_FCB Fcb; 221 FILE_INFORMATION_CLASS FileInformationClass; 222 FS_INFORMATION_CLASS FsInformationClass; 223 224 IoStackLocation = IoGetCurrentIrpStackLocation(Irp); 225 226 FileObject = IoStackLocation->FileObject; 227 228 FileName = L"Unknown"; 229 230 if (DeviceObject == Ext2Global->DiskdevObject) { 231 232 FileName = DEVICE_NAME; 233 234 } else if (DeviceObject == Ext2Global->CdromdevObject) { 235 236 FileName = CDROM_NAME; 237 238 } else if (FileObject && FileObject->FsContext) { 239 240 Fcb = (PEXT2_FCB) FileObject->FsContext; 241 242 if (Fcb->Identifier.Type == EXT2VCB) { 243 FileName = L"\\Volume"; 244 } else if (Fcb->Identifier.Type == EXT2FCB && Fcb->Mcb->FullName.Buffer) { 245 FileName = Fcb->Mcb->FullName.Buffer; 246 } 247 } 248 249 switch (IoStackLocation->MajorFunction) { 250 251 case IRP_MJ_CREATE: 252 253 FileName = NULL; 254 255 if (DeviceObject == Ext2Global->DiskdevObject) { 256 FileName = DEVICE_NAME; 257 } else if (DeviceObject == Ext2Global->CdromdevObject) { 258 FileName = CDROM_NAME; 259 } else if (IoStackLocation->FileObject->FileName.Length == 0) { 260 FileName = L"\\Volume"; 261 } 262 263 if (FileName) { 264 DEBUGNI(DL_FUN, ("%s %s %S\n", 265 Ext2GetCurrentProcessName(), 266 IrpMjStrings[IoStackLocation->MajorFunction], 267 FileName 268 )); 269 } else if (IoStackLocation->FileObject->FileName.Buffer) { 270 DEBUGNI(DL_FUN, ("%s %s %S\n", 271 Ext2GetCurrentProcessName(), 272 IrpMjStrings[IoStackLocation->MajorFunction], 273 IoStackLocation->FileObject->FileName.Buffer 274 )); 275 } else { 276 DEBUGNI(DL_FUN, ("%s %s %s\n", 277 Ext2GetCurrentProcessName(), 278 IrpMjStrings[IoStackLocation->MajorFunction], 279 "Unknown" 280 )); 281 } 282 283 break; 284 285 case IRP_MJ_CLOSE: 286 287 DEBUGNI(DL_FUN, ("%s %s %S\n", 288 Ext2GetCurrentProcessName(), 289 IrpMjStrings[IoStackLocation->MajorFunction], 290 FileName 291 )); 292 293 break; 294 295 case IRP_MJ_READ: 296 297 if (IoStackLocation->MinorFunction & IRP_MN_COMPLETE) { 298 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_COMPLETE\n", 299 Ext2GetCurrentProcessName(), 300 IrpMjStrings[IoStackLocation->MajorFunction], 301 FileName 302 )); 303 } else { 304 DEBUGNI(DL_FUN, ("%s %s %S Offset: %I64xh Length: %xh %s%s%s%s%s%s\n", 305 Ext2GetCurrentProcessName(), 306 IrpMjStrings[IoStackLocation->MajorFunction], 307 FileName, 308 IoStackLocation->Parameters.Read.ByteOffset.QuadPart, 309 IoStackLocation->Parameters.Read.Length, 310 (IoStackLocation->MinorFunction & IRP_MN_DPC ? "IRP_MN_DPC " : " "), 311 (IoStackLocation->MinorFunction & IRP_MN_MDL ? "IRP_MN_MDL " : " "), 312 (IoStackLocation->MinorFunction & IRP_MN_COMPRESSED ? "IRP_MN_COMPRESSED " : " "), 313 (Irp->Flags & IRP_PAGING_IO ? "IRP_PAGING_IO " : " "), 314 (Irp->Flags & IRP_NOCACHE ? "IRP_NOCACHE " : " "), 315 (FileObject->Flags & FO_SYNCHRONOUS_IO ? "FO_SYNCHRONOUS_IO " : " ") 316 )); 317 } 318 319 break; 320 321 case IRP_MJ_WRITE: 322 323 if (IoStackLocation->MinorFunction & IRP_MN_COMPLETE) { 324 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_COMPLETE\n", 325 Ext2GetCurrentProcessName(), 326 IrpMjStrings[IoStackLocation->MajorFunction], 327 FileName 328 )); 329 } else { 330 DEBUGNI(DL_FUN, ("%s %s %S Offset: %I64xh Length: %xh %s%s%s%s%s%s\n", 331 Ext2GetCurrentProcessName(), 332 IrpMjStrings[IoStackLocation->MajorFunction], 333 FileName, 334 IoStackLocation->Parameters.Read.ByteOffset.QuadPart, 335 IoStackLocation->Parameters.Read.Length, 336 (IoStackLocation->MinorFunction & IRP_MN_DPC ? "IRP_MN_DPC " : " "), 337 (IoStackLocation->MinorFunction & IRP_MN_MDL ? "IRP_MN_MDL " : " "), 338 (IoStackLocation->MinorFunction & IRP_MN_COMPRESSED ? "IRP_MN_COMPRESSED " : " "), 339 (Irp->Flags & IRP_PAGING_IO ? "IRP_PAGING_IO " : " "), 340 (Irp->Flags & IRP_NOCACHE ? "IRP_NOCACHE " : " "), 341 (FileObject->Flags & FO_SYNCHRONOUS_IO ? "FO_SYNCHRONOUS_IO " : " ") 342 )); 343 } 344 345 break; 346 347 case IRP_MJ_QUERY_INFORMATION: 348 349 FileInformationClass = 350 IoStackLocation->Parameters.QueryFile.FileInformationClass; 351 352 if (FileInformationClass <= FileMaximumInformation) { 353 DEBUGNI(DL_FUN, ("%s %s %S %s\n", 354 Ext2GetCurrentProcessName(), 355 IrpMjStrings[IoStackLocation->MajorFunction], 356 FileName, 357 FileInformationClassStrings[FileInformationClass] 358 )); 359 } else { 360 DEBUGNI(DL_FUN, ("%s %s %S Unknown FileInformationClass %u\n", 361 Ext2GetCurrentProcessName(), 362 IrpMjStrings[IoStackLocation->MajorFunction], 363 FileName, 364 FileInformationClass 365 )); 366 } 367 368 break; 369 370 case IRP_MJ_SET_INFORMATION: 371 372 FileInformationClass = 373 IoStackLocation->Parameters.SetFile.FileInformationClass; 374 375 if (FileInformationClass <= FileMaximumInformation) { 376 DEBUGNI(DL_FUN, ("%s %s %S %s\n", 377 Ext2GetCurrentProcessName(), 378 IrpMjStrings[IoStackLocation->MajorFunction], 379 FileName, 380 FileInformationClassStrings[FileInformationClass] 381 )); 382 } else { 383 DEBUGNI(DL_FUN, ("%s %s %S Unknown FileInformationClass %u\n", 384 Ext2GetCurrentProcessName(), 385 IrpMjStrings[IoStackLocation->MajorFunction], 386 FileName, 387 FileInformationClass 388 )); 389 } 390 391 break; 392 393 case IRP_MJ_QUERY_VOLUME_INFORMATION: 394 395 FsInformationClass = 396 IoStackLocation->Parameters.QueryVolume.FsInformationClass; 397 398 if (FsInformationClass <= FileFsMaximumInformation) { 399 DEBUGNI(DL_FUN, ("%s %s %S %s\n", 400 Ext2GetCurrentProcessName(), 401 IrpMjStrings[IoStackLocation->MajorFunction], 402 FileName, 403 FsInformationClassStrings[FsInformationClass] 404 )); 405 } else { 406 DEBUGNI(DL_FUN, ("%s %s %S Unknown FsInformationClass %u\n", 407 Ext2GetCurrentProcessName(), 408 IrpMjStrings[IoStackLocation->MajorFunction], 409 FileName, 410 FsInformationClass 411 )); 412 } 413 414 break; 415 416 case IRP_MJ_DIRECTORY_CONTROL: 417 418 if (IoStackLocation->MinorFunction & IRP_MN_QUERY_DIRECTORY) { 419 420 #ifndef _GNU_NTIFS_ 421 FileInformationClass = 422 IoStackLocation->Parameters.QueryDirectory.FileInformationClass; 423 #else 424 FileInformationClass = ((PEXTENDED_IO_STACK_LOCATION) 425 IoStackLocation)->Parameters.QueryDirectory.FileInformationClass; 426 #endif 427 428 if (FileInformationClass <= FileMaximumInformation) { 429 DEBUGNI(DL_FUN, ("%s %s %S %s\n", 430 Ext2GetCurrentProcessName(), 431 IrpMjStrings[IoStackLocation->MajorFunction], 432 FileName, 433 FileInformationClassStrings[FileInformationClass] 434 )); 435 436 if ( 437 #ifndef _GNU_NTIFS_ 438 IoStackLocation->Parameters.QueryDirectory.FileName 439 #else 440 ((PEXTENDED_IO_STACK_LOCATION) 441 IoStackLocation)->Parameters.QueryDirectory.FileName 442 #endif 443 ) { 444 #ifndef _GNU_NTIFS_ 445 DEBUGNI(DL_FUN, ("%s FileName: %.*S FileIndex: %x %s%s%s\n", 446 Ext2GetCurrentProcessName(), 447 448 IoStackLocation->Parameters.QueryDirectory.FileName->Length / 2, 449 IoStackLocation->Parameters.QueryDirectory.FileName->Buffer, 450 IoStackLocation->Parameters.QueryDirectory.FileIndex, 451 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""), 452 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""), 453 ((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "") 454 )); 455 456 #else 457 DEBUGNI(DL_FUN, ("%s FileName: %.*S FileIndex: %x %s%s%s\n", 458 Ext2GetCurrentProcessName(), 459 460 ((PEXTENDED_IO_STACK_LOCATION) 461 IoStackLocation)->Parameters.QueryDirectory.FileName->Length / 2, 462 ((PEXTENDED_IO_STACK_LOCATION) 463 IoStackLocation)->Parameters.QueryDirectory.FileName->Buffer, 464 ((PEXTENDED_IO_STACK_LOCATION) 465 IoStackLocation)->Parameters.QueryDirectory.FileIndex, 466 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""), 467 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""), 468 ((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "") 469 )); 470 #endif 471 } else { 472 #ifndef _GNU_NTIFS_ 473 DEBUGNI(DL_FUN, ("%s FileName: FileIndex: %#x %s%s%s\n", 474 Ext2GetCurrentProcessName(), 475 IoStackLocation->Parameters.QueryDirectory.FileIndex, 476 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""), 477 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""), 478 (IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "") 479 )); 480 #else 481 DEBUGNI(DL_FUN, ("%s FileName: FileIndex: %#x %s%s%s\n", 482 Ext2GetCurrentProcessName(), 483 ((PEXTENDED_IO_STACK_LOCATION) 484 IoStackLocation)->Parameters.QueryDirectory.FileIndex, 485 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""), 486 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""), 487 (IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "") 488 )); 489 #endif 490 } 491 } else { 492 DEBUGNI(DL_FUN, ("%s %s %S Unknown FileInformationClass %u\n", 493 Ext2GetCurrentProcessName(), 494 IrpMjStrings[IoStackLocation->MajorFunction], 495 FileName, 496 FileInformationClass 497 )); 498 } 499 } else if (IoStackLocation->MinorFunction & IRP_MN_NOTIFY_CHANGE_DIRECTORY) { 500 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_NOTIFY_CHANGE_DIRECTORY\n", 501 Ext2GetCurrentProcessName(), 502 IrpMjStrings[IoStackLocation->MajorFunction], 503 FileName 504 )); 505 } else { 506 DEBUGNI(DL_FUN, ("%s %s %S Unknown minor function %#x\n", 507 Ext2GetCurrentProcessName(), 508 IrpMjStrings[IoStackLocation->MajorFunction], 509 FileName, 510 IoStackLocation->MinorFunction 511 )); 512 } 513 514 break; 515 516 case IRP_MJ_FILE_SYSTEM_CONTROL: 517 518 if (IoStackLocation->MinorFunction == IRP_MN_USER_FS_REQUEST) { 519 #ifndef _GNU_NTIFS_ 520 DEBUGNI(DL_FUN, ( "%s %s %S IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n", 521 Ext2GetCurrentProcessName(), 522 IrpMjStrings[IoStackLocation->MajorFunction], 523 FileName, 524 IoStackLocation->Parameters.FileSystemControl.FsControlCode 525 )); 526 #else 527 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n", 528 Ext2GetCurrentProcessName(), 529 IrpMjStrings[IoStackLocation->MajorFunction], 530 FileName, 531 ((PEXTENDED_IO_STACK_LOCATION) 532 IoStackLocation)->Parameters.FileSystemControl.FsControlCode 533 )); 534 #endif 535 } else if (IoStackLocation->MinorFunction == IRP_MN_MOUNT_VOLUME) { 536 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_MOUNT_VOLUME DeviceObject: %#x\n", 537 Ext2GetCurrentProcessName(), 538 IrpMjStrings[IoStackLocation->MajorFunction], 539 FileName, 540 IoStackLocation->Parameters.MountVolume.DeviceObject 541 )); 542 } else if (IoStackLocation->MinorFunction == IRP_MN_VERIFY_VOLUME) { 543 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_VERIFY_VOLUME DeviceObject: %#x\n", 544 Ext2GetCurrentProcessName(), 545 IrpMjStrings[IoStackLocation->MajorFunction], 546 FileName, 547 IoStackLocation->Parameters.VerifyVolume.DeviceObject 548 )); 549 } else if (IoStackLocation->MinorFunction == IRP_MN_LOAD_FILE_SYSTEM) { 550 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_LOAD_FILE_SYSTEM\n", 551 Ext2GetCurrentProcessName(), 552 IrpMjStrings[IoStackLocation->MajorFunction], 553 FileName 554 )); 555 } 556 #if (_WIN32_WINNT >= 0x0500) 557 else if (IoStackLocation->MinorFunction == IRP_MN_KERNEL_CALL) { 558 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_KERNEL_CALL\n", 559 Ext2GetCurrentProcessName(), 560 IrpMjStrings[IoStackLocation->MajorFunction], 561 FileName 562 )); 563 } 564 #endif // (_WIN32_WINNT >= 0x0500) 565 else { 566 DEBUGNI(DL_FUN, ("%s %s %S Unknown minor function %#x\n", 567 Ext2GetCurrentProcessName(), 568 IrpMjStrings[IoStackLocation->MajorFunction], 569 FileName, 570 IoStackLocation->MinorFunction 571 )); 572 } 573 574 break; 575 576 case IRP_MJ_DEVICE_CONTROL: 577 578 DEBUGNI(DL_FUN, ("%s %s %S IoControlCode: %#x\n", 579 Ext2GetCurrentProcessName(), 580 IrpMjStrings[IoStackLocation->MajorFunction], 581 FileName, 582 IoStackLocation->Parameters.DeviceIoControl.IoControlCode 583 )); 584 585 break; 586 587 case IRP_MJ_LOCK_CONTROL: 588 589 if (IoStackLocation->MinorFunction & IRP_MN_LOCK) { 590 #ifndef _GNU_NTIFS_ 591 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n", 592 Ext2GetCurrentProcessName(), 593 IrpMjStrings[IoStackLocation->MajorFunction], 594 FileName, 595 IoStackLocation->Parameters.LockControl.ByteOffset.QuadPart, 596 IoStackLocation->Parameters.LockControl.Length->QuadPart, 597 IoStackLocation->Parameters.LockControl.Key, 598 (IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""), 599 (IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "") 600 )); 601 #else 602 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n", 603 Ext2GetCurrentProcessName(), 604 IrpMjStrings[IoStackLocation->MajorFunction], 605 FileName, 606 ((PEXTENDED_IO_STACK_LOCATION) 607 IoStackLocation)->Parameters.LockControl.ByteOffset.QuadPart, 608 ((PEXTENDED_IO_STACK_LOCATION) 609 IoStackLocation)->Parameters.LockControl.Length->QuadPart, 610 ((PEXTENDED_IO_STACK_LOCATION) 611 IoStackLocation)->Parameters.LockControl.Key, 612 (IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""), 613 (IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "") 614 )); 615 #endif 616 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_SINGLE) { 617 #ifndef _GNU_NTIFS_ 618 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n", 619 Ext2GetCurrentProcessName(), 620 IrpMjStrings[IoStackLocation->MajorFunction], 621 FileName, 622 IoStackLocation->Parameters.LockControl.ByteOffset.QuadPart, 623 IoStackLocation->Parameters.LockControl.Length->QuadPart, 624 IoStackLocation->Parameters.LockControl.Key 625 )); 626 #else 627 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n", 628 Ext2GetCurrentProcessName(), 629 IrpMjStrings[IoStackLocation->MajorFunction], 630 FileName, 631 ((PEXTENDED_IO_STACK_LOCATION) 632 IoStackLocation)->Parameters.LockControl.ByteOffset.QuadPart, 633 ((PEXTENDED_IO_STACK_LOCATION) 634 IoStackLocation)->Parameters.LockControl.Length->QuadPart, 635 ((PEXTENDED_IO_STACK_LOCATION) 636 IoStackLocation)->Parameters.LockControl.Key 637 )); 638 #endif 639 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_ALL) { 640 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_UNLOCK_ALL\n", 641 Ext2GetCurrentProcessName(), 642 IrpMjStrings[IoStackLocation->MajorFunction], 643 FileName 644 )); 645 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_ALL_BY_KEY) { 646 #ifndef _GNU_NTIFS_ 647 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n", 648 Ext2GetCurrentProcessName(), 649 IrpMjStrings[IoStackLocation->MajorFunction], 650 FileName, 651 IoStackLocation->Parameters.LockControl.Key 652 )); 653 #else 654 DEBUGNI(DL_FUN, ("%s %s %S IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n", 655 Ext2GetCurrentProcessName(), 656 IrpMjStrings[IoStackLocation->MajorFunction], 657 FileName, 658 ((PEXTENDED_IO_STACK_LOCATION) 659 IoStackLocation)->Parameters.LockControl.Key 660 )); 661 #endif 662 } else { 663 DEBUGNI(DL_FUN, ("%s %s %S Unknown minor function %#x\n", 664 Ext2GetCurrentProcessName(), 665 IrpMjStrings[IoStackLocation->MajorFunction], 666 FileName, 667 IoStackLocation->MinorFunction 668 )); 669 } 670 671 break; 672 673 case IRP_MJ_CLEANUP: 674 675 DEBUGNI(DL_FUN, ("%s %s %S\n", 676 Ext2GetCurrentProcessName(), 677 IrpMjStrings[IoStackLocation->MajorFunction], 678 FileName 679 )); 680 681 break; 682 683 case IRP_MJ_SHUTDOWN: 684 685 DEBUGNI(DL_FUN, ("%s %s %S\n", 686 Ext2GetCurrentProcessName(), 687 IrpMjStrings[IoStackLocation->MajorFunction], 688 FileName 689 )); 690 691 break; 692 693 #if (_WIN32_WINNT >= 0x0500) 694 case IRP_MJ_PNP: 695 696 DEBUGNI(DL_FUN, ( "%s %s %S\n", 697 Ext2GetCurrentProcessName(), 698 IrpMjStrings[IoStackLocation->MajorFunction], 699 FileName 700 )); 701 break; 702 #endif // (_WIN32_WINNT >= 0x0500) 703 704 default: 705 706 DEBUGNI(DL_FUN, ("%s %s %S\n", 707 Ext2GetCurrentProcessName(), 708 IrpMjStrings[IoStackLocation->MajorFunction], 709 FileName 710 )); 711 } 712 } 713 714 VOID 715 Ext2DbgPrintComplete (IN PIRP Irp, IN BOOLEAN bPrint) 716 { 717 PIO_STACK_LOCATION IoStackLocation; 718 719 if (!Irp) 720 return; 721 722 if (Irp->IoStatus.Status != STATUS_SUCCESS) { 723 724 IoStackLocation = IoGetCurrentIrpStackLocation(Irp); 725 726 if (bPrint) { 727 DEBUGNI(DL_FUN, ("%s %s Status: %s (%#x).\n", 728 Ext2GetCurrentProcessName(), 729 IrpMjStrings[IoStackLocation->MajorFunction], 730 Ext2NtStatusToString(Irp->IoStatus.Status), 731 Irp->IoStatus.Status 732 )); 733 } 734 } 735 } 736 737 PUCHAR 738 Ext2NtStatusToString ( IN NTSTATUS Status ) 739 { 740 switch (Status) { 741 742 case 0x00000000: 743 return "STATUS_SUCCESS"; 744 case 0x00000001: 745 return "STATUS_WAIT_1"; 746 case 0x00000002: 747 return "STATUS_WAIT_2"; 748 case 0x00000003: 749 return "STATUS_WAIT_3"; 750 case 0x0000003F: 751 return "STATUS_WAIT_63"; 752 case 0x00000080: 753 return "STATUS_ABANDONED_WAIT_0"; 754 case 0x000000BF: 755 return "STATUS_ABANDONED_WAIT_63"; 756 case 0x000000C0: 757 return "STATUS_USER_APC"; 758 case 0x00000100: 759 return "STATUS_KERNEL_APC"; 760 case 0x00000101: 761 return "STATUS_ALERTED"; 762 case 0x00000102: 763 return "STATUS_TIMEOUT"; 764 case 0x00000103: 765 return "STATUS_PENDING"; 766 case 0x00000104: 767 return "STATUS_REPARSE"; 768 case 0x00000105: 769 return "STATUS_MORE_ENTRIES"; 770 case 0x00000106: 771 return "STATUS_NOT_ALL_ASSIGNED"; 772 case 0x00000107: 773 return "STATUS_SOME_NOT_MAPPED"; 774 case 0x00000108: 775 return "STATUS_OPLOCK_BREAK_IN_PROGRESS"; 776 case 0x00000109: 777 return "STATUS_VOLUME_MOUNTED"; 778 case 0x0000010A: 779 return "STATUS_RXACT_COMMITTED"; 780 case 0x0000010B: 781 return "STATUS_NOTIFY_CLEANUP"; 782 case 0x0000010C: 783 return "STATUS_NOTIFY_ENUM_DIR"; 784 case 0x0000010D: 785 return "STATUS_NO_QUOTAS_FOR_ACCOUNT"; 786 case 0x0000010E: 787 return "STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED"; 788 case 0x00000110: 789 return "STATUS_PAGE_FAULT_TRANSITION"; 790 case 0x00000111: 791 return "STATUS_PAGE_FAULT_DEMAND_ZERO"; 792 case 0x00000112: 793 return "STATUS_PAGE_FAULT_COPY_ON_WRITE"; 794 case 0x00000113: 795 return "STATUS_PAGE_FAULT_GUARD_PAGE"; 796 case 0x00000114: 797 return "STATUS_PAGE_FAULT_PAGING_FILE"; 798 case 0x00000115: 799 return "STATUS_CACHE_PAGE_LOCKED"; 800 case 0x00000116: 801 return "STATUS_CRASH_DUMP"; 802 case 0x00000117: 803 return "STATUS_BUFFER_ALL_ZEROS"; 804 case 0x00000118: 805 return "STATUS_REPARSE_OBJECT"; 806 case 0x00000119: 807 return "STATUS_RESOURCE_REQUIREMENTS_CHANGED"; 808 case 0x00000120: 809 return "STATUS_TRANSLATION_COMPLETE"; 810 case 0x00000121: 811 return "STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY"; 812 case 0x00010001: 813 return "DBG_EXCEPTION_HANDLED"; 814 case 0x00010002: 815 return "DBG_CONTINUE"; 816 case 0x40000000: 817 return "STATUS_OBJECT_NAME_EXISTS"; 818 case 0x40000001: 819 return "STATUS_THREAD_WAS_SUSPENDED"; 820 case 0x40000002: 821 return "STATUS_WORKING_SET_LIMIT_RANGE"; 822 case 0x40000003: 823 return "STATUS_IMAGE_NOT_AT_BASE"; 824 case 0x40000004: 825 return "STATUS_RXACT_STATE_CREATED"; 826 case 0x40000005: 827 return "STATUS_SEGMENT_NOTIFICATION"; 828 case 0x40000006: 829 return "STATUS_LOCAL_USER_SESSION_KEY"; 830 case 0x40000007: 831 return "STATUS_BAD_CURRENT_DIRECTORY"; 832 case 0x40000008: 833 return "STATUS_SERIAL_MORE_WRITES"; 834 case 0x40000009: 835 return "STATUS_REGISTRY_RECOVERED"; 836 case 0x4000000A: 837 return "STATUS_FT_READ_RECOVERY_FROM_BACKUP"; 838 case 0x4000000B: 839 return "STATUS_FT_WRITE_RECOVERY"; 840 case 0x4000000C: 841 return "STATUS_SERIAL_COUNTER_TIMEOUT"; 842 case 0x4000000D: 843 return "STATUS_NULL_LM_PASSWORD"; 844 case 0x4000000E: 845 return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH"; 846 case 0x4000000F: 847 return "STATUS_RECEIVE_PARTIAL"; 848 case 0x40000010: 849 return "STATUS_RECEIVE_EXPEDITED"; 850 case 0x40000011: 851 return "STATUS_RECEIVE_PARTIAL_EXPEDITED"; 852 case 0x40000012: 853 return "STATUS_EVENT_DONE"; 854 case 0x40000013: 855 return "STATUS_EVENT_PENDING"; 856 case 0x40000014: 857 return "STATUS_CHECKING_FILE_SYSTEM"; 858 case 0x40000015: 859 return "STATUS_FATAL_APP_EXIT"; 860 case 0x40000016: 861 return "STATUS_PREDEFINED_HANDLE"; 862 case 0x40000017: 863 return "STATUS_WAS_UNLOCKED"; 864 case 0x40000018: 865 return "STATUS_SERVICE_NOTIFICATION"; 866 case 0x40000019: 867 return "STATUS_WAS_LOCKED"; 868 case 0x4000001A: 869 return "STATUS_LOG_HARD_ERROR"; 870 case 0x4000001B: 871 return "STATUS_ALREADY_WIN32"; 872 case 0x4000001C: 873 return "STATUS_WX86_UNSIMULATE"; 874 case 0x4000001D: 875 return "STATUS_WX86_CONTINUE"; 876 case 0x4000001E: 877 return "STATUS_WX86_SINGLE_STEP"; 878 case 0x4000001F: 879 return "STATUS_WX86_BREAKPOINT"; 880 case 0x40000020: 881 return "STATUS_WX86_EXCEPTION_CONTINUE"; 882 case 0x40000021: 883 return "STATUS_WX86_EXCEPTION_LASTCHANCE"; 884 case 0x40000022: 885 return "STATUS_WX86_EXCEPTION_CHAIN"; 886 case 0x40000023: 887 return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE"; 888 case 0x40000024: 889 return "STATUS_NO_YIELD_PERFORMED"; 890 case 0x40000025: 891 return "STATUS_TIMER_RESUME_IGNORED"; 892 case 0x40000026: 893 return "STATUS_ARBITRATION_UNHANDLED"; 894 case 0x40000027: 895 return "STATUS_CARDBUS_NOT_SUPPORTED"; 896 case 0x40000028: 897 return "STATUS_WX86_CREATEWX86TIB"; 898 case 0x40000029: 899 return "STATUS_MP_PROCESSOR_MISMATCH"; 900 case 0x40010001: 901 return "DBG_REPLY_LATER"; 902 case 0x40010002: 903 return "DBG_UNABLE_TO_PROVIDE_HANDLE"; 904 case 0x40010003: 905 return "DBG_TERMINATE_THREAD"; 906 case 0x40010004: 907 return "DBG_TERMINATE_PROCESS"; 908 case 0x40010005: 909 return "DBG_CONTROL_C"; 910 case 0x40010006: 911 return "DBG_PRINTEXCEPTION_C"; 912 case 0x40010007: 913 return "DBG_RIPEXCEPTION"; 914 case 0x40010008: 915 return "DBG_CONTROL_BREAK"; 916 case 0x80000001: 917 return "STATUS_GUARD_PAGE_VIOLATION"; 918 case 0x80000002: 919 return "STATUS_DATATYPE_MISALIGNMENT"; 920 case 0x80000003: 921 return "STATUS_BREAKPOINT"; 922 case 0x80000004: 923 return "STATUS_SINGLE_STEP"; 924 case 0x80000005: 925 return "STATUS_BUFFER_OVERFLOW"; 926 case 0x80000006: 927 return "STATUS_NO_MORE_FILES"; 928 case 0x80000007: 929 return "STATUS_WAKE_SYSTEM_DEBUGGER"; 930 case 0x8000000A: 931 return "STATUS_HANDLES_CLOSED"; 932 case 0x8000000B: 933 return "STATUS_NO_INHERITANCE"; 934 case 0x8000000C: 935 return "STATUS_GUID_SUBSTITUTION_MADE"; 936 case 0x8000000D: 937 return "STATUS_PARTIAL_COPY"; 938 case 0x8000000E: 939 return "STATUS_DEVICE_PAPER_EMPTY"; 940 case 0x8000000F: 941 return "STATUS_DEVICE_POWERED_OFF"; 942 case 0x80000010: 943 return "STATUS_DEVICE_OFF_LINE"; 944 case 0x80000011: 945 return "STATUS_DEVICE_BUSY"; 946 case 0x80000012: 947 return "STATUS_NO_MORE_EAS"; 948 case 0x80000013: 949 return "STATUS_INVALID_EA_NAME"; 950 case 0x80000014: 951 return "STATUS_EA_LIST_INCONSISTENT"; 952 case 0x80000015: 953 return "STATUS_INVALID_EA_FLAG"; 954 case 0x80000016: 955 return "STATUS_VERIFY_REQUIRED"; 956 case 0x80000017: 957 return "STATUS_EXTRANEOUS_INFORMATION"; 958 case 0x80000018: 959 return "STATUS_RXACT_COMMIT_NECESSARY"; 960 case 0x8000001A: 961 return "STATUS_NO_MORE_ENTRIES"; 962 case 0x8000001B: 963 return "STATUS_FILEMARK_DETECTED"; 964 case 0x8000001C: 965 return "STATUS_MEDIA_CHANGED"; 966 case 0x8000001D: 967 return "STATUS_BUS_RESET"; 968 case 0x8000001E: 969 return "STATUS_END_OF_MEDIA"; 970 case 0x8000001F: 971 return "STATUS_BEGINNING_OF_MEDIA"; 972 case 0x80000020: 973 return "STATUS_MEDIA_CHECK"; 974 case 0x80000021: 975 return "STATUS_SETMARK_DETECTED"; 976 case 0x80000022: 977 return "STATUS_NO_DATA_DETECTED"; 978 case 0x80000023: 979 return "STATUS_REDIRECTOR_HAS_OPEN_HANDLES"; 980 case 0x80000024: 981 return "STATUS_SERVER_HAS_OPEN_HANDLES"; 982 case 0x80000025: 983 return "STATUS_ALREADY_DISCONNECTED"; 984 case 0x80000026: 985 return "STATUS_LONGJUMP"; 986 case 0x80010001: 987 return "DBG_EXCEPTION_NOT_HANDLED"; 988 case 0xC0000001: 989 return "STATUS_UNSUCCESSFUL"; 990 case 0xC0000002: 991 return "STATUS_NOT_IMPLEMENTED"; 992 case 0xC0000003: 993 return "STATUS_INVALID_INFO_CLASS"; 994 case 0xC0000004: 995 return "STATUS_INFO_LENGTH_MISMATCH"; 996 case 0xC0000005: 997 return "STATUS_ACCESS_VIOLATION"; 998 case 0xC0000006: 999 return "STATUS_IN_PAGE_ERROR"; 1000 case 0xC0000007: 1001 return "STATUS_PAGEFILE_QUOTA"; 1002 case 0xC0000008: 1003 return "STATUS_INVALID_HANDLE"; 1004 case 0xC0000009: 1005 return "STATUS_BAD_INITIAL_STACK"; 1006 case 0xC000000A: 1007 return "STATUS_BAD_INITIAL_PC"; 1008 case 0xC000000B: 1009 return "STATUS_INVALID_CID"; 1010 case 0xC000000C: 1011 return "STATUS_TIMER_NOT_CANCELED"; 1012 case 0xC000000D: 1013 return "STATUS_INVALID_PARAMETER"; 1014 case 0xC000000E: 1015 return "STATUS_NO_SUCH_DEVICE"; 1016 case 0xC000000F: 1017 return "STATUS_NO_SUCH_FILE"; 1018 case 0xC0000010: 1019 return "STATUS_INVALID_DEVICE_REQUEST"; 1020 case 0xC0000011: 1021 return "STATUS_END_OF_FILE"; 1022 case 0xC0000012: 1023 return "STATUS_WRONG_VOLUME"; 1024 case 0xC0000013: 1025 return "STATUS_NO_MEDIA_IN_DEVICE"; 1026 case 0xC0000014: 1027 return "STATUS_UNRECOGNIZED_MEDIA"; 1028 case 0xC0000015: 1029 return "STATUS_NONEXISTENT_SECTOR"; 1030 case 0xC0000016: 1031 return "STATUS_MORE_PROCESSING_REQUIRED"; 1032 case 0xC0000017: 1033 return "STATUS_NO_MEMORY"; 1034 case 0xC0000018: 1035 return "STATUS_CONFLICTING_ADDRESSES"; 1036 case 0xC0000019: 1037 return "STATUS_NOT_MAPPED_VIEW"; 1038 case 0xC000001A: 1039 return "STATUS_UNABLE_TO_FREE_VM"; 1040 case 0xC000001B: 1041 return "STATUS_UNABLE_TO_DELETE_SECTION"; 1042 case 0xC000001C: 1043 return "STATUS_INVALID_SYSTEM_SERVICE"; 1044 case 0xC000001D: 1045 return "STATUS_ILLEGAL_INSTRUCTION"; 1046 case 0xC000001E: 1047 return "STATUS_INVALID_LOCK_SEQUENCE"; 1048 case 0xC000001F: 1049 return "STATUS_INVALID_VIEW_SIZE"; 1050 case 0xC0000020: 1051 return "STATUS_INVALID_FILE_FOR_SECTION"; 1052 case 0xC0000021: 1053 return "STATUS_ALREADY_COMMITTED"; 1054 case 0xC0000022: 1055 return "STATUS_ACCESS_DENIED"; 1056 case 0xC0000023: 1057 return "STATUS_BUFFER_TOO_SMALL"; 1058 case 0xC0000024: 1059 return "STATUS_OBJECT_TYPE_MISMATCH"; 1060 case 0xC0000025: 1061 return "STATUS_NONCONTINUABLE_EXCEPTION"; 1062 case 0xC0000026: 1063 return "STATUS_INVALID_DISPOSITION"; 1064 case 0xC0000027: 1065 return "STATUS_UNWIND"; 1066 case 0xC0000028: 1067 return "STATUS_BAD_STACK"; 1068 case 0xC0000029: 1069 return "STATUS_INVALID_UNWIND_TARGET"; 1070 case 0xC000002A: 1071 return "STATUS_NOT_LOCKED"; 1072 case 0xC000002B: 1073 return "STATUS_PARITY_ERROR"; 1074 case 0xC000002C: 1075 return "STATUS_UNABLE_TO_DECOMMIT_VM"; 1076 case 0xC000002D: 1077 return "STATUS_NOT_COMMITTED"; 1078 case 0xC000002E: 1079 return "STATUS_INVALID_PORT_ATTRIBUTES"; 1080 case 0xC000002F: 1081 return "STATUS_PORT_MESSAGE_TOO_LONG"; 1082 case 0xC0000030: 1083 return "STATUS_INVALID_PARAMETER_MIX"; 1084 case 0xC0000031: 1085 return "STATUS_INVALID_QUOTA_LOWER"; 1086 case 0xC0000032: 1087 return "STATUS_DISK_CORRUPT_ERROR"; 1088 case 0xC0000033: 1089 return "STATUS_OBJECT_NAME_INVALID"; 1090 case 0xC0000034: 1091 return "STATUS_OBJECT_NAME_NOT_FOUND"; 1092 case 0xC0000035: 1093 return "STATUS_OBJECT_NAME_COLLISION"; 1094 case 0xC0000037: 1095 return "STATUS_PORT_DISCONNECTED"; 1096 case 0xC0000038: 1097 return "STATUS_DEVICE_ALREADY_ATTACHED"; 1098 case 0xC0000039: 1099 return "STATUS_OBJECT_PATH_INVALID"; 1100 case 0xC000003A: 1101 return "STATUS_OBJECT_PATH_NOT_FOUND"; 1102 case 0xC000003B: 1103 return "STATUS_OBJECT_PATH_SYNTAX_BAD"; 1104 case 0xC000003C: 1105 return "STATUS_DATA_OVERRUN"; 1106 case 0xC000003D: 1107 return "STATUS_DATA_LATE_ERROR"; 1108 case 0xC000003E: 1109 return "STATUS_DATA_ERROR"; 1110 case 0xC000003F: 1111 return "STATUS_CRC_ERROR"; 1112 case 0xC0000040: 1113 return "STATUS_SECTION_TOO_BIG"; 1114 case 0xC0000041: 1115 return "STATUS_PORT_CONNECTION_REFUSED"; 1116 case 0xC0000042: 1117 return "STATUS_INVALID_PORT_HANDLE"; 1118 case 0xC0000043: 1119 return "STATUS_SHARING_VIOLATION"; 1120 case 0xC0000044: 1121 return "STATUS_QUOTA_EXCEEDED"; 1122 case 0xC0000045: 1123 return "STATUS_INVALID_PAGE_PROTECTION"; 1124 case 0xC0000046: 1125 return "STATUS_MUTANT_NOT_OWNED"; 1126 case 0xC0000047: 1127 return "STATUS_SEMAPHORE_LIMIT_EXCEEDED"; 1128 case 0xC0000048: 1129 return "STATUS_PORT_ALREADY_SET"; 1130 case 0xC0000049: 1131 return "STATUS_SECTION_NOT_IMAGE"; 1132 case 0xC000004A: 1133 return "STATUS_SUSPEND_COUNT_EXCEEDED"; 1134 case 0xC000004B: 1135 return "STATUS_THREAD_IS_TERMINATING"; 1136 case 0xC000004C: 1137 return "STATUS_BAD_WORKING_SET_LIMIT"; 1138 case 0xC000004D: 1139 return "STATUS_INCOMPATIBLE_FILE_MAP"; 1140 case 0xC000004E: 1141 return "STATUS_SECTION_PROTECTION"; 1142 case 0xC000004F: 1143 return "STATUS_EAS_NOT_SUPPORTED"; 1144 case 0xC0000050: 1145 return "STATUS_EA_TOO_LARGE"; 1146 case 0xC0000051: 1147 return "STATUS_NONEXISTENT_EA_ENTRY"; 1148 case 0xC0000052: 1149 return "STATUS_NO_EAS_ON_FILE"; 1150 case 0xC0000053: 1151 return "STATUS_EA_CORRUPT_ERROR"; 1152 case 0xC0000054: 1153 return "STATUS_FILE_LOCK_CONFLICT"; 1154 case 0xC0000055: 1155 return "STATUS_LOCK_NOT_GRANTED"; 1156 case 0xC0000056: 1157 return "STATUS_DELETE_PENDING"; 1158 case 0xC0000057: 1159 return "STATUS_CTL_FILE_NOT_SUPPORTED"; 1160 case 0xC0000058: 1161 return "STATUS_UNKNOWN_REVISION"; 1162 case 0xC0000059: 1163 return "STATUS_REVISION_MISMATCH"; 1164 case 0xC000005A: 1165 return "STATUS_INVALID_OWNER"; 1166 case 0xC000005B: 1167 return "STATUS_INVALID_PRIMARY_GROUP"; 1168 case 0xC000005C: 1169 return "STATUS_NO_IMPERSONATION_TOKEN"; 1170 case 0xC000005D: 1171 return "STATUS_CANT_DISABLE_MANDATORY"; 1172 case 0xC000005E: 1173 return "STATUS_NO_LOGON_SERVERS"; 1174 case 0xC000005F: 1175 return "STATUS_NO_SUCH_LOGON_SESSION"; 1176 case 0xC0000060: 1177 return "STATUS_NO_SUCH_PRIVILEGE"; 1178 case 0xC0000061: 1179 return "STATUS_PRIVILEGE_NOT_HELD"; 1180 case 0xC0000062: 1181 return "STATUS_INVALID_ACCOUNT_NAME"; 1182 case 0xC0000063: 1183 return "STATUS_USER_EXISTS"; 1184 case 0xC0000064: 1185 return "STATUS_NO_SUCH_USER"; 1186 case 0xC0000065: 1187 return "STATUS_GROUP_EXISTS"; 1188 case 0xC0000066: 1189 return "STATUS_NO_SUCH_GROUP"; 1190 case 0xC0000067: 1191 return "STATUS_MEMBER_IN_GROUP"; 1192 case 0xC0000068: 1193 return "STATUS_MEMBER_NOT_IN_GROUP"; 1194 case 0xC0000069: 1195 return "STATUS_LAST_ADMIN"; 1196 case 0xC000006A: 1197 return "STATUS_WRONG_PASSWORD"; 1198 case 0xC000006B: 1199 return "STATUS_ILL_FORMED_PASSWORD"; 1200 case 0xC000006C: 1201 return "STATUS_PASSWORD_RESTRICTION"; 1202 case 0xC000006D: 1203 return "STATUS_LOGON_FAILURE"; 1204 case 0xC000006E: 1205 return "STATUS_ACCOUNT_RESTRICTION"; 1206 case 0xC000006F: 1207 return "STATUS_INVALID_LOGON_HOURS"; 1208 case 0xC0000070: 1209 return "STATUS_INVALID_WORKSTATION"; 1210 case 0xC0000071: 1211 return "STATUS_PASSWORD_EXPIRED"; 1212 case 0xC0000072: 1213 return "STATUS_ACCOUNT_DISABLED"; 1214 case 0xC0000073: 1215 return "STATUS_NONE_MAPPED"; 1216 case 0xC0000074: 1217 return "STATUS_TOO_MANY_LUIDS_REQUESTED"; 1218 case 0xC0000075: 1219 return "STATUS_LUIDS_EXHAUSTED"; 1220 case 0xC0000076: 1221 return "STATUS_INVALID_SUB_AUTHORITY"; 1222 case 0xC0000077: 1223 return "STATUS_INVALID_ACL"; 1224 case 0xC0000078: 1225 return "STATUS_INVALID_SID"; 1226 case 0xC0000079: 1227 return "STATUS_INVALID_SECURITY_DESCR"; 1228 case 0xC000007A: 1229 return "STATUS_PROCEDURE_NOT_FOUND"; 1230 case 0xC000007B: 1231 return "STATUS_INVALID_IMAGE_FORMAT"; 1232 case 0xC000007C: 1233 return "STATUS_NO_TOKEN"; 1234 case 0xC000007D: 1235 return "STATUS_BAD_INHERITANCE_ACL"; 1236 case 0xC000007E: 1237 return "STATUS_RANGE_NOT_LOCKED"; 1238 case 0xC000007F: 1239 return "STATUS_DISK_FULL"; 1240 case 0xC0000080: 1241 return "STATUS_SERVER_DISABLED"; 1242 case 0xC0000081: 1243 return "STATUS_SERVER_NOT_DISABLED"; 1244 case 0xC0000082: 1245 return "STATUS_TOO_MANY_GUIDS_REQUESTED"; 1246 case 0xC0000083: 1247 return "STATUS_GUIDS_EXHAUSTED"; 1248 case 0xC0000084: 1249 return "STATUS_INVALID_ID_AUTHORITY"; 1250 case 0xC0000085: 1251 return "STATUS_AGENTS_EXHAUSTED"; 1252 case 0xC0000086: 1253 return "STATUS_INVALID_VOLUME_LABEL"; 1254 case 0xC0000087: 1255 return "STATUS_SECTION_NOT_EXTENDED"; 1256 case 0xC0000088: 1257 return "STATUS_NOT_MAPPED_DATA"; 1258 case 0xC0000089: 1259 return "STATUS_RESOURCE_DATA_NOT_FOUND"; 1260 case 0xC000008A: 1261 return "STATUS_RESOURCE_TYPE_NOT_FOUND"; 1262 case 0xC000008B: 1263 return "STATUS_RESOURCE_NAME_NOT_FOUND"; 1264 case 0xC000008C: 1265 return "STATUS_ARRAY_BOUNDS_EXCEEDED"; 1266 case 0xC000008D: 1267 return "STATUS_FLOAT_DENORMAL_OPERAND"; 1268 case 0xC000008E: 1269 return "STATUS_FLOAT_DIVIDE_BY_ZERO"; 1270 case 0xC000008F: 1271 return "STATUS_FLOAT_INEXACT_RESULT"; 1272 case 0xC0000090: 1273 return "STATUS_FLOAT_INVALID_OPERATION"; 1274 case 0xC0000091: 1275 return "STATUS_FLOAT_OVERFLOW"; 1276 case 0xC0000092: 1277 return "STATUS_FLOAT_STACK_CHECK"; 1278 case 0xC0000093: 1279 return "STATUS_FLOAT_UNDERFLOW"; 1280 case 0xC0000094: 1281 return "STATUS_INTEGER_DIVIDE_BY_ZERO"; 1282 case 0xC0000095: 1283 return "STATUS_INTEGER_OVERFLOW"; 1284 case 0xC0000096: 1285 return "STATUS_PRIVILEGED_INSTRUCTION"; 1286 case 0xC0000097: 1287 return "STATUS_TOO_MANY_PAGING_FILES"; 1288 case 0xC0000098: 1289 return "STATUS_FILE_INVALID"; 1290 case 0xC0000099: 1291 return "STATUS_ALLOTTED_SPACE_EXCEEDED"; 1292 case 0xC000009A: 1293 return "STATUS_INSUFFICIENT_RESOURCES"; 1294 case 0xC000009B: 1295 return "STATUS_DFS_EXIT_PATH_FOUND"; 1296 case 0xC000009C: 1297 return "STATUS_DEVICE_DATA_ERROR"; 1298 case 0xC000009D: 1299 return "STATUS_DEVICE_NOT_CONNECTED"; 1300 case 0xC000009E: 1301 return "STATUS_DEVICE_POWER_FAILURE"; 1302 case 0xC000009F: 1303 return "STATUS_FREE_VM_NOT_AT_BASE"; 1304 case 0xC00000A0: 1305 return "STATUS_MEMORY_NOT_ALLOCATED"; 1306 case 0xC00000A1: 1307 return "STATUS_WORKING_SET_QUOTA"; 1308 case 0xC00000A2: 1309 return "STATUS_MEDIA_WRITE_PROTECTED"; 1310 case 0xC00000A3: 1311 return "STATUS_DEVICE_NOT_READY"; 1312 case 0xC00000A4: 1313 return "STATUS_INVALID_GROUP_ATTRIBUTES"; 1314 case 0xC00000A5: 1315 return "STATUS_BAD_IMPERSONATION_LEVEL"; 1316 case 0xC00000A6: 1317 return "STATUS_CANT_OPEN_ANONYMOUS"; 1318 case 0xC00000A7: 1319 return "STATUS_BAD_VALIDATION_CLASS"; 1320 case 0xC00000A8: 1321 return "STATUS_BAD_TOKEN_TYPE"; 1322 case 0xC00000A9: 1323 return "STATUS_BAD_MASTER_BOOT_RECORD"; 1324 case 0xC00000AA: 1325 return "STATUS_INSTRUCTION_MISALIGNMENT"; 1326 case 0xC00000AB: 1327 return "STATUS_INSTANCE_NOT_AVAILABLE"; 1328 case 0xC00000AC: 1329 return "STATUS_PIPE_NOT_AVAILABLE"; 1330 case 0xC00000AD: 1331 return "STATUS_INVALID_PIPE_STATE"; 1332 case 0xC00000AE: 1333 return "STATUS_PIPE_BUSY"; 1334 case 0xC00000AF: 1335 return "STATUS_ILLEGAL_FUNCTION"; 1336 case 0xC00000B0: 1337 return "STATUS_PIPE_DISCONNECTED"; 1338 case 0xC00000B1: 1339 return "STATUS_PIPE_CLOSING"; 1340 case 0xC00000B2: 1341 return "STATUS_PIPE_CONNECTED"; 1342 case 0xC00000B3: 1343 return "STATUS_PIPE_LISTENING"; 1344 case 0xC00000B4: 1345 return "STATUS_INVALID_READ_MODE"; 1346 case 0xC00000B5: 1347 return "STATUS_IO_TIMEOUT"; 1348 case 0xC00000B6: 1349 return "STATUS_FILE_FORCED_CLOSED"; 1350 case 0xC00000B7: 1351 return "STATUS_PROFILING_NOT_STARTED"; 1352 case 0xC00000B8: 1353 return "STATUS_PROFILING_NOT_STOPPED"; 1354 case 0xC00000B9: 1355 return "STATUS_COULD_NOT_INTERPRET"; 1356 case 0xC00000BA: 1357 return "STATUS_FILE_IS_A_DIRECTORY"; 1358 case 0xC00000BB: 1359 return "STATUS_NOT_SUPPORTED"; 1360 case 0xC00000BC: 1361 return "STATUS_REMOTE_NOT_LISTENING"; 1362 case 0xC00000BD: 1363 return "STATUS_DUPLICATE_NAME"; 1364 case 0xC00000BE: 1365 return "STATUS_BAD_NETWORK_PATH"; 1366 case 0xC00000BF: 1367 return "STATUS_NETWORK_BUSY"; 1368 case 0xC00000C0: 1369 return "STATUS_DEVICE_DOES_NOT_EXIST"; 1370 case 0xC00000C1: 1371 return "STATUS_TOO_MANY_COMMANDS"; 1372 case 0xC00000C2: 1373 return "STATUS_ADAPTER_HARDWARE_ERROR"; 1374 case 0xC00000C3: 1375 return "STATUS_INVALID_NETWORK_RESPONSE"; 1376 case 0xC00000C4: 1377 return "STATUS_UNEXPECTED_NETWORK_ERROR"; 1378 case 0xC00000C5: 1379 return "STATUS_BAD_REMOTE_ADAPTER"; 1380 case 0xC00000C6: 1381 return "STATUS_PRINT_QUEUE_FULL"; 1382 case 0xC00000C7: 1383 return "STATUS_NO_SPOOL_SPACE"; 1384 case 0xC00000C8: 1385 return "STATUS_PRINT_CANCELLED"; 1386 case 0xC00000C9: 1387 return "STATUS_NETWORK_NAME_DELETED"; 1388 case 0xC00000CA: 1389 return "STATUS_NETWORK_ACCESS_DENIED"; 1390 case 0xC00000CB: 1391 return "STATUS_BAD_DEVICE_TYPE"; 1392 case 0xC00000CC: 1393 return "STATUS_BAD_NETWORK_NAME"; 1394 case 0xC00000CD: 1395 return "STATUS_TOO_MANY_NAMES"; 1396 case 0xC00000CE: 1397 return "STATUS_TOO_MANY_SESSIONS"; 1398 case 0xC00000CF: 1399 return "STATUS_SHARING_PAUSED"; 1400 case 0xC00000D0: 1401 return "STATUS_REQUEST_NOT_ACCEPTED"; 1402 case 0xC00000D1: 1403 return "STATUS_REDIRECTOR_PAUSED"; 1404 case 0xC00000D2: 1405 return "STATUS_NET_WRITE_FAULT"; 1406 case 0xC00000D3: 1407 return "STATUS_PROFILING_AT_LIMIT"; 1408 case 0xC00000D4: 1409 return "STATUS_NOT_SAME_DEVICE"; 1410 case 0xC00000D5: 1411 return "STATUS_FILE_RENAMED"; 1412 case 0xC00000D6: 1413 return "STATUS_VIRTUAL_CIRCUIT_CLOSED"; 1414 case 0xC00000D7: 1415 return "STATUS_NO_SECURITY_ON_OBJECT"; 1416 case 0xC00000D8: 1417 return "STATUS_CANT_WAIT"; 1418 case 0xC00000D9: 1419 return "STATUS_PIPE_EMPTY"; 1420 case 0xC00000DA: 1421 return "STATUS_CANT_ACCESS_DOMAIN_INFO"; 1422 case 0xC00000DB: 1423 return "STATUS_CANT_TERMINATE_SELF"; 1424 case 0xC00000DC: 1425 return "STATUS_INVALID_SERVER_STATE"; 1426 case 0xC00000DD: 1427 return "STATUS_INVALID_DOMAIN_STATE"; 1428 case 0xC00000DE: 1429 return "STATUS_INVALID_DOMAIN_ROLE"; 1430 case 0xC00000DF: 1431 return "STATUS_NO_SUCH_DOMAIN"; 1432 case 0xC00000E0: 1433 return "STATUS_DOMAIN_EXISTS"; 1434 case 0xC00000E1: 1435 return "STATUS_DOMAIN_LIMIT_EXCEEDED"; 1436 case 0xC00000E2: 1437 return "STATUS_OPLOCK_NOT_GRANTED"; 1438 case 0xC00000E3: 1439 return "STATUS_INVALID_OPLOCK_PROTOCOL"; 1440 case 0xC00000E4: 1441 return "STATUS_INTERNAL_DB_CORRUPTION"; 1442 case 0xC00000E5: 1443 return "STATUS_INTERNAL_ERROR"; 1444 case 0xC00000E6: 1445 return "STATUS_GENERIC_NOT_MAPPED"; 1446 case 0xC00000E7: 1447 return "STATUS_BAD_DESCRIPTOR_FORMAT"; 1448 case 0xC00000E8: 1449 return "STATUS_INVALID_USER_BUFFER"; 1450 case 0xC00000E9: 1451 return "STATUS_UNEXPECTED_IO_ERROR"; 1452 case 0xC00000EA: 1453 return "STATUS_UNEXPECTED_MM_CREATE_ERR"; 1454 case 0xC00000EB: 1455 return "STATUS_UNEXPECTED_MM_MAP_ERROR"; 1456 case 0xC00000EC: 1457 return "STATUS_UNEXPECTED_MM_EXTEND_ERR"; 1458 case 0xC00000ED: 1459 return "STATUS_NOT_LOGON_PROCESS"; 1460 case 0xC00000EE: 1461 return "STATUS_LOGON_SESSION_EXISTS"; 1462 case 0xC00000EF: 1463 return "STATUS_INVALID_PARAMETER_1"; 1464 case 0xC00000F0: 1465 return "STATUS_INVALID_PARAMETER_2"; 1466 case 0xC00000F1: 1467 return "STATUS_INVALID_PARAMETER_3"; 1468 case 0xC00000F2: 1469 return "STATUS_INVALID_PARAMETER_4"; 1470 case 0xC00000F3: 1471 return "STATUS_INVALID_PARAMETER_5"; 1472 case 0xC00000F4: 1473 return "STATUS_INVALID_PARAMETER_6"; 1474 case 0xC00000F5: 1475 return "STATUS_INVALID_PARAMETER_7"; 1476 case 0xC00000F6: 1477 return "STATUS_INVALID_PARAMETER_8"; 1478 case 0xC00000F7: 1479 return "STATUS_INVALID_PARAMETER_9"; 1480 case 0xC00000F8: 1481 return "STATUS_INVALID_PARAMETER_10"; 1482 case 0xC00000F9: 1483 return "STATUS_INVALID_PARAMETER_11"; 1484 case 0xC00000FA: 1485 return "STATUS_INVALID_PARAMETER_12"; 1486 case 0xC00000FB: 1487 return "STATUS_REDIRECTOR_NOT_STARTED"; 1488 case 0xC00000FC: 1489 return "STATUS_REDIRECTOR_STARTED"; 1490 case 0xC00000FD: 1491 return "STATUS_STACK_OVERFLOW"; 1492 case 0xC00000FE: 1493 return "STATUS_NO_SUCH_PACKAGE"; 1494 case 0xC00000FF: 1495 return "STATUS_BAD_FUNCTION_TABLE"; 1496 case 0xC0000100: 1497 return "STATUS_VARIABLE_NOT_FOUND"; 1498 case 0xC0000101: 1499 return "STATUS_DIRECTORY_NOT_EMPTY"; 1500 case 0xC0000102: 1501 return "STATUS_FILE_CORRUPT_ERROR"; 1502 case 0xC0000103: 1503 return "STATUS_NOT_A_DIRECTORY"; 1504 case 0xC0000104: 1505 return "STATUS_BAD_LOGON_SESSION_STATE"; 1506 case 0xC0000105: 1507 return "STATUS_LOGON_SESSION_COLLISION"; 1508 case 0xC0000106: 1509 return "STATUS_NAME_TOO_LONG"; 1510 case 0xC0000107: 1511 return "STATUS_FILES_OPEN"; 1512 case 0xC0000108: 1513 return "STATUS_CONNECTION_IN_USE"; 1514 case 0xC0000109: 1515 return "STATUS_MESSAGE_NOT_FOUND"; 1516 case 0xC000010A: 1517 return "STATUS_PROCESS_IS_TERMINATING"; 1518 case 0xC000010B: 1519 return "STATUS_INVALID_LOGON_TYPE"; 1520 case 0xC000010C: 1521 return "STATUS_NO_GUID_TRANSLATION"; 1522 case 0xC000010D: 1523 return "STATUS_CANNOT_IMPERSONATE"; 1524 case 0xC000010E: 1525 return "STATUS_IMAGE_ALREADY_LOADED"; 1526 case 0xC000010F: 1527 return "STATUS_ABIOS_NOT_PRESENT"; 1528 case 0xC0000110: 1529 return "STATUS_ABIOS_LID_NOT_EXIST"; 1530 case 0xC0000111: 1531 return "STATUS_ABIOS_LID_ALREADY_OWNED"; 1532 case 0xC0000112: 1533 return "STATUS_ABIOS_NOT_LID_OWNER"; 1534 case 0xC0000113: 1535 return "STATUS_ABIOS_INVALID_COMMAND"; 1536 case 0xC0000114: 1537 return "STATUS_ABIOS_INVALID_LID"; 1538 case 0xC0000115: 1539 return "STATUS_ABIOS_SELECTOR_NOT_AVAILABLE"; 1540 case 0xC0000116: 1541 return "STATUS_ABIOS_INVALID_SELECTOR"; 1542 case 0xC0000117: 1543 return "STATUS_NO_LDT"; 1544 case 0xC0000118: 1545 return "STATUS_INVALID_LDT_SIZE"; 1546 case 0xC0000119: 1547 return "STATUS_INVALID_LDT_OFFSET"; 1548 case 0xC000011A: 1549 return "STATUS_INVALID_LDT_DESCRIPTOR"; 1550 case 0xC000011B: 1551 return "STATUS_INVALID_IMAGE_NE_FORMAT"; 1552 case 0xC000011C: 1553 return "STATUS_RXACT_INVALID_STATE"; 1554 case 0xC000011D: 1555 return "STATUS_RXACT_COMMIT_FAILURE"; 1556 case 0xC000011E: 1557 return "STATUS_MAPPED_FILE_SIZE_ZERO"; 1558 case 0xC000011F: 1559 return "STATUS_TOO_MANY_OPENED_FILES"; 1560 case 0xC0000120: 1561 return "STATUS_CANCELLED"; 1562 case 0xC0000121: 1563 return "STATUS_CANNOT_DELETE"; 1564 case 0xC0000122: 1565 return "STATUS_INVALID_COMPUTER_NAME"; 1566 case 0xC0000123: 1567 return "STATUS_FILE_DELETED"; 1568 case 0xC0000124: 1569 return "STATUS_SPECIAL_ACCOUNT"; 1570 case 0xC0000125: 1571 return "STATUS_SPECIAL_GROUP"; 1572 case 0xC0000126: 1573 return "STATUS_SPECIAL_USER"; 1574 case 0xC0000127: 1575 return "STATUS_MEMBERS_PRIMARY_GROUP"; 1576 case 0xC0000128: 1577 return "STATUS_FILE_CLOSED"; 1578 case 0xC0000129: 1579 return "STATUS_TOO_MANY_THREADS"; 1580 case 0xC000012A: 1581 return "STATUS_THREAD_NOT_IN_PROCESS"; 1582 case 0xC000012B: 1583 return "STATUS_TOKEN_ALREADY_IN_USE"; 1584 case 0xC000012C: 1585 return "STATUS_PAGEFILE_QUOTA_EXCEEDED"; 1586 case 0xC000012D: 1587 return "STATUS_COMMITMENT_LIMIT"; 1588 case 0xC000012E: 1589 return "STATUS_INVALID_IMAGE_LE_FORMAT"; 1590 case 0xC000012F: 1591 return "STATUS_INVALID_IMAGE_NOT_MZ"; 1592 case 0xC0000130: 1593 return "STATUS_INVALID_IMAGE_PROTECT"; 1594 case 0xC0000131: 1595 return "STATUS_INVALID_IMAGE_WIN_16"; 1596 case 0xC0000132: 1597 return "STATUS_LOGON_SERVER_CONFLICT"; 1598 case 0xC0000133: 1599 return "STATUS_TIME_DIFFERENCE_AT_DC"; 1600 case 0xC0000134: 1601 return "STATUS_SYNCHRONIZATION_REQUIRED"; 1602 case 0xC0000135: 1603 return "STATUS_DLL_NOT_FOUND"; 1604 case 0xC0000136: 1605 return "STATUS_OPEN_FAILED"; 1606 case 0xC0000137: 1607 return "STATUS_IO_PRIVILEGE_FAILED"; 1608 case 0xC0000138: 1609 return "STATUS_ORDINAL_NOT_FOUND"; 1610 case 0xC0000139: 1611 return "STATUS_ENTRYPOINT_NOT_FOUND"; 1612 case 0xC000013A: 1613 return "STATUS_CONTROL_C_EXIT"; 1614 case 0xC000013B: 1615 return "STATUS_LOCAL_DISCONNECT"; 1616 case 0xC000013C: 1617 return "STATUS_REMOTE_DISCONNECT"; 1618 case 0xC000013D: 1619 return "STATUS_REMOTE_RESOURCES"; 1620 case 0xC000013E: 1621 return "STATUS_LINK_FAILED"; 1622 case 0xC000013F: 1623 return "STATUS_LINK_TIMEOUT"; 1624 case 0xC0000140: 1625 return "STATUS_INVALID_CONNECTION"; 1626 case 0xC0000141: 1627 return "STATUS_INVALID_ADDRESS"; 1628 case 0xC0000142: 1629 return "STATUS_DLL_INIT_FAILED"; 1630 case 0xC0000143: 1631 return "STATUS_MISSING_SYSTEMFILE"; 1632 case 0xC0000144: 1633 return "STATUS_UNHANDLED_EXCEPTION"; 1634 case 0xC0000145: 1635 return "STATUS_APP_INIT_FAILURE"; 1636 case 0xC0000146: 1637 return "STATUS_PAGEFILE_CREATE_FAILED"; 1638 case 0xC0000147: 1639 return "STATUS_NO_PAGEFILE"; 1640 case 0xC0000148: 1641 return "STATUS_INVALID_LEVEL"; 1642 case 0xC0000149: 1643 return "STATUS_WRONG_PASSWORD_CORE"; 1644 case 0xC000014A: 1645 return "STATUS_ILLEGAL_FLOAT_CONTEXT"; 1646 case 0xC000014B: 1647 return "STATUS_PIPE_BROKEN"; 1648 case 0xC000014C: 1649 return "STATUS_REGISTRY_CORRUPT"; 1650 case 0xC000014D: 1651 return "STATUS_REGISTRY_IO_FAILED"; 1652 case 0xC000014E: 1653 return "STATUS_NO_EVENT_PAIR"; 1654 case 0xC000014F: 1655 return "STATUS_UNRECOGNIZED_VOLUME"; 1656 case 0xC0000150: 1657 return "STATUS_SERIAL_NO_DEVICE_INITED"; 1658 case 0xC0000151: 1659 return "STATUS_NO_SUCH_ALIAS"; 1660 case 0xC0000152: 1661 return "STATUS_MEMBER_NOT_IN_ALIAS"; 1662 case 0xC0000153: 1663 return "STATUS_MEMBER_IN_ALIAS"; 1664 case 0xC0000154: 1665 return "STATUS_ALIAS_EXISTS"; 1666 case 0xC0000155: 1667 return "STATUS_LOGON_NOT_GRANTED"; 1668 case 0xC0000156: 1669 return "STATUS_TOO_MANY_SECRETS"; 1670 case 0xC0000157: 1671 return "STATUS_SECRET_TOO_LONG"; 1672 case 0xC0000158: 1673 return "STATUS_INTERNAL_DB_ERROR"; 1674 case 0xC0000159: 1675 return "STATUS_FULLSCREEN_MODE"; 1676 case 0xC000015A: 1677 return "STATUS_TOO_MANY_CONTEXT_IDS"; 1678 case 0xC000015B: 1679 return "STATUS_LOGON_TYPE_NOT_GRANTED"; 1680 case 0xC000015C: 1681 return "STATUS_NOT_REGISTRY_FILE"; 1682 case 0xC000015D: 1683 return "STATUS_NT_CROSS_ENCRYPTION_REQUIRED"; 1684 case 0xC000015E: 1685 return "STATUS_DOMAIN_CTRLR_CONFIG_ERROR"; 1686 case 0xC000015F: 1687 return "STATUS_FT_MISSING_MEMBER"; 1688 case 0xC0000160: 1689 return "STATUS_ILL_FORMED_SERVICE_ENTRY"; 1690 case 0xC0000161: 1691 return "STATUS_ILLEGAL_CHARACTER"; 1692 case 0xC0000162: 1693 return "STATUS_UNMAPPABLE_CHARACTER"; 1694 case 0xC0000163: 1695 return "STATUS_UNDEFINED_CHARACTER"; 1696 case 0xC0000164: 1697 return "STATUS_FLOPPY_VOLUME"; 1698 case 0xC0000165: 1699 return "STATUS_FLOPPY_ID_MARK_NOT_FOUND"; 1700 case 0xC0000166: 1701 return "STATUS_FLOPPY_WRONG_CYLINDER"; 1702 case 0xC0000167: 1703 return "STATUS_FLOPPY_UNKNOWN_ERROR"; 1704 case 0xC0000168: 1705 return "STATUS_FLOPPY_BAD_REGISTERS"; 1706 case 0xC0000169: 1707 return "STATUS_DISK_RECALIBRATE_FAILED"; 1708 case 0xC000016A: 1709 return "STATUS_DISK_OPERATION_FAILED"; 1710 case 0xC000016B: 1711 return "STATUS_DISK_RESET_FAILED"; 1712 case 0xC000016C: 1713 return "STATUS_SHARED_IRQ_BUSY"; 1714 case 0xC000016D: 1715 return "STATUS_FT_ORPHANING"; 1716 case 0xC000016E: 1717 return "STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT"; 1718 case 0xC0000172: 1719 return "STATUS_PARTITION_FAILURE"; 1720 case 0xC0000173: 1721 return "STATUS_INVALID_BLOCK_LENGTH"; 1722 case 0xC0000174: 1723 return "STATUS_DEVICE_NOT_PARTITIONED"; 1724 case 0xC0000175: 1725 return "STATUS_UNABLE_TO_LOCK_MEDIA"; 1726 case 0xC0000176: 1727 return "STATUS_UNABLE_TO_UNLOAD_MEDIA"; 1728 case 0xC0000177: 1729 return "STATUS_EOM_OVERFLOW"; 1730 case 0xC0000178: 1731 return "STATUS_NO_MEDIA"; 1732 case 0xC000017A: 1733 return "STATUS_NO_SUCH_MEMBER"; 1734 case 0xC000017B: 1735 return "STATUS_INVALID_MEMBER"; 1736 case 0xC000017C: 1737 return "STATUS_KEY_DELETED"; 1738 case 0xC000017D: 1739 return "STATUS_NO_LOG_SPACE"; 1740 case 0xC000017E: 1741 return "STATUS_TOO_MANY_SIDS"; 1742 case 0xC000017F: 1743 return "STATUS_LM_CROSS_ENCRYPTION_REQUIRED"; 1744 case 0xC0000180: 1745 return "STATUS_KEY_HAS_CHILDREN"; 1746 case 0xC0000181: 1747 return "STATUS_CHILD_MUST_BE_VOLATILE"; 1748 case 0xC0000182: 1749 return "STATUS_DEVICE_CONFIGURATION_ERROR"; 1750 case 0xC0000183: 1751 return "STATUS_DRIVER_INTERNAL_ERROR"; 1752 case 0xC0000184: 1753 return "STATUS_INVALID_DEVICE_STATE"; 1754 case 0xC0000185: 1755 return "STATUS_IO_DEVICE_ERROR"; 1756 case 0xC0000186: 1757 return "STATUS_DEVICE_PROTOCOL_ERROR"; 1758 case 0xC0000187: 1759 return "STATUS_BACKUP_CONTROLLER"; 1760 case 0xC0000188: 1761 return "STATUS_LOG_FILE_FULL"; 1762 case 0xC0000189: 1763 return "STATUS_TOO_LATE"; 1764 case 0xC000018A: 1765 return "STATUS_NO_TRUST_LSA_SECRET"; 1766 case 0xC000018B: 1767 return "STATUS_NO_TRUST_SAM_ACCOUNT"; 1768 case 0xC000018C: 1769 return "STATUS_TRUSTED_DOMAIN_FAILURE"; 1770 case 0xC000018D: 1771 return "STATUS_TRUSTED_RELATIONSHIP_FAILURE"; 1772 case 0xC000018E: 1773 return "STATUS_EVENTLOG_FILE_CORRUPT"; 1774 case 0xC000018F: 1775 return "STATUS_EVENTLOG_CANT_START"; 1776 case 0xC0000190: 1777 return "STATUS_TRUST_FAILURE"; 1778 case 0xC0000191: 1779 return "STATUS_MUTANT_LIMIT_EXCEEDED"; 1780 case 0xC0000192: 1781 return "STATUS_NETLOGON_NOT_STARTED"; 1782 case 0xC0000193: 1783 return "STATUS_ACCOUNT_EXPIRED"; 1784 case 0xC0000194: 1785 return "STATUS_POSSIBLE_DEADLOCK"; 1786 case 0xC0000195: 1787 return "STATUS_NETWORK_CREDENTIAL_CONFLICT"; 1788 case 0xC0000196: 1789 return "STATUS_REMOTE_SESSION_LIMIT"; 1790 case 0xC0000197: 1791 return "STATUS_EVENTLOG_FILE_CHANGED"; 1792 case 0xC0000198: 1793 return "STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT"; 1794 case 0xC0000199: 1795 return "STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT"; 1796 case 0xC000019A: 1797 return "STATUS_NOLOGON_SERVER_TRUST_ACCOUNT"; 1798 case 0xC000019B: 1799 return "STATUS_DOMAIN_TRUST_INCONSISTENT"; 1800 case 0xC000019C: 1801 return "STATUS_FS_DRIVER_REQUIRED"; 1802 case 0xC0000202: 1803 return "STATUS_NO_USER_SESSION_KEY"; 1804 case 0xC0000203: 1805 return "STATUS_USER_SESSION_DELETED"; 1806 case 0xC0000204: 1807 return "STATUS_RESOURCE_LANG_NOT_FOUND"; 1808 case 0xC0000205: 1809 return "STATUS_INSUFF_SERVER_RESOURCES"; 1810 case 0xC0000206: 1811 return "STATUS_INVALID_BUFFER_SIZE"; 1812 case 0xC0000207: 1813 return "STATUS_INVALID_ADDRESS_COMPONENT"; 1814 case 0xC0000208: 1815 return "STATUS_INVALID_ADDRESS_WILDCARD"; 1816 case 0xC0000209: 1817 return "STATUS_TOO_MANY_ADDRESSES"; 1818 case 0xC000020A: 1819 return "STATUS_ADDRESS_ALREADY_EXISTS"; 1820 case 0xC000020B: 1821 return "STATUS_ADDRESS_CLOSED"; 1822 case 0xC000020C: 1823 return "STATUS_CONNECTION_DISCONNECTED"; 1824 case 0xC000020D: 1825 return "STATUS_CONNECTION_RESET"; 1826 case 0xC000020E: 1827 return "STATUS_TOO_MANY_NODES"; 1828 case 0xC000020F: 1829 return "STATUS_TRANSACTION_ABORTED"; 1830 case 0xC0000210: 1831 return "STATUS_TRANSACTION_TIMED_OUT"; 1832 case 0xC0000211: 1833 return "STATUS_TRANSACTION_NO_RELEASE"; 1834 case 0xC0000212: 1835 return "STATUS_TRANSACTION_NO_MATCH"; 1836 case 0xC0000213: 1837 return "STATUS_TRANSACTION_RESPONDED"; 1838 case 0xC0000214: 1839 return "STATUS_TRANSACTION_INVALID_ID"; 1840 case 0xC0000215: 1841 return "STATUS_TRANSACTION_INVALID_TYPE"; 1842 case 0xC0000216: 1843 return "STATUS_NOT_SERVER_SESSION"; 1844 case 0xC0000217: 1845 return "STATUS_NOT_CLIENT_SESSION"; 1846 case 0xC0000218: 1847 return "STATUS_CANNOT_LOAD_REGISTRY_FILE"; 1848 case 0xC0000219: 1849 return "STATUS_DEBUG_ATTACH_FAILED"; 1850 case 0xC000021A: 1851 return "STATUS_SYSTEM_PROCESS_TERMINATED"; 1852 case 0xC000021B: 1853 return "STATUS_DATA_NOT_ACCEPTED"; 1854 case 0xC000021C: 1855 return "STATUS_NO_BROWSER_SERVERS_FOUND"; 1856 case 0xC000021D: 1857 return "STATUS_VDM_HARD_ERROR"; 1858 case 0xC000021E: 1859 return "STATUS_DRIVER_CANCEL_TIMEOUT"; 1860 case 0xC000021F: 1861 return "STATUS_REPLY_MESSAGE_MISMATCH"; 1862 case 0xC0000220: 1863 return "STATUS_MAPPED_ALIGNMENT"; 1864 case 0xC0000221: 1865 return "STATUS_IMAGE_CHECKSUM_MISMATCH"; 1866 case 0xC0000222: 1867 return "STATUS_LOST_WRITEBEHIND_DATA"; 1868 case 0xC0000223: 1869 return "STATUS_CLIENT_SERVER_PARAMETERS_INVALID"; 1870 case 0xC0000224: 1871 return "STATUS_PASSWORD_MUST_CHANGE"; 1872 case 0xC0000225: 1873 return "STATUS_NOT_FOUND"; 1874 case 0xC0000226: 1875 return "STATUS_NOT_TINY_STREAM"; 1876 case 0xC0000227: 1877 return "STATUS_RECOVERY_FAILURE"; 1878 case 0xC0000228: 1879 return "STATUS_STACK_OVERFLOW_READ"; 1880 case 0xC0000229: 1881 return "STATUS_FAIL_CHECK"; 1882 case 0xC000022A: 1883 return "STATUS_DUPLICATE_OBJECTID"; 1884 case 0xC000022B: 1885 return "STATUS_OBJECTID_EXISTS"; 1886 case 0xC000022C: 1887 return "STATUS_CONVERT_TO_LARGE"; 1888 case 0xC000022D: 1889 return "STATUS_RETRY"; 1890 case 0xC000022E: 1891 return "STATUS_FOUND_OUT_OF_SCOPE"; 1892 case 0xC000022F: 1893 return "STATUS_ALLOCATE_BUCKET"; 1894 case 0xC0000230: 1895 return "STATUS_PROPSET_NOT_FOUND"; 1896 case 0xC0000231: 1897 return "STATUS_MARSHALL_OVERFLOW"; 1898 case 0xC0000232: 1899 return "STATUS_INVALID_VARIANT"; 1900 case 0xC0000233: 1901 return "STATUS_DOMAIN_CONTROLLER_NOT_FOUND"; 1902 case 0xC0000234: 1903 return "STATUS_ACCOUNT_LOCKED_OUT"; 1904 case 0xC0000235: 1905 return "STATUS_HANDLE_NOT_CLOSABLE"; 1906 case 0xC0000236: 1907 return "STATUS_CONNECTION_REFUSED"; 1908 case 0xC0000237: 1909 return "STATUS_GRACEFUL_DISCONNECT"; 1910 case 0xC0000238: 1911 return "STATUS_ADDRESS_ALREADY_ASSOCIATED"; 1912 case 0xC0000239: 1913 return "STATUS_ADDRESS_NOT_ASSOCIATED"; 1914 case 0xC000023A: 1915 return "STATUS_CONNECTION_INVALID"; 1916 case 0xC000023B: 1917 return "STATUS_CONNECTION_ACTIVE"; 1918 case 0xC000023C: 1919 return "STATUS_NETWORK_UNREACHABLE"; 1920 case 0xC000023D: 1921 return "STATUS_HOST_UNREACHABLE"; 1922 case 0xC000023E: 1923 return "STATUS_PROTOCOL_UNREACHABLE"; 1924 case 0xC000023F: 1925 return "STATUS_PORT_UNREACHABLE"; 1926 case 0xC0000240: 1927 return "STATUS_REQUEST_ABORTED"; 1928 case 0xC0000241: 1929 return "STATUS_CONNECTION_ABORTED"; 1930 case 0xC0000242: 1931 return "STATUS_BAD_COMPRESSION_BUFFER"; 1932 case 0xC0000243: 1933 return "STATUS_USER_MAPPED_FILE"; 1934 case 0xC0000244: 1935 return "STATUS_AUDIT_FAILED"; 1936 case 0xC0000245: 1937 return "STATUS_TIMER_RESOLUTION_NOT_SET"; 1938 case 0xC0000246: 1939 return "STATUS_CONNECTION_COUNT_LIMIT"; 1940 case 0xC0000247: 1941 return "STATUS_LOGIN_TIME_RESTRICTION"; 1942 case 0xC0000248: 1943 return "STATUS_LOGIN_WKSTA_RESTRICTION"; 1944 case 0xC0000249: 1945 return "STATUS_IMAGE_MP_UP_MISMATCH"; 1946 case 0xC0000250: 1947 return "STATUS_INSUFFICIENT_LOGON_INFO"; 1948 case 0xC0000251: 1949 return "STATUS_BAD_DLL_ENTRYPOINT"; 1950 case 0xC0000252: 1951 return "STATUS_BAD_SERVICE_ENTRYPOINT"; 1952 case 0xC0000253: 1953 return "STATUS_LPC_REPLY_LOST"; 1954 case 0xC0000254: 1955 return "STATUS_IP_ADDRESS_CONFLICT1"; 1956 case 0xC0000255: 1957 return "STATUS_IP_ADDRESS_CONFLICT2"; 1958 case 0xC0000256: 1959 return "STATUS_REGISTRY_QUOTA_LIMIT"; 1960 case 0xC0000257: 1961 return "STATUS_PATH_NOT_COVERED"; 1962 case 0xC0000258: 1963 return "STATUS_NO_CALLBACK_ACTIVE"; 1964 case 0xC0000259: 1965 return "STATUS_LICENSE_QUOTA_EXCEEDED"; 1966 case 0xC000025A: 1967 return "STATUS_PWD_TOO_SHORT"; 1968 case 0xC000025B: 1969 return "STATUS_PWD_TOO_RECENT"; 1970 case 0xC000025C: 1971 return "STATUS_PWD_HISTORY_CONFLICT"; 1972 case 0xC000025E: 1973 return "STATUS_PLUGPLAY_NO_DEVICE"; 1974 case 0xC000025F: 1975 return "STATUS_UNSUPPORTED_COMPRESSION"; 1976 case 0xC0000260: 1977 return "STATUS_INVALID_HW_PROFILE"; 1978 case 0xC0000261: 1979 return "STATUS_INVALID_PLUGPLAY_DEVICE_PATH"; 1980 case 0xC0000262: 1981 return "STATUS_DRIVER_ORDINAL_NOT_FOUND"; 1982 case 0xC0000263: 1983 return "STATUS_DRIVER_ENTRYPOINT_NOT_FOUND"; 1984 case 0xC0000264: 1985 return "STATUS_RESOURCE_NOT_OWNED"; 1986 case 0xC0000265: 1987 return "STATUS_TOO_MANY_LINKS"; 1988 case 0xC0000266: 1989 return "STATUS_QUOTA_LIST_INCONSISTENT"; 1990 case 0xC0000267: 1991 return "STATUS_FILE_IS_OFFLINE"; 1992 case 0xC0000268: 1993 return "STATUS_EVALUATION_EXPIRATION"; 1994 case 0xC0000269: 1995 return "STATUS_ILLEGAL_DLL_RELOCATION"; 1996 case 0xC000026A: 1997 return "STATUS_LICENSE_VIOLATION"; 1998 case 0xC000026B: 1999 return "STATUS_DLL_INIT_FAILED_LOGOFF"; 2000 case 0xC000026C: 2001 return "STATUS_DRIVER_UNABLE_TO_LOAD"; 2002 case 0xC000026D: 2003 return "STATUS_DFS_UNAVAILABLE"; 2004 case 0xC000026E: 2005 return "STATUS_VOLUME_DISMOUNTED"; 2006 case 0xC000026F: 2007 return "STATUS_WX86_INTERNAL_ERROR"; 2008 case 0xC0000270: 2009 return "STATUS_WX86_FLOAT_STACK_CHECK"; 2010 case 0xC0000271: 2011 return "STATUS_VALIDATE_CONTINUE"; 2012 case 0xC0000272: 2013 return "STATUS_NO_MATCH"; 2014 case 0xC0000273: 2015 return "STATUS_NO_MORE_MATCHES"; 2016 case 0xC0000275: 2017 return "STATUS_NOT_A_REPARSE_POINT"; 2018 case 0xC0000276: 2019 return "STATUS_IO_REPARSE_TAG_INVALID"; 2020 case 0xC0000277: 2021 return "STATUS_IO_REPARSE_TAG_MISMATCH"; 2022 case 0xC0000278: 2023 return "STATUS_IO_REPARSE_DATA_INVALID"; 2024 case 0xC0000279: 2025 return "STATUS_IO_REPARSE_TAG_NOT_HANDLED"; 2026 case 0xC0000280: 2027 return "STATUS_REPARSE_POINT_NOT_RESOLVED"; 2028 case 0xC0000281: 2029 return "STATUS_DIRECTORY_IS_A_REPARSE_POINT"; 2030 case 0xC0000282: 2031 return "STATUS_RANGE_LIST_CONFLICT"; 2032 case 0xC0000283: 2033 return "STATUS_SOURCE_ELEMENT_EMPTY"; 2034 case 0xC0000284: 2035 return "STATUS_DESTINATION_ELEMENT_FULL"; 2036 case 0xC0000285: 2037 return "STATUS_ILLEGAL_ELEMENT_ADDRESS"; 2038 case 0xC0000286: 2039 return "STATUS_MAGAZINE_NOT_PRESENT"; 2040 case 0xC0000287: 2041 return "STATUS_REINITIALIZATION_NEEDED"; 2042 case 0x80000288: 2043 return "STATUS_DEVICE_REQUIRES_CLEANING"; 2044 case 0x80000289: 2045 return "STATUS_DEVICE_DOOR_OPEN"; 2046 case 0xC000028A: 2047 return "STATUS_ENCRYPTION_FAILED"; 2048 case 0xC000028B: 2049 return "STATUS_DECRYPTION_FAILED"; 2050 case 0xC000028C: 2051 return "STATUS_RANGE_NOT_FOUND"; 2052 case 0xC000028D: 2053 return "STATUS_NO_RECOVERY_POLICY"; 2054 case 0xC000028E: 2055 return "STATUS_NO_EFS"; 2056 case 0xC000028F: 2057 return "STATUS_WRONG_EFS"; 2058 case 0xC0000290: 2059 return "STATUS_NO_USER_KEYS"; 2060 case 0xC0000291: 2061 return "STATUS_FILE_NOT_ENCRYPTED"; 2062 case 0xC0000292: 2063 return "STATUS_NOT_EXPORT_FORMAT"; 2064 case 0xC0000293: 2065 return "STATUS_FILE_ENCRYPTED"; 2066 case 0x40000294: 2067 return "STATUS_WAKE_SYSTEM"; 2068 case 0xC0000295: 2069 return "STATUS_WMI_GUID_NOT_FOUND"; 2070 case 0xC0000296: 2071 return "STATUS_WMI_INSTANCE_NOT_FOUND"; 2072 case 0xC0000297: 2073 return "STATUS_WMI_ITEMID_NOT_FOUND"; 2074 case 0xC0000298: 2075 return "STATUS_WMI_TRY_AGAIN"; 2076 case 0xC0000299: 2077 return "STATUS_SHARED_POLICY"; 2078 case 0xC000029A: 2079 return "STATUS_POLICY_OBJECT_NOT_FOUND"; 2080 case 0xC000029B: 2081 return "STATUS_POLICY_ONLY_IN_DS"; 2082 case 0xC000029C: 2083 return "STATUS_VOLUME_NOT_UPGRADED"; 2084 case 0xC000029D: 2085 return "STATUS_REMOTE_STORAGE_NOT_ACTIVE"; 2086 case 0xC000029E: 2087 return "STATUS_REMOTE_STORAGE_MEDIA_ERROR"; 2088 case 0xC000029F: 2089 return "STATUS_NO_TRACKING_SERVICE"; 2090 case 0xC00002A0: 2091 return "STATUS_SERVER_SID_MISMATCH"; 2092 case 0xC00002A1: 2093 return "STATUS_DS_NO_ATTRIBUTE_OR_VALUE"; 2094 case 0xC00002A2: 2095 return "STATUS_DS_INVALID_ATTRIBUTE_SYNTAX"; 2096 case 0xC00002A3: 2097 return "STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED"; 2098 case 0xC00002A4: 2099 return "STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS"; 2100 case 0xC00002A5: 2101 return "STATUS_DS_BUSY"; 2102 case 0xC00002A6: 2103 return "STATUS_DS_UNAVAILABLE"; 2104 case 0xC00002A7: 2105 return "STATUS_DS_NO_RIDS_ALLOCATED"; 2106 case 0xC00002A8: 2107 return "STATUS_DS_NO_MORE_RIDS"; 2108 case 0xC00002A9: 2109 return "STATUS_DS_INCORRECT_ROLE_OWNER"; 2110 case 0xC00002AA: 2111 return "STATUS_DS_RIDMGR_INIT_ERROR"; 2112 case 0xC00002AB: 2113 return "STATUS_DS_OBJ_CLASS_VIOLATION"; 2114 case 0xC00002AC: 2115 return "STATUS_DS_CANT_ON_NON_LEAF"; 2116 case 0xC00002AD: 2117 return "STATUS_DS_CANT_ON_RDN"; 2118 case 0xC00002AE: 2119 return "STATUS_DS_CANT_MOD_OBJ_CLASS"; 2120 case 0xC00002AF: 2121 return "STATUS_DS_CROSS_DOM_MOVE_FAILED"; 2122 case 0xC00002B0: 2123 return "STATUS_DS_GC_NOT_AVAILABLE"; 2124 case 0xC00002B1: 2125 return "STATUS_DIRECTORY_SERVICE_REQUIRED"; 2126 case 0xC00002B2: 2127 return "STATUS_REPARSE_ATTRIBUTE_CONFLICT"; 2128 case 0xC00002B3: 2129 return "STATUS_CANT_ENABLE_DENY_ONLY"; 2130 case 0xC00002B4: 2131 return "STATUS_FLOAT_MULTIPLE_FAULTS"; 2132 case 0xC00002B5: 2133 return "STATUS_FLOAT_MULTIPLE_TRAPS"; 2134 case 0xC00002B6: 2135 return "STATUS_DEVICE_REMOVED"; 2136 case 0xC00002B7: 2137 return "STATUS_JOURNAL_DELETE_IN_PROGRESS"; 2138 case 0xC00002B8: 2139 return "STATUS_JOURNAL_NOT_ACTIVE"; 2140 case 0xC00002B9: 2141 return "STATUS_NOINTERFACE"; 2142 case 0xC00002C1: 2143 return "STATUS_DS_ADMIN_LIMIT_EXCEEDED"; 2144 case 0xC00002C2: 2145 return "STATUS_DRIVER_FAILED_SLEEP"; 2146 case 0xC00002C3: 2147 return "STATUS_MUTUAL_AUTHENTICATION_FAILED"; 2148 case 0xC00002C4: 2149 return "STATUS_CORRUPT_SYSTEM_FILE"; 2150 case 0xC00002C5: 2151 return "STATUS_DATATYPE_MISALIGNMENT_ERROR"; 2152 case 0xC00002C6: 2153 return "STATUS_WMI_READ_ONLY"; 2154 case 0xC00002C7: 2155 return "STATUS_WMI_SET_FAILURE"; 2156 case 0xC00002C8: 2157 return "STATUS_COMMITMENT_MINIMUM"; 2158 case 0xC00002C9: 2159 return "STATUS_REG_NAT_CONSUMPTION"; 2160 case 0xC00002CA: 2161 return "STATUS_TRANSPORT_FULL"; 2162 case 0xC00002CB: 2163 return "STATUS_DS_SAM_INIT_FAILURE"; 2164 case 0xC00002CC: 2165 return "STATUS_ONLY_IF_CONNECTED"; 2166 case 0xC00002CD: 2167 return "STATUS_DS_SENSITIVE_GROUP_VIOLATION"; 2168 case 0xC00002CE: 2169 return "STATUS_PNP_RESTART_ENUMERATION"; 2170 case 0xC00002CF: 2171 return "STATUS_JOURNAL_ENTRY_DELETED"; 2172 case 0xC00002D0: 2173 return "STATUS_DS_CANT_MOD_PRIMARYGROUPID"; 2174 case 0xC00002D1: 2175 return "STATUS_SYSTEM_IMAGE_BAD_SIGNATURE"; 2176 case 0xC00002D2: 2177 return "STATUS_PNP_REBOOT_REQUIRED"; 2178 case 0xC00002D3: 2179 return "STATUS_POWER_STATE_INVALID"; 2180 case 0xC00002D4: 2181 return "STATUS_DS_INVALID_GROUP_TYPE"; 2182 case 0xC00002D5: 2183 return "STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN"; 2184 case 0xC00002D6: 2185 return "STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN"; 2186 case 0xC00002D7: 2187 return "STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER"; 2188 case 0xC00002D8: 2189 return "STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER"; 2190 case 0xC00002D9: 2191 return "STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER"; 2192 case 0xC00002DA: 2193 return "STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER"; 2194 case 0xC00002DB: 2195 return "STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER"; 2196 case 0xC00002DC: 2197 return "STATUS_DS_HAVE_PRIMARY_MEMBERS"; 2198 case 0xC00002DD: 2199 return "STATUS_WMI_NOT_SUPPORTED"; 2200 case 0xC00002DE: 2201 return "STATUS_INSUFFICIENT_POWER"; 2202 case 0xC00002DF: 2203 return "STATUS_SAM_NEED_BOOTKEY_PASSWORD"; 2204 case 0xC00002E0: 2205 return "STATUS_SAM_NEED_BOOTKEY_FLOPPY"; 2206 case 0xC00002E1: 2207 return "STATUS_DS_CANT_START"; 2208 case 0xC00002E2: 2209 return "STATUS_DS_INIT_FAILURE"; 2210 case 0xC00002E3: 2211 return "STATUS_SAM_INIT_FAILURE"; 2212 case 0xC00002E4: 2213 return "STATUS_DS_GC_REQUIRED"; 2214 case 0xC00002E5: 2215 return "STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY"; 2216 case 0xC00002E6: 2217 return "STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS"; 2218 case 0xC00002E7: 2219 return "STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED"; 2220 case 0xC00002E8: 2221 return "STATUS_MULTIPLE_FAULT_VIOLATION"; 2222 case 0xC0000300: 2223 return "STATUS_NOT_SUPPORTED_ON_SBS"; 2224 case 0xC0009898: 2225 return "STATUS_WOW_ASSERTION"; 2226 case 0xC0010001: 2227 return "DBG_NO_STATE_CHANGE"; 2228 case 0xC0010002: 2229 return "DBG_APP_NOT_IDLE"; 2230 case 0xC0020001: 2231 return "RPC_NT_INVALID_STRING_BINDING"; 2232 case 0xC0020002: 2233 return "RPC_NT_WRONG_KIND_OF_BINDING"; 2234 case 0xC0020003: 2235 return "RPC_NT_INVALID_BINDING"; 2236 case 0xC0020004: 2237 return "RPC_NT_PROTSEQ_NOT_SUPPORTED"; 2238 case 0xC0020005: 2239 return "RPC_NT_INVALID_RPC_PROTSEQ"; 2240 case 0xC0020006: 2241 return "RPC_NT_INVALID_STRING_UUID"; 2242 case 0xC0020007: 2243 return "RPC_NT_INVALID_ENDPOINT_FORMAT"; 2244 case 0xC0020008: 2245 return "RPC_NT_INVALID_NET_ADDR"; 2246 case 0xC0020009: 2247 return "RPC_NT_NO_ENDPOINT_FOUND"; 2248 case 0xC002000A: 2249 return "RPC_NT_INVALID_TIMEOUT"; 2250 case 0xC002000B: 2251 return "RPC_NT_OBJECT_NOT_FOUND"; 2252 case 0xC002000C: 2253 return "RPC_NT_ALREADY_REGISTERED"; 2254 case 0xC002000D: 2255 return "RPC_NT_TYPE_ALREADY_REGISTERED"; 2256 case 0xC002000E: 2257 return "RPC_NT_ALREADY_LISTENING"; 2258 case 0xC002000F: 2259 return "RPC_NT_NO_PROTSEQS_REGISTERED"; 2260 case 0xC0020010: 2261 return "RPC_NT_NOT_LISTENING"; 2262 case 0xC0020011: 2263 return "RPC_NT_UNKNOWN_MGR_TYPE"; 2264 case 0xC0020012: 2265 return "RPC_NT_UNKNOWN_IF"; 2266 case 0xC0020013: 2267 return "RPC_NT_NO_BINDINGS"; 2268 case 0xC0020014: 2269 return "RPC_NT_NO_PROTSEQS"; 2270 case 0xC0020015: 2271 return "RPC_NT_CANT_CREATE_ENDPOINT"; 2272 case 0xC0020016: 2273 return "RPC_NT_OUT_OF_RESOURCES"; 2274 case 0xC0020017: 2275 return "RPC_NT_SERVER_UNAVAILABLE"; 2276 case 0xC0020018: 2277 return "RPC_NT_SERVER_TOO_BUSY"; 2278 case 0xC0020019: 2279 return "RPC_NT_INVALID_NETWORK_OPTIONS"; 2280 case 0xC002001A: 2281 return "RPC_NT_NO_CALL_ACTIVE"; 2282 case 0xC002001B: 2283 return "RPC_NT_CALL_FAILED"; 2284 case 0xC002001C: 2285 return "RPC_NT_CALL_FAILED_DNE"; 2286 case 0xC002001D: 2287 return "RPC_NT_PROTOCOL_ERROR"; 2288 case 0xC002001F: 2289 return "RPC_NT_UNSUPPORTED_TRANS_SYN"; 2290 case 0xC0020021: 2291 return "RPC_NT_UNSUPPORTED_TYPE"; 2292 case 0xC0020022: 2293 return "RPC_NT_INVALID_TAG"; 2294 case 0xC0020023: 2295 return "RPC_NT_INVALID_BOUND"; 2296 case 0xC0020024: 2297 return "RPC_NT_NO_ENTRY_NAME"; 2298 case 0xC0020025: 2299 return "RPC_NT_INVALID_NAME_SYNTAX"; 2300 case 0xC0020026: 2301 return "RPC_NT_UNSUPPORTED_NAME_SYNTAX"; 2302 case 0xC0020028: 2303 return "RPC_NT_UUID_NO_ADDRESS"; 2304 case 0xC0020029: 2305 return "RPC_NT_DUPLICATE_ENDPOINT"; 2306 case 0xC002002A: 2307 return "RPC_NT_UNKNOWN_AUTHN_TYPE"; 2308 case 0xC002002B: 2309 return "RPC_NT_MAX_CALLS_TOO_SMALL"; 2310 case 0xC002002C: 2311 return "RPC_NT_STRING_TOO_LONG"; 2312 case 0xC002002D: 2313 return "RPC_NT_PROTSEQ_NOT_FOUND"; 2314 case 0xC002002E: 2315 return "RPC_NT_PROCNUM_OUT_OF_RANGE"; 2316 case 0xC002002F: 2317 return "RPC_NT_BINDING_HAS_NO_AUTH"; 2318 case 0xC0020030: 2319 return "RPC_NT_UNKNOWN_AUTHN_SERVICE"; 2320 case 0xC0020031: 2321 return "RPC_NT_UNKNOWN_AUTHN_LEVEL"; 2322 case 0xC0020032: 2323 return "RPC_NT_INVALID_AUTH_IDENTITY"; 2324 case 0xC0020033: 2325 return "RPC_NT_UNKNOWN_AUTHZ_SERVICE"; 2326 case 0xC0020034: 2327 return "EPT_NT_INVALID_ENTRY"; 2328 case 0xC0020035: 2329 return "EPT_NT_CANT_PERFORM_OP"; 2330 case 0xC0020036: 2331 return "EPT_NT_NOT_REGISTERED"; 2332 case 0xC0020037: 2333 return "RPC_NT_NOTHING_TO_EXPORT"; 2334 case 0xC0020038: 2335 return "RPC_NT_INCOMPLETE_NAME"; 2336 case 0xC0020039: 2337 return "RPC_NT_INVALID_VERS_OPTION"; 2338 case 0xC002003A: 2339 return "RPC_NT_NO_MORE_MEMBERS"; 2340 case 0xC002003B: 2341 return "RPC_NT_NOT_ALL_OBJS_UNEXPORTED"; 2342 case 0xC002003C: 2343 return "RPC_NT_INTERFACE_NOT_FOUND"; 2344 case 0xC002003D: 2345 return "RPC_NT_ENTRY_ALREADY_EXISTS"; 2346 case 0xC002003E: 2347 return "RPC_NT_ENTRY_NOT_FOUND"; 2348 case 0xC002003F: 2349 return "RPC_NT_NAME_SERVICE_UNAVAILABLE"; 2350 case 0xC0020040: 2351 return "RPC_NT_INVALID_NAF_ID"; 2352 case 0xC0020041: 2353 return "RPC_NT_CANNOT_SUPPORT"; 2354 case 0xC0020042: 2355 return "RPC_NT_NO_CONTEXT_AVAILABLE"; 2356 case 0xC0020043: 2357 return "RPC_NT_INTERNAL_ERROR"; 2358 case 0xC0020044: 2359 return "RPC_NT_ZERO_DIVIDE"; 2360 case 0xC0020045: 2361 return "RPC_NT_ADDRESS_ERROR"; 2362 case 0xC0020046: 2363 return "RPC_NT_FP_DIV_ZERO"; 2364 case 0xC0020047: 2365 return "RPC_NT_FP_UNDERFLOW"; 2366 case 0xC0020048: 2367 return "RPC_NT_FP_OVERFLOW"; 2368 case 0xC0030001: 2369 return "RPC_NT_NO_MORE_ENTRIES"; 2370 case 0xC0030002: 2371 return "RPC_NT_SS_CHAR_TRANS_OPEN_FAIL"; 2372 case 0xC0030003: 2373 return "RPC_NT_SS_CHAR_TRANS_SHORT_FILE"; 2374 case 0xC0030004: 2375 return "RPC_NT_SS_IN_NULL_CONTEXT"; 2376 case 0xC0030005: 2377 return "RPC_NT_SS_CONTEXT_MISMATCH"; 2378 case 0xC0030006: 2379 return "RPC_NT_SS_CONTEXT_DAMAGED"; 2380 case 0xC0030007: 2381 return "RPC_NT_SS_HANDLES_MISMATCH"; 2382 case 0xC0030008: 2383 return "RPC_NT_SS_CANNOT_GET_CALL_HANDLE"; 2384 case 0xC0030009: 2385 return "RPC_NT_NULL_REF_POINTER"; 2386 case 0xC003000A: 2387 return "RPC_NT_ENUM_VALUE_OUT_OF_RANGE"; 2388 case 0xC003000B: 2389 return "RPC_NT_BYTE_COUNT_TOO_SMALL"; 2390 case 0xC003000C: 2391 return "RPC_NT_BAD_STUB_DATA"; 2392 case 0xC0020049: 2393 return "RPC_NT_CALL_IN_PROGRESS"; 2394 case 0xC002004A: 2395 return "RPC_NT_NO_MORE_BINDINGS"; 2396 case 0xC002004B: 2397 return "RPC_NT_GROUP_MEMBER_NOT_FOUND"; 2398 case 0xC002004C: 2399 return "EPT_NT_CANT_CREATE"; 2400 case 0xC002004D: 2401 return "RPC_NT_INVALID_OBJECT"; 2402 case 0xC002004F: 2403 return "RPC_NT_NO_INTERFACES"; 2404 case 0xC0020050: 2405 return "RPC_NT_CALL_CANCELLED"; 2406 case 0xC0020051: 2407 return "RPC_NT_BINDING_INCOMPLETE"; 2408 case 0xC0020052: 2409 return "RPC_NT_COMM_FAILURE"; 2410 case 0xC0020053: 2411 return "RPC_NT_UNSUPPORTED_AUTHN_LEVEL"; 2412 case 0xC0020054: 2413 return "RPC_NT_NO_PRINC_NAME"; 2414 case 0xC0020055: 2415 return "RPC_NT_NOT_RPC_ERROR"; 2416 case 0x40020056: 2417 return "RPC_NT_UUID_LOCAL_ONLY"; 2418 case 0xC0020057: 2419 return "RPC_NT_SEC_PKG_ERROR"; 2420 case 0xC0020058: 2421 return "RPC_NT_NOT_CANCELLED"; 2422 case 0xC0030059: 2423 return "RPC_NT_INVALID_ES_ACTION"; 2424 case 0xC003005A: 2425 return "RPC_NT_WRONG_ES_VERSION"; 2426 case 0xC003005B: 2427 return "RPC_NT_WRONG_STUB_VERSION"; 2428 case 0xC003005C: 2429 return "RPC_NT_INVALID_PIPE_OBJECT"; 2430 case 0xC003005D: 2431 return "RPC_NT_INVALID_PIPE_OPERATION"; 2432 case 0xC003005E: 2433 return "RPC_NT_WRONG_PIPE_VERSION"; 2434 case 0xC003005F: 2435 return "RPC_NT_PIPE_CLOSED"; 2436 case 0xC0030060: 2437 return "RPC_NT_PIPE_DISCIPLINE_ERROR"; 2438 case 0xC0030061: 2439 return "RPC_NT_PIPE_EMPTY"; 2440 case 0xC0020062: 2441 return "RPC_NT_INVALID_ASYNC_HANDLE"; 2442 case 0xC0020063: 2443 return "RPC_NT_INVALID_ASYNC_CALL"; 2444 case 0x400200AF: 2445 return "RPC_NT_SEND_INCOMPLETE"; 2446 case 0xC0140001: 2447 return "STATUS_ACPI_INVALID_OPCODE"; 2448 case 0xC0140002: 2449 return "STATUS_ACPI_STACK_OVERFLOW"; 2450 case 0xC0140003: 2451 return "STATUS_ACPI_ASSERT_FAILED"; 2452 case 0xC0140004: 2453 return "STATUS_ACPI_INVALID_INDEX"; 2454 case 0xC0140005: 2455 return "STATUS_ACPI_INVALID_ARGUMENT"; 2456 case 0xC0140006: 2457 return "STATUS_ACPI_FATAL"; 2458 case 0xC0140007: 2459 return "STATUS_ACPI_INVALID_SUPERNAME"; 2460 case 0xC0140008: 2461 return "STATUS_ACPI_INVALID_ARGTYPE"; 2462 case 0xC0140009: 2463 return "STATUS_ACPI_INVALID_OBJTYPE"; 2464 case 0xC014000A: 2465 return "STATUS_ACPI_INVALID_TARGETTYPE"; 2466 case 0xC014000B: 2467 return "STATUS_ACPI_INCORRECT_ARGUMENT_COUNT"; 2468 case 0xC014000C: 2469 return "STATUS_ACPI_ADDRESS_NOT_MAPPED"; 2470 case 0xC014000D: 2471 return "STATUS_ACPI_INVALID_EVENTTYPE"; 2472 case 0xC014000E: 2473 return "STATUS_ACPI_HANDLER_COLLISION"; 2474 case 0xC014000F: 2475 return "STATUS_ACPI_INVALID_DATA"; 2476 case 0xC0140010: 2477 return "STATUS_ACPI_INVALID_REGION"; 2478 case 0xC0140011: 2479 return "STATUS_ACPI_INVALID_ACCESS_SIZE"; 2480 case 0xC0140012: 2481 return "STATUS_ACPI_ACQUIRE_GLOBAL_LOCK"; 2482 case 0xC0140013: 2483 return "STATUS_ACPI_ALREADY_INITIALIZED"; 2484 case 0xC0140014: 2485 return "STATUS_ACPI_NOT_INITIALIZED"; 2486 case 0xC0140015: 2487 return "STATUS_ACPI_INVALID_MUTEX_LEVEL"; 2488 case 0xC0140016: 2489 return "STATUS_ACPI_MUTEX_NOT_OWNED"; 2490 case 0xC0140017: 2491 return "STATUS_ACPI_MUTEX_NOT_OWNER"; 2492 case 0xC0140018: 2493 return "STATUS_ACPI_RS_ACCESS"; 2494 case 0xC0140019: 2495 return "STATUS_ACPI_INVALID_TABLE"; 2496 case 0xC0140020: 2497 return "STATUS_ACPI_REG_HANDLER_FAILED"; 2498 case 0xC0140021: 2499 return "STATUS_ACPI_POWER_REQUEST_FAILED"; 2500 case 0xC00A0001: 2501 return "STATUS_CTX_WINSTATION_NAME_INVALID"; 2502 case 0xC00A0002: 2503 return "STATUS_CTX_INVALID_PD"; 2504 case 0xC00A0003: 2505 return "STATUS_CTX_PD_NOT_FOUND"; 2506 case 0x400A0004: 2507 return "STATUS_CTX_CDM_CONNECT"; 2508 case 0x400A0005: 2509 return "STATUS_CTX_CDM_DISCONNECT"; 2510 case 0xC00A0006: 2511 return "STATUS_CTX_CLOSE_PENDING"; 2512 case 0xC00A0007: 2513 return "STATUS_CTX_NO_OUTBUF"; 2514 case 0xC00A0008: 2515 return "STATUS_CTX_MODEM_INF_NOT_FOUND"; 2516 case 0xC00A0009: 2517 return "STATUS_CTX_INVALID_MODEMNAME"; 2518 case 0xC00A000A: 2519 return "STATUS_CTX_RESPONSE_ERROR"; 2520 case 0xC00A000B: 2521 return "STATUS_CTX_MODEM_RESPONSE_TIMEOUT"; 2522 case 0xC00A000C: 2523 return "STATUS_CTX_MODEM_RESPONSE_NO_CARRIER"; 2524 case 0xC00A000D: 2525 return "STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE"; 2526 case 0xC00A000E: 2527 return "STATUS_CTX_MODEM_RESPONSE_BUSY"; 2528 case 0xC00A000F: 2529 return "STATUS_CTX_MODEM_RESPONSE_VOICE"; 2530 case 0xC00A0010: 2531 return "STATUS_CTX_TD_ERROR"; 2532 case 0xC00A0012: 2533 return "STATUS_CTX_LICENSE_CLIENT_INVALID"; 2534 case 0xC00A0013: 2535 return "STATUS_CTX_LICENSE_NOT_AVAILABLE"; 2536 case 0xC00A0014: 2537 return "STATUS_CTX_LICENSE_EXPIRED"; 2538 case 0xC00A0015: 2539 return "STATUS_CTX_WINSTATION_NOT_FOUND"; 2540 case 0xC00A0016: 2541 return "STATUS_CTX_WINSTATION_NAME_COLLISION"; 2542 case 0xC00A0017: 2543 return "STATUS_CTX_WINSTATION_BUSY"; 2544 case 0xC00A0018: 2545 return "STATUS_CTX_BAD_VIDEO_MODE"; 2546 case 0xC00A0022: 2547 return "STATUS_CTX_GRAPHICS_INVALID"; 2548 case 0xC00A0024: 2549 return "STATUS_CTX_NOT_CONSOLE"; 2550 case 0xC00A0026: 2551 return "STATUS_CTX_CLIENT_QUERY_TIMEOUT"; 2552 case 0xC00A0027: 2553 return "STATUS_CTX_CONSOLE_DISCONNECT"; 2554 case 0xC00A0028: 2555 return "STATUS_CTX_CONSOLE_CONNECT"; 2556 case 0xC00A002A: 2557 return "STATUS_CTX_SHADOW_DENIED"; 2558 case 0xC00A002B: 2559 return "STATUS_CTX_WINSTATION_ACCESS_DENIED"; 2560 case 0xC00A002E: 2561 return "STATUS_CTX_INVALID_WD"; 2562 case 0xC00A002F: 2563 return "STATUS_CTX_WD_NOT_FOUND"; 2564 case 0xC00A0030: 2565 return "STATUS_CTX_SHADOW_INVALID"; 2566 case 0xC00A0031: 2567 return "STATUS_CTX_SHADOW_DISABLED"; 2568 case 0xC00A0032: 2569 return "STATUS_RDP_PROTOCOL_ERROR"; 2570 case 0xC00A0033: 2571 return "STATUS_CTX_CLIENT_LICENSE_NOT_SET"; 2572 case 0xC00A0034: 2573 return "STATUS_CTX_CLIENT_LICENSE_IN_USE"; 2574 case 0xC0040035: 2575 return "STATUS_PNP_BAD_MPS_TABLE"; 2576 case 0xC0040036: 2577 return "STATUS_PNP_TRANSLATION_FAILED"; 2578 case 0xC0040037: 2579 return "STATUS_PNP_IRQ_TRANSLATION_FAILED"; 2580 default: 2581 return "STATUS_UNKNOWN"; 2582 } 2583 } 2584 2585 2586 /* avoid stack overflow for dead symlinks */ 2587 2588 VOID 2589 Ext2TraceMcb(PCHAR fn, USHORT lc, USHORT add, PEXT2_MCB Mcb) { 2590 int i; 2591 CHAR _space[33]; 2592 2593 _snprintf(&_space[0], 32, "%s:%d:", fn, lc); 2594 _space[32] = 0; 2595 i = strlen(_space); 2596 while (i < 32) { 2597 _space[i++] = ' '; 2598 _space[i]=0; 2599 } 2600 if (add) { 2601 Ext2ReferXcb(&Mcb->Refercount); 2602 DEBUG(DL_RES, ("%s +%2u %wZ (%p)\n", _space, (Mcb->Refercount - 1), &Mcb->FullName, Mcb)); 2603 } else { 2604 Ext2DerefXcb(&Mcb->Refercount); 2605 DEBUG(DL_RES, ("%s -%2u %wZ (%p)\n", _space, Mcb->Refercount, &Mcb->FullName, Mcb)); 2606 } 2607 } 2608 2609 KSPIN_LOCK Ext2MemoryLock; 2610 ULONGLONG Ext2TotalMemorySize = 0; 2611 ULONG Ext2TotalAllocates = 0; 2612 2613 PVOID 2614 Ext2AllocatePool( 2615 IN POOL_TYPE PoolType, 2616 IN SIZE_T NumberOfBytes, 2617 IN ULONG Tag 2618 ) 2619 { 2620 PUCHAR Buffer = ExAllocatePoolWithTag( 2621 PoolType, 2622 0x20 + NumberOfBytes, 2623 Tag); 2624 if (Buffer) { 2625 KIRQL Irql = 0; 2626 PULONG Data = (PULONG)Buffer; 2627 Data[0] = (ULONG)NumberOfBytes; 2628 Data[1] = (ULONG)NumberOfBytes + 0x20; 2629 memset(Buffer + 0x08, 'S', 8); 2630 memset(Buffer + 0x10 + NumberOfBytes, 'E', 0x10); 2631 Buffer += 0x10; 2632 KeAcquireSpinLock(&Ext2MemoryLock, &Irql); 2633 Ext2TotalMemorySize = Ext2TotalMemorySize + NumberOfBytes; 2634 Ext2TotalAllocates += 1; 2635 KeReleaseSpinLock(&Ext2MemoryLock, Irql); 2636 } 2637 2638 return Buffer; 2639 } 2640 2641 VOID 2642 Ext2FreePool( 2643 IN PVOID P, 2644 IN ULONG Tag 2645 ) 2646 { 2647 PUCHAR Buffer = (PUCHAR)P; 2648 PULONG Data; 2649 ULONG NumberOfBytes, i; 2650 KIRQL Irql; 2651 2652 Buffer -= 0x10; 2653 Data = (PULONG)(Buffer); 2654 NumberOfBytes = Data[0]; 2655 if (Data[1] != NumberOfBytes + 0x20) { 2656 DbgBreak(); 2657 return; 2658 } 2659 for (i=0x08; i < 0x10; i++) { 2660 if (Buffer[i] != 'S') { 2661 DbgBreak(); 2662 } 2663 Buffer[i] = '-'; 2664 } 2665 for (i=0; i < 0x10; i++) { 2666 if (Buffer[i + NumberOfBytes + 0x10] != 'E') { 2667 DbgBreak(); 2668 return; 2669 } 2670 Buffer[i + NumberOfBytes + 0x10] = '-'; 2671 } 2672 2673 KeAcquireSpinLock(&Ext2MemoryLock, &Irql); 2674 Ext2TotalMemorySize = Ext2TotalMemorySize - NumberOfBytes; 2675 Ext2TotalAllocates -= 1; 2676 KeReleaseSpinLock(&Ext2MemoryLock, Irql); 2677 2678 ExFreePoolWithTag(Buffer, Tag); 2679 } 2680 2681 #else // EXT2_DEBUG 2682 2683 PVOID 2684 Ext2AllocatePool( 2685 IN POOL_TYPE PoolType, 2686 IN SIZE_T NumberOfBytes, 2687 IN ULONG Tag 2688 ) 2689 { 2690 return ExAllocatePoolWithTag( 2691 PoolType, 2692 NumberOfBytes, 2693 Tag); 2694 } 2695 2696 VOID 2697 Ext2FreePool( 2698 IN PVOID P, 2699 IN ULONG Tag 2700 ) 2701 { 2702 ExFreePoolWithTag(P, Tag); 2703 } 2704 2705 #endif // !EXT2_DEBUG 2706