Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / drivers / filesystems / reiserfs / src / debug.c
1 /*
2 * COPYRIGHT: GNU GENERAL PUBLIC LICENSE VERSION 2
3 * PROJECT: ReiserFs file system driver for Windows NT/2000/XP/Vista.
4 * FILE: debug.c
5 * PURPOSE:
6 * PROGRAMMER: Mark Piper, Matt Wu, Bo Brantén.
7 * HOMEPAGE:
8 * UPDATE HISTORY:
9 */
10
11 #if DBG
12
13 /* INCLUDES **************************************************************/
14
15 #include "stdarg.h"
16 #include "stdio.h"
17 #include "rfsd.h"
18
19 /* GLOBALS ***************************************************************/
20
21 #define SYSTEM_PROCESS_NAME "System"
22
23 extern PRFSD_GLOBAL RfsdGlobal;
24
25 LONG DebugLevel = DBG_USER;
26
27 ULONG ProcessNameOffset = 0;
28
29 /* DEFINITIONS ***********************************************************/
30
31 #ifdef ALLOC_PRAGMA
32 //#pragma alloc_text (PAGE, RfsdPrintf)
33 //#pragma alloc_text (PAGE, RfsdNIPrintf)
34 #pragma alloc_text (PAGE, RfsdGetProcessNameOffset)
35 //#pragma alloc_text (PAGE, RfsdDbgPrintCall)
36 //#pragma alloc_text (PAGE, RfsdDbgPrintComplete)
37 //#pragma alloc_text (PAGE, RfsdNtStatusToString)
38 #endif // ALLOC_PRAGMA
39
40 /* Static Definitions ****************************************************/
41
42 #define MAX_IRP_IDENTIFIER 28
43 static PUCHAR IrpMjStrings[] = {
44 "IRP_MJ_CREATE",
45 "IRP_MJ_CREATE_NAMED_PIPE",
46 "IRP_MJ_CLOSE",
47 "IRP_MJ_READ",
48 "IRP_MJ_WRITE",
49 "IRP_MJ_QUERY_INFORMATION",
50 "IRP_MJ_SET_INFORMATION",
51 "IRP_MJ_QUERY_EA",
52 "IRP_MJ_SET_EA",
53 "IRP_MJ_FLUSH_BUFFERS",
54 "IRP_MJ_QUERY_VOLUME_INFORMATION",
55 "IRP_MJ_SET_VOLUME_INFORMATION",
56 "IRP_MJ_DIRECTORY_CONTROL",
57 "IRP_MJ_FILE_SYSTEM_CONTROL",
58 "IRP_MJ_DEVICE_CONTROL",
59 "IRP_MJ_INTERNAL_DEVICE_CONTROL",
60 "IRP_MJ_SHUTDOWN",
61 "IRP_MJ_LOCK_CONTROL",
62 "IRP_MJ_CLEANUP",
63 "IRP_MJ_CREATE_MAILSLOT",
64 "IRP_MJ_QUERY_SECURITY",
65 "IRP_MJ_SET_SECURITY",
66 "IRP_MJ_POWER",
67 "IRP_MJ_SYSTEM_CONTROL",
68 "IRP_MJ_DEVICE_CHANGE",
69 "IRP_MJ_QUERY_QUOTA",
70 "IRP_MJ_SET_QUOTA",
71 "IRP_MJ_PNP"
72 };
73
74 static PUCHAR FileInformationClassStrings[] = {
75 "Unknown FileInformationClass 0",
76 "FileDirectoryInformation",
77 "FileFullDirectoryInformation",
78 "FileBothDirectoryInformation",
79 "FileBasicInformation",
80 "FileStandardInformation",
81 "FileInternalInformation",
82 "FileEaInformation",
83 "FileAccessInformation",
84 "FileNameInformation",
85 "FileRenameInformation",
86 "FileLinkInformation",
87 "FileNamesInformation",
88 "FileDispositionInformation",
89 "FilePositionInformation",
90 "FileFullEaInformation",
91 "FileModeInformation",
92 "FileAlignmentInformation",
93 "FileAllInformation",
94 "FileAllocationInformation",
95 "FileEndOfFileInformation",
96 "FileAlternateNameInformation",
97 "FileStreamInformation",
98 "FilePipeInformation",
99 "FilePipeLocalInformation",
100 "FilePipeRemoteInformation",
101 "FileMailslotQueryInformation",
102 "FileMailslotSetInformation",
103 "FileCompressionInformation",
104 "FileObjectIdInformation",
105 "FileCompletionInformation",
106 "FileMoveClusterInformation",
107 "FileQuotaInformation",
108 "FileReparsePointInformation",
109 "FileNetworkOpenInformation",
110 "FileAttributeTagInformation",
111 "FileTrackingInformation"
112 };
113
114 static PUCHAR FsInformationClassStrings[] = {
115 "Unknown FsInformationClass 0",
116 "FileFsVolumeInformation",
117 "FileFsLabelInformation",
118 "FileFsSizeInformation",
119 "FileFsDeviceInformation",
120 "FileFsAttributeInformation",
121 "FileFsControlInformation",
122 "FileFsFullSizeInformation",
123 "FileFsObjectIdInformation"
124 };
125
126 /*
127 * RfsdPrintf
128 * This function is variable-argument, level-sensitive debug print routine.
129 * If the specified debug level for the print statement is lower or equal
130 * to the current debug level, the message will be printed.
131 *
132 * Arguments:
133 * DebugPrintLevel - Specifies at which debugging level the string should
134 * be printed
135 * DebugMessage - Variable argument ascii c string
136 *
137 * Return Value:
138 * N/A
139 *
140 * NOTES:
141 * N/A
142 */
143
144 VOID
145 RfsdPrintf(
146 LONG DebugPrintLevel,
147 PCHAR DebugMessage,
148 ...
149 )
150 {
151 va_list ap;
152 LARGE_INTEGER CurrentTime;
153 TIME_FIELDS TimeFields;
154
155 ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);
156
157 if (DebugPrintLevel <= DebugLevel) {
158 CHAR Buffer[0x100];
159 va_start(ap, DebugMessage);
160
161 KeQuerySystemTime( &CurrentTime);
162 RtlTimeToTimeFields(&CurrentTime, &TimeFields);
163
164 vsprintf(Buffer, DebugMessage, ap);
165
166 /*DbgPrint(DRIVER_NAME": %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s",
167 TimeFields.Hour, TimeFields.Minute,
168 TimeFields.Second, TimeFields.Milliseconds,
169 PsGetCurrentThread(), Buffer);*/
170
171 DbgPrint(DRIVER_NAME": %s",
172 Buffer);
173
174 va_end(ap);
175 }
176
177
178 ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);
179
180 } // RfsdPrintf()
181
182 /*
183 * RfsdNIPrintf
184 * This function is variable-argument, level-sensitive debug print routine.
185 * If the specified debug level for the print statement is lower or equal
186 * to the current debug level, the message will be printed.
187 *
188 * Arguments:
189 * DebugPrintLevel - Specifies at which debugging level the string should
190 * be printed
191 * DebugMessage - Variable argument ascii c string
192 *
193 * Return Value:
194 * N/A
195 *
196 * NOTES:
197 * N/A
198 */
199
200 VOID
201 RfsdNIPrintf(
202 LONG DebugPrintLevel,
203 PCHAR DebugMessage,
204 ...
205 )
206 {
207 va_list ap;
208 LARGE_INTEGER CurrentTime;
209 TIME_FIELDS TimeFields;
210
211 ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);
212
213 if (DebugPrintLevel <= DebugLevel) {
214 CHAR Buffer[0x100];
215 va_start(ap, DebugMessage);
216
217 KeQuerySystemTime( &CurrentTime);
218 RtlTimeToTimeFields(&CurrentTime, &TimeFields);
219
220 vsprintf(Buffer, DebugMessage, ap);
221
222 DbgPrint(DRIVER_NAME": %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s",
223 TimeFields.Hour, TimeFields.Minute,
224 TimeFields.Second, TimeFields.Milliseconds,
225 PsGetCurrentThread(), Buffer);
226
227 va_end(ap);
228 }
229
230
231 ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL);
232
233 } // RfsdNIPrintf()
234
235 ULONG
236 RfsdGetProcessNameOffset ( VOID )
237 {
238 PEPROCESS Process;
239 ULONG i;
240
241 PAGED_CODE();
242
243 Process = PsGetCurrentProcess();
244
245 for(i = 0; i < PAGE_SIZE; i++) {
246 if(!strncmp(
247 SYSTEM_PROCESS_NAME,
248 (PCHAR) Process + i,
249 strlen(SYSTEM_PROCESS_NAME)
250 )) {
251
252 return i;
253 }
254 }
255
256 RfsdPrint((DBG_ERROR, ": *** FsdGetProcessNameOffset failed ***\n"));
257
258 return 0;
259 }
260
261 VOID
262 RfsdDbgPrintCall (IN PDEVICE_OBJECT DeviceObject,
263 IN PIRP Irp )
264 {
265 PIO_STACK_LOCATION IoStackLocation;
266 PFILE_OBJECT FileObject;
267 PUCHAR FileName;
268 PRFSD_FCB Fcb;
269 FILE_INFORMATION_CLASS FileInformationClass;
270 FS_INFORMATION_CLASS FsInformationClass;
271
272 IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
273
274 FileObject = IoStackLocation->FileObject;
275
276 FileName = "Unknown";
277
278 if (DeviceObject == RfsdGlobal->DeviceObject) {
279
280 FileName = "\\" DRIVER_NAME;
281
282 } else if (FileObject && FileObject->FsContext) {
283
284 Fcb = (PRFSD_FCB) FileObject->FsContext;
285
286 if (Fcb->Identifier.Type == RFSDVCB) {
287 FileName = "\\Volume";
288 } else if (Fcb->Identifier.Type == RFSDFCB && Fcb->AnsiFileName.Buffer) {
289 FileName = Fcb->AnsiFileName.Buffer;
290 }
291 }
292
293 switch (IoStackLocation->MajorFunction) {
294
295 case IRP_MJ_CREATE:
296
297 FileName = NULL;
298
299 if (DeviceObject == RfsdGlobal->DeviceObject) {
300 FileName = "\\" DRIVER_NAME;
301 } else if (FileObject && FileObject->FileName.Length == 0) {
302 FileName = "\\Volume";
303 }
304
305 if (FileName) {
306 RfsdPrintNoIndent((DBG_TRACE, "%s %s %s\n",
307 RfsdGetCurrentProcessName(),
308 IrpMjStrings[IoStackLocation->MajorFunction],
309 FileName
310 ));
311 } else if (FileObject && FileObject->FileName.Buffer) {
312 RfsdPrintNoIndent((DBG_TRACE, "%s %s %S\n",
313 RfsdGetCurrentProcessName(),
314 IrpMjStrings[IoStackLocation->MajorFunction],
315 IoStackLocation->FileObject->FileName.Buffer
316 ));
317 } else {
318 RfsdPrintNoIndent((
319 DBG_TRACE, "%s %s %s\n",
320 RfsdGetCurrentProcessName(),
321 IrpMjStrings[IoStackLocation->MajorFunction],
322 "Unknown"
323 ));
324 }
325
326 break;
327
328 case IRP_MJ_CLOSE:
329
330 RfsdPrintNoIndent((
331 DBG_TRACE, "%s %s %s\n",
332 RfsdGetCurrentProcessName(),
333 IrpMjStrings[IoStackLocation->MajorFunction],
334 FileName
335 ));
336
337 break;
338
339 case IRP_MJ_READ:
340
341 if (IoStackLocation->MinorFunction & IRP_MN_COMPLETE) {
342 RfsdPrintNoIndent((
343 DBG_TRACE, "%s %s %s IRP_MN_COMPLETE\n",
344 RfsdGetCurrentProcessName(),
345 IrpMjStrings[IoStackLocation->MajorFunction],
346 FileName
347 ));
348 } else {
349 RfsdPrintNoIndent((
350 DBG_TRACE, "%s %s %s Offset: %I64xh Length: %xh %s%s%s%s%s%s\n",
351 RfsdGetCurrentProcessName(),
352 IrpMjStrings[IoStackLocation->MajorFunction],
353 FileName,
354 IoStackLocation->Parameters.Read.ByteOffset.QuadPart,
355 IoStackLocation->Parameters.Read.Length,
356 (IoStackLocation->MinorFunction & IRP_MN_DPC ? "IRP_MN_DPC " : " "),
357 (IoStackLocation->MinorFunction & IRP_MN_MDL ? "IRP_MN_MDL " : " "),
358 (IoStackLocation->MinorFunction & IRP_MN_COMPRESSED ? "IRP_MN_COMPRESSED " : " "),
359 (Irp->Flags & IRP_PAGING_IO ? "IRP_PAGING_IO " : " "),
360 (Irp->Flags & IRP_NOCACHE ? "IRP_NOCACHE " : " "),
361 (FileObject->Flags & FO_SYNCHRONOUS_IO ? "FO_SYNCHRONOUS_IO " : " ")
362 ));
363 }
364
365 break;
366
367 case IRP_MJ_WRITE:
368
369 if (IoStackLocation->MinorFunction & IRP_MN_COMPLETE) {
370 RfsdPrintNoIndent((
371 DBG_TRACE, "%s %s %s IRP_MN_COMPLETE\n",
372 RfsdGetCurrentProcessName(),
373 IrpMjStrings[IoStackLocation->MajorFunction],
374 FileName
375 ));
376 } else {
377 RfsdPrintNoIndent((
378 DBG_TRACE, "%s %s %s Offset: %I64xh Length: %xh %s%s%s%s%s%s\n",
379 RfsdGetCurrentProcessName(),
380 IrpMjStrings[IoStackLocation->MajorFunction],
381 FileName,
382 IoStackLocation->Parameters.Read.ByteOffset.QuadPart,
383 IoStackLocation->Parameters.Read.Length,
384 (IoStackLocation->MinorFunction & IRP_MN_DPC ? "IRP_MN_DPC " : " "),
385 (IoStackLocation->MinorFunction & IRP_MN_MDL ? "IRP_MN_MDL " : " "),
386 (IoStackLocation->MinorFunction & IRP_MN_COMPRESSED ? "IRP_MN_COMPRESSED " : " "),
387 (Irp->Flags & IRP_PAGING_IO ? "IRP_PAGING_IO " : " "),
388 (Irp->Flags & IRP_NOCACHE ? "IRP_NOCACHE " : " "),
389 (FileObject->Flags & FO_SYNCHRONOUS_IO ? "FO_SYNCHRONOUS_IO " : " ")
390 ));
391 }
392
393 break;
394
395 case IRP_MJ_QUERY_INFORMATION:
396
397 FileInformationClass =
398 IoStackLocation->Parameters.QueryFile.FileInformationClass;
399
400 if (FileInformationClass <= FileMaximumInformation) {
401 RfsdPrintNoIndent((
402 DBG_TRACE, "%s %s %s %s\n",
403 RfsdGetCurrentProcessName(),
404 IrpMjStrings[IoStackLocation->MajorFunction],
405 FileName,
406 FileInformationClassStrings[FileInformationClass]
407 ));
408 } else {
409 RfsdPrintNoIndent((
410 DBG_TRACE,
411 "%s %s %s Unknown FileInformationClass %u\n",
412 RfsdGetCurrentProcessName(),
413 IrpMjStrings[IoStackLocation->MajorFunction],
414 FileName,
415 FileInformationClass
416 ));
417 }
418
419 break;
420
421 case IRP_MJ_SET_INFORMATION:
422
423 FileInformationClass =
424 IoStackLocation->Parameters.SetFile.FileInformationClass;
425
426 if (FileInformationClass <= FileMaximumInformation) {
427 RfsdPrintNoIndent((
428 DBG_TRACE, "%s %s %s %s\n",
429 RfsdGetCurrentProcessName(),
430 IrpMjStrings[IoStackLocation->MajorFunction],
431 FileName,
432 FileInformationClassStrings[FileInformationClass]
433 ));
434 } else {
435 RfsdPrintNoIndent((
436 DBG_TRACE,
437 "%s %s %s Unknown FileInformationClass %u\n",
438 RfsdGetCurrentProcessName(),
439 IrpMjStrings[IoStackLocation->MajorFunction],
440 FileName,
441 FileInformationClass
442 ));
443 }
444
445 break;
446
447 case IRP_MJ_QUERY_VOLUME_INFORMATION:
448
449 FsInformationClass =
450 IoStackLocation->Parameters.QueryVolume.FsInformationClass;
451
452 if (FsInformationClass <= FileFsMaximumInformation) {
453 RfsdPrintNoIndent((
454 DBG_TRACE, "%s %s %s %s\n",
455 RfsdGetCurrentProcessName(),
456 IrpMjStrings[IoStackLocation->MajorFunction],
457 FileName,
458 FsInformationClassStrings[FsInformationClass]
459 ));
460 } else {
461 RfsdPrintNoIndent((
462 DBG_TRACE,
463 "%s %s %s Unknown FsInformationClass %u\n",
464 RfsdGetCurrentProcessName(),
465 IrpMjStrings[IoStackLocation->MajorFunction],
466 FileName,
467 FsInformationClass
468 ));
469 }
470
471 break;
472
473 case IRP_MJ_DIRECTORY_CONTROL:
474
475 if (IoStackLocation->MinorFunction & IRP_MN_QUERY_DIRECTORY) {
476
477 #ifndef _GNU_NTIFS_
478 FileInformationClass =
479 IoStackLocation->Parameters.QueryDirectory.FileInformationClass;
480 #else
481 FileInformationClass = ((PEXTENDED_IO_STACK_LOCATION)
482 IoStackLocation)->Parameters.QueryDirectory.FileInformationClass;
483 #endif
484
485 if (FileInformationClass <= FileMaximumInformation) {
486 RfsdPrintNoIndent((
487 DBG_TRACE, "%s %s %s %s\n",
488 RfsdGetCurrentProcessName(),
489 IrpMjStrings[IoStackLocation->MajorFunction],
490 FileName,
491 FileInformationClassStrings[FileInformationClass]
492 ));
493
494 if (
495 #ifndef _GNU_NTIFS_
496 IoStackLocation->Parameters.QueryDirectory.FileName
497 #else
498 ((PEXTENDED_IO_STACK_LOCATION)
499 IoStackLocation)->Parameters.QueryDirectory.FileName
500 #endif
501 ) {
502 #ifndef _GNU_NTIFS_
503 RfsdPrintNoIndent((
504 DBG_TRACE, "%s FileName: %.*S FileIndex: %x %s%s%s\n",
505 RfsdGetCurrentProcessName(),
506
507 IoStackLocation->Parameters.QueryDirectory.FileName->Length / 2,
508 IoStackLocation->Parameters.QueryDirectory.FileName->Buffer,
509 IoStackLocation->Parameters.QueryDirectory.FileIndex,
510 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
511 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
512 ((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "")
513 ));
514
515 #else
516 RfsdPrintNoIndent((
517 DBG_TRACE, "%s FileName: %.*S FileIndex: %x %s%s%s\n",
518 RfsdGetCurrentProcessName(),
519
520 ((PEXTENDED_IO_STACK_LOCATION)
521 IoStackLocation)->Parameters.QueryDirectory.FileName->Length / 2,
522 ((PEXTENDED_IO_STACK_LOCATION)
523 IoStackLocation)->Parameters.QueryDirectory.FileName->Buffer,
524 ((PEXTENDED_IO_STACK_LOCATION)
525 IoStackLocation)->Parameters.QueryDirectory.FileIndex,
526 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
527 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
528 ((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "")
529 ));
530 #endif
531 } else {
532 #ifndef _GNU_NTIFS_
533 RfsdPrintNoIndent((
534 DBG_TRACE, "%s FileName: FileIndex: %#x %s%s%s\n",
535 RfsdGetCurrentProcessName(),
536 IoStackLocation->Parameters.QueryDirectory.FileIndex,
537 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
538 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
539 (IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "")
540 ));
541 #else
542 RfsdPrintNoIndent((
543 DBG_TRACE, "%s FileName: FileIndex: %#x %s%s%s\n",
544 RfsdGetCurrentProcessName(),
545 ((PEXTENDED_IO_STACK_LOCATION)
546 IoStackLocation)->Parameters.QueryDirectory.FileIndex,
547 (IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
548 (IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
549 (IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "")
550 ));
551 #endif
552 }
553 } else {
554 RfsdPrintNoIndent((
555 DBG_TRACE,
556 "%s %s %s Unknown FileInformationClass %u\n",
557 RfsdGetCurrentProcessName(),
558 IrpMjStrings[IoStackLocation->MajorFunction],
559 FileName,
560 FileInformationClass
561 ));
562 }
563 } else if (IoStackLocation->MinorFunction & IRP_MN_NOTIFY_CHANGE_DIRECTORY) {
564 RfsdPrintNoIndent((
565 DBG_TRACE, "%s %s %s IRP_MN_NOTIFY_CHANGE_DIRECTORY\n",
566 RfsdGetCurrentProcessName(),
567 IrpMjStrings[IoStackLocation->MajorFunction],
568 FileName
569 ));
570 } else {
571 RfsdPrintNoIndent((
572 DBG_TRACE, "%s %s %s Unknown minor function %#x\n",
573 RfsdGetCurrentProcessName(),
574 IrpMjStrings[IoStackLocation->MajorFunction],
575 FileName,
576 IoStackLocation->MinorFunction
577 ));
578 }
579
580 break;
581
582 case IRP_MJ_FILE_SYSTEM_CONTROL:
583
584 if (IoStackLocation->MinorFunction == IRP_MN_USER_FS_REQUEST) {
585 #ifndef _GNU_NTIFS_
586 RfsdPrintNoIndent((
587 DBG_TRACE,
588 "%s %s %s IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
589 RfsdGetCurrentProcessName(),
590 IrpMjStrings[IoStackLocation->MajorFunction],
591 FileName,
592 IoStackLocation->Parameters.FileSystemControl.FsControlCode
593 ));
594 #else
595 RfsdPrintNoIndent((
596 DBG_TRACE,
597 "%s %s %s IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
598 RfsdGetCurrentProcessName(),
599 IrpMjStrings[IoStackLocation->MajorFunction],
600 FileName,
601 ((PEXTENDED_IO_STACK_LOCATION)
602 IoStackLocation)->Parameters.FileSystemControl.FsControlCode
603 ));
604 #endif
605 } else if (IoStackLocation->MinorFunction == IRP_MN_MOUNT_VOLUME) {
606 RfsdPrintNoIndent((
607 DBG_TRACE,
608 "%s %s %s IRP_MN_MOUNT_VOLUME DeviceObject: %#x\n",
609 RfsdGetCurrentProcessName(),
610 IrpMjStrings[IoStackLocation->MajorFunction],
611 FileName,
612 IoStackLocation->Parameters.MountVolume.DeviceObject
613 ));
614 } else if (IoStackLocation->MinorFunction == IRP_MN_VERIFY_VOLUME) {
615 RfsdPrintNoIndent((
616 DBG_TRACE,
617 "%s %s %s IRP_MN_VERIFY_VOLUME DeviceObject: %#x\n",
618 RfsdGetCurrentProcessName(),
619 IrpMjStrings[IoStackLocation->MajorFunction],
620 FileName,
621 IoStackLocation->Parameters.VerifyVolume.DeviceObject
622 ));
623 } else if (IoStackLocation->MinorFunction == IRP_MN_LOAD_FILE_SYSTEM) {
624 RfsdPrintNoIndent((
625 DBG_TRACE, "%s %s %s IRP_MN_LOAD_FILE_SYSTEM\n",
626 RfsdGetCurrentProcessName(),
627 IrpMjStrings[IoStackLocation->MajorFunction],
628 FileName
629 ));
630 }
631 #if (_WIN32_WINNT >= 0x0500)
632 else if (IoStackLocation->MinorFunction == IRP_MN_KERNEL_CALL) {
633 RfsdPrintNoIndent((
634 DBG_TRACE, "%s %s %s IRP_MN_KERNEL_CALL\n",
635 RfsdGetCurrentProcessName(),
636 IrpMjStrings[IoStackLocation->MajorFunction],
637 FileName
638 ));
639 }
640 #endif // (_WIN32_WINNT >= 0x0500)
641 else {
642 RfsdPrintNoIndent((
643 DBG_TRACE, "%s %s %s Unknown minor function %#x\n",
644 RfsdGetCurrentProcessName(),
645 IrpMjStrings[IoStackLocation->MajorFunction],
646 FileName,
647 IoStackLocation->MinorFunction
648 ));
649 }
650
651 break;
652
653 case IRP_MJ_DEVICE_CONTROL:
654
655 RfsdPrintNoIndent((
656 DBG_TRACE, "%s %s %s IoControlCode: %#x\n",
657 RfsdGetCurrentProcessName(),
658 IrpMjStrings[IoStackLocation->MajorFunction],
659 FileName,
660 IoStackLocation->Parameters.DeviceIoControl.IoControlCode
661 ));
662
663 break;
664
665 case IRP_MJ_LOCK_CONTROL:
666
667 if (IoStackLocation->MinorFunction & IRP_MN_LOCK) {
668 #ifndef _GNU_NTIFS_
669 RfsdPrintNoIndent((
670 DBG_TRACE, "%s %s %s IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n",
671 RfsdGetCurrentProcessName(),
672 IrpMjStrings[IoStackLocation->MajorFunction],
673 FileName,
674 IoStackLocation->Parameters.LockControl.ByteOffset.QuadPart,
675 IoStackLocation->Parameters.LockControl.Length->QuadPart,
676 IoStackLocation->Parameters.LockControl.Key,
677 (IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""),
678 (IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "")
679 ));
680 #else
681 RfsdPrintNoIndent((
682 DBG_TRACE, "%s %s %s IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n",
683 RfsdGetCurrentProcessName(),
684 IrpMjStrings[IoStackLocation->MajorFunction],
685 FileName,
686 ((PEXTENDED_IO_STACK_LOCATION)
687 IoStackLocation)->Parameters.LockControl.ByteOffset.QuadPart,
688 ((PEXTENDED_IO_STACK_LOCATION)
689 IoStackLocation)->Parameters.LockControl.Length->QuadPart,
690 ((PEXTENDED_IO_STACK_LOCATION)
691 IoStackLocation)->Parameters.LockControl.Key,
692 (IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""),
693 (IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "")
694 ));
695 #endif
696 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_SINGLE) {
697 #ifndef _GNU_NTIFS_
698 RfsdPrintNoIndent((
699 DBG_TRACE, "%s %s %s IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n",
700 RfsdGetCurrentProcessName(),
701 IrpMjStrings[IoStackLocation->MajorFunction],
702 FileName,
703 IoStackLocation->Parameters.LockControl.ByteOffset.QuadPart,
704 IoStackLocation->Parameters.LockControl.Length->QuadPart,
705 IoStackLocation->Parameters.LockControl.Key
706 ));
707 #else
708 RfsdPrintNoIndent((
709 DBG_TRACE, "%s %s %s IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n",
710 RfsdGetCurrentProcessName(),
711 IrpMjStrings[IoStackLocation->MajorFunction],
712 FileName,
713 ((PEXTENDED_IO_STACK_LOCATION)
714 IoStackLocation)->Parameters.LockControl.ByteOffset.QuadPart,
715 ((PEXTENDED_IO_STACK_LOCATION)
716 IoStackLocation)->Parameters.LockControl.Length->QuadPart,
717 ((PEXTENDED_IO_STACK_LOCATION)
718 IoStackLocation)->Parameters.LockControl.Key
719 ));
720 #endif
721 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_ALL) {
722 RfsdPrintNoIndent((
723 DBG_TRACE, "%s %s %s IRP_MN_UNLOCK_ALL\n",
724 RfsdGetCurrentProcessName(),
725 IrpMjStrings[IoStackLocation->MajorFunction],
726 FileName
727 ));
728 } else if (IoStackLocation->MinorFunction & IRP_MN_UNLOCK_ALL_BY_KEY) {
729 #ifndef _GNU_NTIFS_
730 RfsdPrintNoIndent((
731 DBG_TRACE, "%s %s %s IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n",
732 RfsdGetCurrentProcessName(),
733 IrpMjStrings[IoStackLocation->MajorFunction],
734 FileName,
735 IoStackLocation->Parameters.LockControl.Key
736 ));
737 #else
738 RfsdPrintNoIndent((
739 DBG_TRACE, "%s %s %s IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n",
740 RfsdGetCurrentProcessName(),
741 IrpMjStrings[IoStackLocation->MajorFunction],
742 FileName,
743 ((PEXTENDED_IO_STACK_LOCATION)
744 IoStackLocation)->Parameters.LockControl.Key
745 ));
746 #endif
747 } else {
748 RfsdPrintNoIndent((
749 DBG_TRACE, "%s %s %s Unknown minor function %#x\n",
750 RfsdGetCurrentProcessName(),
751 IrpMjStrings[IoStackLocation->MajorFunction],
752 FileName,
753 IoStackLocation->MinorFunction
754 ));
755 }
756
757 break;
758
759 case IRP_MJ_CLEANUP:
760
761 RfsdPrintNoIndent((
762 DBG_TRACE, "%s %s %s\n",
763 RfsdGetCurrentProcessName(),
764 IrpMjStrings[IoStackLocation->MajorFunction],
765 FileName
766 ));
767
768 break;
769
770 case IRP_MJ_SHUTDOWN:
771
772 RfsdPrintNoIndent((
773 DBG_TRACE, "%s %s %s\n",
774 RfsdGetCurrentProcessName(),
775 IrpMjStrings[IoStackLocation->MajorFunction],
776 FileName
777 ));
778
779 break;
780
781 #if (_WIN32_WINNT >= 0x0500)
782 case IRP_MJ_PNP:
783
784 RfsdPrintNoIndent((
785 DBG_TRACE, "%s %s %s\n",
786 RfsdGetCurrentProcessName(),
787 IrpMjStrings[IoStackLocation->MajorFunction],
788 FileName
789 ));
790 #endif // (_WIN32_WINNT >= 0x0500)
791 break;
792
793
794 default:
795
796 RfsdPrintNoIndent((
797 DBG_TRACE, "%s %s %s\n",
798 RfsdGetCurrentProcessName(),
799 IrpMjStrings[IoStackLocation->MajorFunction],
800 FileName
801 ));
802 }
803 }
804
805 VOID
806 RfsdDbgPrintComplete (IN PIRP Irp, IN BOOLEAN bPrint)
807 {
808 PIO_STACK_LOCATION IoStackLocation;
809
810 if (!Irp)
811 return;
812
813 if (Irp->IoStatus.Status != STATUS_SUCCESS) {
814
815 IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
816
817 if (bPrint) {
818 RfsdPrintNoIndent((
819 DBG_TRACE, "%s %s Status: %s (%#x).\n",
820 RfsdGetCurrentProcessName(),
821 IrpMjStrings[IoStackLocation->MajorFunction],
822 RfsdNtStatusToString(Irp->IoStatus.Status),
823 Irp->IoStatus.Status
824 ));
825 }
826 }
827 }
828
829 PUCHAR
830 RfsdNtStatusToString ( IN NTSTATUS Status )
831 {
832 switch (Status) {
833
834 case 0x00000000: return "STATUS_SUCCESS";
835 case 0x00000001: return "STATUS_WAIT_1";
836 case 0x00000002: return "STATUS_WAIT_2";
837 case 0x00000003: return "STATUS_WAIT_3";
838 case 0x0000003F: return "STATUS_WAIT_63";
839 case 0x00000080: return "STATUS_ABANDONED_WAIT_0";
840 case 0x000000BF: return "STATUS_ABANDONED_WAIT_63";
841 case 0x000000C0: return "STATUS_USER_APC";
842 case 0x00000100: return "STATUS_KERNEL_APC";
843 case 0x00000101: return "STATUS_ALERTED";
844 case 0x00000102: return "STATUS_TIMEOUT";
845 case 0x00000103: return "STATUS_PENDING";
846 case 0x00000104: return "STATUS_REPARSE";
847 case 0x00000105: return "STATUS_MORE_ENTRIES";
848 case 0x00000106: return "STATUS_NOT_ALL_ASSIGNED";
849 case 0x00000107: return "STATUS_SOME_NOT_MAPPED";
850 case 0x00000108: return "STATUS_OPLOCK_BREAK_IN_PROGRESS";
851 case 0x00000109: return "STATUS_VOLUME_MOUNTED";
852 case 0x0000010A: return "STATUS_RXACT_COMMITTED";
853 case 0x0000010B: return "STATUS_NOTIFY_CLEANUP";
854 case 0x0000010C: return "STATUS_NOTIFY_ENUM_DIR";
855 case 0x0000010D: return "STATUS_NO_QUOTAS_FOR_ACCOUNT";
856 case 0x0000010E: return "STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED";
857 case 0x00000110: return "STATUS_PAGE_FAULT_TRANSITION";
858 case 0x00000111: return "STATUS_PAGE_FAULT_DEMAND_ZERO";
859 case 0x00000112: return "STATUS_PAGE_FAULT_COPY_ON_WRITE";
860 case 0x00000113: return "STATUS_PAGE_FAULT_GUARD_PAGE";
861 case 0x00000114: return "STATUS_PAGE_FAULT_PAGING_FILE";
862 case 0x00000115: return "STATUS_CACHE_PAGE_LOCKED";
863 case 0x00000116: return "STATUS_CRASH_DUMP";
864 case 0x00000117: return "STATUS_BUFFER_ALL_ZEROS";
865 case 0x00000118: return "STATUS_REPARSE_OBJECT";
866 case 0x00000119: return "STATUS_RESOURCE_REQUIREMENTS_CHANGED";
867 case 0x00000120: return "STATUS_TRANSLATION_COMPLETE";
868 case 0x00000121: return "STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY";
869 case 0x00010001: return "DBG_EXCEPTION_HANDLED";
870 case 0x00010002: return "DBG_CONTINUE";
871 case 0x40000000: return "STATUS_OBJECT_NAME_EXISTS";
872 case 0x40000001: return "STATUS_THREAD_WAS_SUSPENDED";
873 case 0x40000002: return "STATUS_WORKING_SET_LIMIT_RANGE";
874 case 0x40000003: return "STATUS_IMAGE_NOT_AT_BASE";
875 case 0x40000004: return "STATUS_RXACT_STATE_CREATED";
876 case 0x40000005: return "STATUS_SEGMENT_NOTIFICATION";
877 case 0x40000006: return "STATUS_LOCAL_USER_SESSION_KEY";
878 case 0x40000007: return "STATUS_BAD_CURRENT_DIRECTORY";
879 case 0x40000008: return "STATUS_SERIAL_MORE_WRITES";
880 case 0x40000009: return "STATUS_REGISTRY_RECOVERED";
881 case 0x4000000A: return "STATUS_FT_READ_RECOVERY_FROM_BACKUP";
882 case 0x4000000B: return "STATUS_FT_WRITE_RECOVERY";
883 case 0x4000000C: return "STATUS_SERIAL_COUNTER_TIMEOUT";
884 case 0x4000000D: return "STATUS_NULL_LM_PASSWORD";
885 case 0x4000000E: return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH";
886 case 0x4000000F: return "STATUS_RECEIVE_PARTIAL";
887 case 0x40000010: return "STATUS_RECEIVE_EXPEDITED";
888 case 0x40000011: return "STATUS_RECEIVE_PARTIAL_EXPEDITED";
889 case 0x40000012: return "STATUS_EVENT_DONE";
890 case 0x40000013: return "STATUS_EVENT_PENDING";
891 case 0x40000014: return "STATUS_CHECKING_FILE_SYSTEM";
892 case 0x40000015: return "STATUS_FATAL_APP_EXIT";
893 case 0x40000016: return "STATUS_PREDEFINED_HANDLE";
894 case 0x40000017: return "STATUS_WAS_UNLOCKED";
895 case 0x40000018: return "STATUS_SERVICE_NOTIFICATION";
896 case 0x40000019: return "STATUS_WAS_LOCKED";
897 case 0x4000001A: return "STATUS_LOG_HARD_ERROR";
898 case 0x4000001B: return "STATUS_ALREADY_WIN32";
899 case 0x4000001C: return "STATUS_WX86_UNSIMULATE";
900 case 0x4000001D: return "STATUS_WX86_CONTINUE";
901 case 0x4000001E: return "STATUS_WX86_SINGLE_STEP";
902 case 0x4000001F: return "STATUS_WX86_BREAKPOINT";
903 case 0x40000020: return "STATUS_WX86_EXCEPTION_CONTINUE";
904 case 0x40000021: return "STATUS_WX86_EXCEPTION_LASTCHANCE";
905 case 0x40000022: return "STATUS_WX86_EXCEPTION_CHAIN";
906 case 0x40000023: return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE";
907 case 0x40000024: return "STATUS_NO_YIELD_PERFORMED";
908 case 0x40000025: return "STATUS_TIMER_RESUME_IGNORED";
909 case 0x40000026: return "STATUS_ARBITRATION_UNHANDLED";
910 case 0x40000027: return "STATUS_CARDBUS_NOT_SUPPORTED";
911 case 0x40000028: return "STATUS_WX86_CREATEWX86TIB";
912 case 0x40000029: return "STATUS_MP_PROCESSOR_MISMATCH";
913 case 0x40010001: return "DBG_REPLY_LATER";
914 case 0x40010002: return "DBG_UNABLE_TO_PROVIDE_HANDLE";
915 case 0x40010003: return "DBG_TERMINATE_THREAD";
916 case 0x40010004: return "DBG_TERMINATE_PROCESS";
917 case 0x40010005: return "DBG_CONTROL_C";
918 case 0x40010006: return "DBG_PRINTEXCEPTION_C";
919 case 0x40010007: return "DBG_RIPEXCEPTION";
920 case 0x40010008: return "DBG_CONTROL_BREAK";
921 case 0x80000001: return "STATUS_GUARD_PAGE_VIOLATION";
922 case 0x80000002: return "STATUS_DATATYPE_MISALIGNMENT";
923 case 0x80000003: return "STATUS_BREAKPOINT";
924 case 0x80000004: return "STATUS_SINGLE_STEP";
925 case 0x80000005: return "STATUS_BUFFER_OVERFLOW";
926 case 0x80000006: return "STATUS_NO_MORE_FILES";
927 case 0x80000007: return "STATUS_WAKE_SYSTEM_DEBUGGER";
928 case 0x8000000A: return "STATUS_HANDLES_CLOSED";
929 case 0x8000000B: return "STATUS_NO_INHERITANCE";
930 case 0x8000000C: return "STATUS_GUID_SUBSTITUTION_MADE";
931 case 0x8000000D: return "STATUS_PARTIAL_COPY";
932 case 0x8000000E: return "STATUS_DEVICE_PAPER_EMPTY";
933 case 0x8000000F: return "STATUS_DEVICE_POWERED_OFF";
934 case 0x80000010: return "STATUS_DEVICE_OFF_LINE";
935 case 0x80000011: return "STATUS_DEVICE_BUSY";
936 case 0x80000012: return "STATUS_NO_MORE_EAS";
937 case 0x80000013: return "STATUS_INVALID_EA_NAME";
938 case 0x80000014: return "STATUS_EA_LIST_INCONSISTENT";
939 case 0x80000015: return "STATUS_INVALID_EA_FLAG";
940 case 0x80000016: return "STATUS_VERIFY_REQUIRED";
941 case 0x80000017: return "STATUS_EXTRANEOUS_INFORMATION";
942 case 0x80000018: return "STATUS_RXACT_COMMIT_NECESSARY";
943 case 0x8000001A: return "STATUS_NO_MORE_ENTRIES";
944 case 0x8000001B: return "STATUS_FILEMARK_DETECTED";
945 case 0x8000001C: return "STATUS_MEDIA_CHANGED";
946 case 0x8000001D: return "STATUS_BUS_RESET";
947 case 0x8000001E: return "STATUS_END_OF_MEDIA";
948 case 0x8000001F: return "STATUS_BEGINNING_OF_MEDIA";
949 case 0x80000020: return "STATUS_MEDIA_CHECK";
950 case 0x80000021: return "STATUS_SETMARK_DETECTED";
951 case 0x80000022: return "STATUS_NO_DATA_DETECTED";
952 case 0x80000023: return "STATUS_REDIRECTOR_HAS_OPEN_HANDLES";
953 case 0x80000024: return "STATUS_SERVER_HAS_OPEN_HANDLES";
954 case 0x80000025: return "STATUS_ALREADY_DISCONNECTED";
955 case 0x80000026: return "STATUS_LONGJUMP";
956 case 0x80010001: return "DBG_EXCEPTION_NOT_HANDLED";
957 case 0xC0000001: return "STATUS_UNSUCCESSFUL";
958 case 0xC0000002: return "STATUS_NOT_IMPLEMENTED";
959 case 0xC0000003: return "STATUS_INVALID_INFO_CLASS";
960 case 0xC0000004: return "STATUS_INFO_LENGTH_MISMATCH";
961 case 0xC0000005: return "STATUS_ACCESS_VIOLATION";
962 case 0xC0000006: return "STATUS_IN_PAGE_ERROR";
963 case 0xC0000007: return "STATUS_PAGEFILE_QUOTA";
964 case 0xC0000008: return "STATUS_INVALID_HANDLE";
965 case 0xC0000009: return "STATUS_BAD_INITIAL_STACK";
966 case 0xC000000A: return "STATUS_BAD_INITIAL_PC";
967 case 0xC000000B: return "STATUS_INVALID_CID";
968 case 0xC000000C: return "STATUS_TIMER_NOT_CANCELED";
969 case 0xC000000D: return "STATUS_INVALID_PARAMETER";
970 case 0xC000000E: return "STATUS_NO_SUCH_DEVICE";
971 case 0xC000000F: return "STATUS_NO_SUCH_FILE";
972 case 0xC0000010: return "STATUS_INVALID_DEVICE_REQUEST";
973 case 0xC0000011: return "STATUS_END_OF_FILE";
974 case 0xC0000012: return "STATUS_WRONG_VOLUME";
975 case 0xC0000013: return "STATUS_NO_MEDIA_IN_DEVICE";
976 case 0xC0000014: return "STATUS_UNRECOGNIZED_MEDIA";
977 case 0xC0000015: return "STATUS_NONEXISTENT_SECTOR";
978 case 0xC0000016: return "STATUS_MORE_PROCESSING_REQUIRED";
979 case 0xC0000017: return "STATUS_NO_MEMORY";
980 case 0xC0000018: return "STATUS_CONFLICTING_ADDRESSES";
981 case 0xC0000019: return "STATUS_NOT_MAPPED_VIEW";
982 case 0xC000001A: return "STATUS_UNABLE_TO_FREE_VM";
983 case 0xC000001B: return "STATUS_UNABLE_TO_DELETE_SECTION";
984 case 0xC000001C: return "STATUS_INVALID_SYSTEM_SERVICE";
985 case 0xC000001D: return "STATUS_ILLEGAL_INSTRUCTION";
986 case 0xC000001E: return "STATUS_INVALID_LOCK_SEQUENCE";
987 case 0xC000001F: return "STATUS_INVALID_VIEW_SIZE";
988 case 0xC0000020: return "STATUS_INVALID_FILE_FOR_SECTION";
989 case 0xC0000021: return "STATUS_ALREADY_COMMITTED";
990 case 0xC0000022: return "STATUS_ACCESS_DENIED";
991 case 0xC0000023: return "STATUS_BUFFER_TOO_SMALL";
992 case 0xC0000024: return "STATUS_OBJECT_TYPE_MISMATCH";
993 case 0xC0000025: return "STATUS_NONCONTINUABLE_EXCEPTION";
994 case 0xC0000026: return "STATUS_INVALID_DISPOSITION";
995 case 0xC0000027: return "STATUS_UNWIND";
996 case 0xC0000028: return "STATUS_BAD_STACK";
997 case 0xC0000029: return "STATUS_INVALID_UNWIND_TARGET";
998 case 0xC000002A: return "STATUS_NOT_LOCKED";
999 case 0xC000002B: return "STATUS_PARITY_ERROR";
1000 case 0xC000002C: return "STATUS_UNABLE_TO_DECOMMIT_VM";
1001 case 0xC000002D: return "STATUS_NOT_COMMITTED";
1002 case 0xC000002E: return "STATUS_INVALID_PORT_ATTRIBUTES";
1003 case 0xC000002F: return "STATUS_PORT_MESSAGE_TOO_LONG";
1004 case 0xC0000030: return "STATUS_INVALID_PARAMETER_MIX";
1005 case 0xC0000031: return "STATUS_INVALID_QUOTA_LOWER";
1006 case 0xC0000032: return "STATUS_DISK_CORRUPT_ERROR";
1007 case 0xC0000033: return "STATUS_OBJECT_NAME_INVALID";
1008 case 0xC0000034: return "STATUS_OBJECT_NAME_NOT_FOUND";
1009 case 0xC0000035: return "STATUS_OBJECT_NAME_COLLISION";
1010 case 0xC0000037: return "STATUS_PORT_DISCONNECTED";
1011 case 0xC0000038: return "STATUS_DEVICE_ALREADY_ATTACHED";
1012 case 0xC0000039: return "STATUS_OBJECT_PATH_INVALID";
1013 case 0xC000003A: return "STATUS_OBJECT_PATH_NOT_FOUND";
1014 case 0xC000003B: return "STATUS_OBJECT_PATH_SYNTAX_BAD";
1015 case 0xC000003C: return "STATUS_DATA_OVERRUN";
1016 case 0xC000003D: return "STATUS_DATA_LATE_ERROR";
1017 case 0xC000003E: return "STATUS_DATA_ERROR";
1018 case 0xC000003F: return "STATUS_CRC_ERROR";
1019 case 0xC0000040: return "STATUS_SECTION_TOO_BIG";
1020 case 0xC0000041: return "STATUS_PORT_CONNECTION_REFUSED";
1021 case 0xC0000042: return "STATUS_INVALID_PORT_HANDLE";
1022 case 0xC0000043: return "STATUS_SHARING_VIOLATION";
1023 case 0xC0000044: return "STATUS_QUOTA_EXCEEDED";
1024 case 0xC0000045: return "STATUS_INVALID_PAGE_PROTECTION";
1025 case 0xC0000046: return "STATUS_MUTANT_NOT_OWNED";
1026 case 0xC0000047: return "STATUS_SEMAPHORE_LIMIT_EXCEEDED";
1027 case 0xC0000048: return "STATUS_PORT_ALREADY_SET";
1028 case 0xC0000049: return "STATUS_SECTION_NOT_IMAGE";
1029 case 0xC000004A: return "STATUS_SUSPEND_COUNT_EXCEEDED";
1030 case 0xC000004B: return "STATUS_THREAD_IS_TERMINATING";
1031 case 0xC000004C: return "STATUS_BAD_WORKING_SET_LIMIT";
1032 case 0xC000004D: return "STATUS_INCOMPATIBLE_FILE_MAP";
1033 case 0xC000004E: return "STATUS_SECTION_PROTECTION";
1034 case 0xC000004F: return "STATUS_EAS_NOT_SUPPORTED";
1035 case 0xC0000050: return "STATUS_EA_TOO_LARGE";
1036 case 0xC0000051: return "STATUS_NONEXISTENT_EA_ENTRY";
1037 case 0xC0000052: return "STATUS_NO_EAS_ON_FILE";
1038 case 0xC0000053: return "STATUS_EA_CORRUPT_ERROR";
1039 case 0xC0000054: return "STATUS_FILE_LOCK_CONFLICT";
1040 case 0xC0000055: return "STATUS_LOCK_NOT_GRANTED";
1041 case 0xC0000056: return "STATUS_DELETE_PENDING";
1042 case 0xC0000057: return "STATUS_CTL_FILE_NOT_SUPPORTED";
1043 case 0xC0000058: return "STATUS_UNKNOWN_REVISION";
1044 case 0xC0000059: return "STATUS_REVISION_MISMATCH";
1045 case 0xC000005A: return "STATUS_INVALID_OWNER";
1046 case 0xC000005B: return "STATUS_INVALID_PRIMARY_GROUP";
1047 case 0xC000005C: return "STATUS_NO_IMPERSONATION_TOKEN";
1048 case 0xC000005D: return "STATUS_CANT_DISABLE_MANDATORY";
1049 case 0xC000005E: return "STATUS_NO_LOGON_SERVERS";
1050 case 0xC000005F: return "STATUS_NO_SUCH_LOGON_SESSION";
1051 case 0xC0000060: return "STATUS_NO_SUCH_PRIVILEGE";
1052 case 0xC0000061: return "STATUS_PRIVILEGE_NOT_HELD";
1053 case 0xC0000062: return "STATUS_INVALID_ACCOUNT_NAME";
1054 case 0xC0000063: return "STATUS_USER_EXISTS";
1055 case 0xC0000064: return "STATUS_NO_SUCH_USER";
1056 case 0xC0000065: return "STATUS_GROUP_EXISTS";
1057 case 0xC0000066: return "STATUS_NO_SUCH_GROUP";
1058 case 0xC0000067: return "STATUS_MEMBER_IN_GROUP";
1059 case 0xC0000068: return "STATUS_MEMBER_NOT_IN_GROUP";
1060 case 0xC0000069: return "STATUS_LAST_ADMIN";
1061 case 0xC000006A: return "STATUS_WRONG_PASSWORD";
1062 case 0xC000006B: return "STATUS_ILL_FORMED_PASSWORD";
1063 case 0xC000006C: return "STATUS_PASSWORD_RESTRICTION";
1064 case 0xC000006D: return "STATUS_LOGON_FAILURE";
1065 case 0xC000006E: return "STATUS_ACCOUNT_RESTRICTION";
1066 case 0xC000006F: return "STATUS_INVALID_LOGON_HOURS";
1067 case 0xC0000070: return "STATUS_INVALID_WORKSTATION";
1068 case 0xC0000071: return "STATUS_PASSWORD_EXPIRED";
1069 case 0xC0000072: return "STATUS_ACCOUNT_DISABLED";
1070 case 0xC0000073: return "STATUS_NONE_MAPPED";
1071 case 0xC0000074: return "STATUS_TOO_MANY_LUIDS_REQUESTED";
1072 case 0xC0000075: return "STATUS_LUIDS_EXHAUSTED";
1073 case 0xC0000076: return "STATUS_INVALID_SUB_AUTHORITY";
1074 case 0xC0000077: return "STATUS_INVALID_ACL";
1075 case 0xC0000078: return "STATUS_INVALID_SID";
1076 case 0xC0000079: return "STATUS_INVALID_SECURITY_DESCR";
1077 case 0xC000007A: return "STATUS_PROCEDURE_NOT_FOUND";
1078 case 0xC000007B: return "STATUS_INVALID_IMAGE_FORMAT";
1079 case 0xC000007C: return "STATUS_NO_TOKEN";
1080 case 0xC000007D: return "STATUS_BAD_INHERITANCE_ACL";
1081 case 0xC000007E: return "STATUS_RANGE_NOT_LOCKED";
1082 case 0xC000007F: return "STATUS_DISK_FULL";
1083 case 0xC0000080: return "STATUS_SERVER_DISABLED";
1084 case 0xC0000081: return "STATUS_SERVER_NOT_DISABLED";
1085 case 0xC0000082: return "STATUS_TOO_MANY_GUIDS_REQUESTED";
1086 case 0xC0000083: return "STATUS_GUIDS_EXHAUSTED";
1087 case 0xC0000084: return "STATUS_INVALID_ID_AUTHORITY";
1088 case 0xC0000085: return "STATUS_AGENTS_EXHAUSTED";
1089 case 0xC0000086: return "STATUS_INVALID_VOLUME_LABEL";
1090 case 0xC0000087: return "STATUS_SECTION_NOT_EXTENDED";
1091 case 0xC0000088: return "STATUS_NOT_MAPPED_DATA";
1092 case 0xC0000089: return "STATUS_RESOURCE_DATA_NOT_FOUND";
1093 case 0xC000008A: return "STATUS_RESOURCE_TYPE_NOT_FOUND";
1094 case 0xC000008B: return "STATUS_RESOURCE_NAME_NOT_FOUND";
1095 case 0xC000008C: return "STATUS_ARRAY_BOUNDS_EXCEEDED";
1096 case 0xC000008D: return "STATUS_FLOAT_DENORMAL_OPERAND";
1097 case 0xC000008E: return "STATUS_FLOAT_DIVIDE_BY_ZERO";
1098 case 0xC000008F: return "STATUS_FLOAT_INEXACT_RESULT";
1099 case 0xC0000090: return "STATUS_FLOAT_INVALID_OPERATION";
1100 case 0xC0000091: return "STATUS_FLOAT_OVERFLOW";
1101 case 0xC0000092: return "STATUS_FLOAT_STACK_CHECK";
1102 case 0xC0000093: return "STATUS_FLOAT_UNDERFLOW";
1103 case 0xC0000094: return "STATUS_INTEGER_DIVIDE_BY_ZERO";
1104 case 0xC0000095: return "STATUS_INTEGER_OVERFLOW";
1105 case 0xC0000096: return "STATUS_PRIVILEGED_INSTRUCTION";
1106 case 0xC0000097: return "STATUS_TOO_MANY_PAGING_FILES";
1107 case 0xC0000098: return "STATUS_FILE_INVALID";
1108 case 0xC0000099: return "STATUS_ALLOTTED_SPACE_EXCEEDED";
1109 case 0xC000009A: return "STATUS_INSUFFICIENT_RESOURCES";
1110 case 0xC000009B: return "STATUS_DFS_EXIT_PATH_FOUND";
1111 case 0xC000009C: return "STATUS_DEVICE_DATA_ERROR";
1112 case 0xC000009D: return "STATUS_DEVICE_NOT_CONNECTED";
1113 case 0xC000009E: return "STATUS_DEVICE_POWER_FAILURE";
1114 case 0xC000009F: return "STATUS_FREE_VM_NOT_AT_BASE";
1115 case 0xC00000A0: return "STATUS_MEMORY_NOT_ALLOCATED";
1116 case 0xC00000A1: return "STATUS_WORKING_SET_QUOTA";
1117 case 0xC00000A2: return "STATUS_MEDIA_WRITE_PROTECTED";
1118 case 0xC00000A3: return "STATUS_DEVICE_NOT_READY";
1119 case 0xC00000A4: return "STATUS_INVALID_GROUP_ATTRIBUTES";
1120 case 0xC00000A5: return "STATUS_BAD_IMPERSONATION_LEVEL";
1121 case 0xC00000A6: return "STATUS_CANT_OPEN_ANONYMOUS";
1122 case 0xC00000A7: return "STATUS_BAD_VALIDATION_CLASS";
1123 case 0xC00000A8: return "STATUS_BAD_TOKEN_TYPE";
1124 case 0xC00000A9: return "STATUS_BAD_MASTER_BOOT_RECORD";
1125 case 0xC00000AA: return "STATUS_INSTRUCTION_MISALIGNMENT";
1126 case 0xC00000AB: return "STATUS_INSTANCE_NOT_AVAILABLE";
1127 case 0xC00000AC: return "STATUS_PIPE_NOT_AVAILABLE";
1128 case 0xC00000AD: return "STATUS_INVALID_PIPE_STATE";
1129 case 0xC00000AE: return "STATUS_PIPE_BUSY";
1130 case 0xC00000AF: return "STATUS_ILLEGAL_FUNCTION";
1131 case 0xC00000B0: return "STATUS_PIPE_DISCONNECTED";
1132 case 0xC00000B1: return "STATUS_PIPE_CLOSING";
1133 case 0xC00000B2: return "STATUS_PIPE_CONNECTED";
1134 case 0xC00000B3: return "STATUS_PIPE_LISTENING";
1135 case 0xC00000B4: return "STATUS_INVALID_READ_MODE";
1136 case 0xC00000B5: return "STATUS_IO_TIMEOUT";
1137 case 0xC00000B6: return "STATUS_FILE_FORCED_CLOSED";
1138 case 0xC00000B7: return "STATUS_PROFILING_NOT_STARTED";
1139 case 0xC00000B8: return "STATUS_PROFILING_NOT_STOPPED";
1140 case 0xC00000B9: return "STATUS_COULD_NOT_INTERPRET";
1141 case 0xC00000BA: return "STATUS_FILE_IS_A_DIRECTORY";
1142 case 0xC00000BB: return "STATUS_NOT_SUPPORTED";
1143 case 0xC00000BC: return "STATUS_REMOTE_NOT_LISTENING";
1144 case 0xC00000BD: return "STATUS_DUPLICATE_NAME";
1145 case 0xC00000BE: return "STATUS_BAD_NETWORK_PATH";
1146 case 0xC00000BF: return "STATUS_NETWORK_BUSY";
1147 case 0xC00000C0: return "STATUS_DEVICE_DOES_NOT_EXIST";
1148 case 0xC00000C1: return "STATUS_TOO_MANY_COMMANDS";
1149 case 0xC00000C2: return "STATUS_ADAPTER_HARDWARE_ERROR";
1150 case 0xC00000C3: return "STATUS_INVALID_NETWORK_RESPONSE";
1151 case 0xC00000C4: return "STATUS_UNEXPECTED_NETWORK_ERROR";
1152 case 0xC00000C5: return "STATUS_BAD_REMOTE_ADAPTER";
1153 case 0xC00000C6: return "STATUS_PRINT_QUEUE_FULL";
1154 case 0xC00000C7: return "STATUS_NO_SPOOL_SPACE";
1155 case 0xC00000C8: return "STATUS_PRINT_CANCELLED";
1156 case 0xC00000C9: return "STATUS_NETWORK_NAME_DELETED";
1157 case 0xC00000CA: return "STATUS_NETWORK_ACCESS_DENIED";
1158 case 0xC00000CB: return "STATUS_BAD_DEVICE_TYPE";
1159 case 0xC00000CC: return "STATUS_BAD_NETWORK_NAME";
1160 case 0xC00000CD: return "STATUS_TOO_MANY_NAMES";
1161 case 0xC00000CE: return "STATUS_TOO_MANY_SESSIONS";
1162 case 0xC00000CF: return "STATUS_SHARING_PAUSED";
1163 case 0xC00000D0: return "STATUS_REQUEST_NOT_ACCEPTED";
1164 case 0xC00000D1: return "STATUS_REDIRECTOR_PAUSED";
1165 case 0xC00000D2: return "STATUS_NET_WRITE_FAULT";
1166 case 0xC00000D3: return "STATUS_PROFILING_AT_LIMIT";
1167 case 0xC00000D4: return "STATUS_NOT_SAME_DEVICE";
1168 case 0xC00000D5: return "STATUS_FILE_RENAMED";
1169 case 0xC00000D6: return "STATUS_VIRTUAL_CIRCUIT_CLOSED";
1170 case 0xC00000D7: return "STATUS_NO_SECURITY_ON_OBJECT";
1171 case 0xC00000D8: return "STATUS_CANT_WAIT";
1172 case 0xC00000D9: return "STATUS_PIPE_EMPTY";
1173 case 0xC00000DA: return "STATUS_CANT_ACCESS_DOMAIN_INFO";
1174 case 0xC00000DB: return "STATUS_CANT_TERMINATE_SELF";
1175 case 0xC00000DC: return "STATUS_INVALID_SERVER_STATE";
1176 case 0xC00000DD: return "STATUS_INVALID_DOMAIN_STATE";
1177 case 0xC00000DE: return "STATUS_INVALID_DOMAIN_ROLE";
1178 case 0xC00000DF: return "STATUS_NO_SUCH_DOMAIN";
1179 case 0xC00000E0: return "STATUS_DOMAIN_EXISTS";
1180 case 0xC00000E1: return "STATUS_DOMAIN_LIMIT_EXCEEDED";
1181 case 0xC00000E2: return "STATUS_OPLOCK_NOT_GRANTED";
1182 case 0xC00000E3: return "STATUS_INVALID_OPLOCK_PROTOCOL";
1183 case 0xC00000E4: return "STATUS_INTERNAL_DB_CORRUPTION";
1184 case 0xC00000E5: return "STATUS_INTERNAL_ERROR";
1185 case 0xC00000E6: return "STATUS_GENERIC_NOT_MAPPED";
1186 case 0xC00000E7: return "STATUS_BAD_DESCRIPTOR_FORMAT";
1187 case 0xC00000E8: return "STATUS_INVALID_USER_BUFFER";
1188 case 0xC00000E9: return "STATUS_UNEXPECTED_IO_ERROR";
1189 case 0xC00000EA: return "STATUS_UNEXPECTED_MM_CREATE_ERR";
1190 case 0xC00000EB: return "STATUS_UNEXPECTED_MM_MAP_ERROR";
1191 case 0xC00000EC: return "STATUS_UNEXPECTED_MM_EXTEND_ERR";
1192 case 0xC00000ED: return "STATUS_NOT_LOGON_PROCESS";
1193 case 0xC00000EE: return "STATUS_LOGON_SESSION_EXISTS";
1194 case 0xC00000EF: return "STATUS_INVALID_PARAMETER_1";
1195 case 0xC00000F0: return "STATUS_INVALID_PARAMETER_2";
1196 case 0xC00000F1: return "STATUS_INVALID_PARAMETER_3";
1197 case 0xC00000F2: return "STATUS_INVALID_PARAMETER_4";
1198 case 0xC00000F3: return "STATUS_INVALID_PARAMETER_5";
1199 case 0xC00000F4: return "STATUS_INVALID_PARAMETER_6";
1200 case 0xC00000F5: return "STATUS_INVALID_PARAMETER_7";
1201 case 0xC00000F6: return "STATUS_INVALID_PARAMETER_8";
1202 case 0xC00000F7: return "STATUS_INVALID_PARAMETER_9";
1203 case 0xC00000F8: return "STATUS_INVALID_PARAMETER_10";
1204 case 0xC00000F9: return "STATUS_INVALID_PARAMETER_11";
1205 case 0xC00000FA: return "STATUS_INVALID_PARAMETER_12";
1206 case 0xC00000FB: return "STATUS_REDIRECTOR_NOT_STARTED";
1207 case 0xC00000FC: return "STATUS_REDIRECTOR_STARTED";
1208 case 0xC00000FD: return "STATUS_STACK_OVERFLOW";
1209 case 0xC00000FE: return "STATUS_NO_SUCH_PACKAGE";
1210 case 0xC00000FF: return "STATUS_BAD_FUNCTION_TABLE";
1211 case 0xC0000100: return "STATUS_VARIABLE_NOT_FOUND";
1212 case 0xC0000101: return "STATUS_DIRECTORY_NOT_EMPTY";
1213 case 0xC0000102: return "STATUS_FILE_CORRUPT_ERROR";
1214 case 0xC0000103: return "STATUS_NOT_A_DIRECTORY";
1215 case 0xC0000104: return "STATUS_BAD_LOGON_SESSION_STATE";
1216 case 0xC0000105: return "STATUS_LOGON_SESSION_COLLISION";
1217 case 0xC0000106: return "STATUS_NAME_TOO_LONG";
1218 case 0xC0000107: return "STATUS_FILES_OPEN";
1219 case 0xC0000108: return "STATUS_CONNECTION_IN_USE";
1220 case 0xC0000109: return "STATUS_MESSAGE_NOT_FOUND";
1221 case 0xC000010A: return "STATUS_PROCESS_IS_TERMINATING";
1222 case 0xC000010B: return "STATUS_INVALID_LOGON_TYPE";
1223 case 0xC000010C: return "STATUS_NO_GUID_TRANSLATION";
1224 case 0xC000010D: return "STATUS_CANNOT_IMPERSONATE";
1225 case 0xC000010E: return "STATUS_IMAGE_ALREADY_LOADED";
1226 case 0xC000010F: return "STATUS_ABIOS_NOT_PRESENT";
1227 case 0xC0000110: return "STATUS_ABIOS_LID_NOT_EXIST";
1228 case 0xC0000111: return "STATUS_ABIOS_LID_ALREADY_OWNED";
1229 case 0xC0000112: return "STATUS_ABIOS_NOT_LID_OWNER";
1230 case 0xC0000113: return "STATUS_ABIOS_INVALID_COMMAND";
1231 case 0xC0000114: return "STATUS_ABIOS_INVALID_LID";
1232 case 0xC0000115: return "STATUS_ABIOS_SELECTOR_NOT_AVAILABLE";
1233 case 0xC0000116: return "STATUS_ABIOS_INVALID_SELECTOR";
1234 case 0xC0000117: return "STATUS_NO_LDT";
1235 case 0xC0000118: return "STATUS_INVALID_LDT_SIZE";
1236 case 0xC0000119: return "STATUS_INVALID_LDT_OFFSET";
1237 case 0xC000011A: return "STATUS_INVALID_LDT_DESCRIPTOR";
1238 case 0xC000011B: return "STATUS_INVALID_IMAGE_NE_FORMAT";
1239 case 0xC000011C: return "STATUS_RXACT_INVALID_STATE";
1240 case 0xC000011D: return "STATUS_RXACT_COMMIT_FAILURE";
1241 case 0xC000011E: return "STATUS_MAPPED_FILE_SIZE_ZERO";
1242 case 0xC000011F: return "STATUS_TOO_MANY_OPENED_FILES";
1243 case 0xC0000120: return "STATUS_CANCELLED";
1244 case 0xC0000121: return "STATUS_CANNOT_DELETE";
1245 case 0xC0000122: return "STATUS_INVALID_COMPUTER_NAME";
1246 case 0xC0000123: return "STATUS_FILE_DELETED";
1247 case 0xC0000124: return "STATUS_SPECIAL_ACCOUNT";
1248 case 0xC0000125: return "STATUS_SPECIAL_GROUP";
1249 case 0xC0000126: return "STATUS_SPECIAL_USER";
1250 case 0xC0000127: return "STATUS_MEMBERS_PRIMARY_GROUP";
1251 case 0xC0000128: return "STATUS_FILE_CLOSED";
1252 case 0xC0000129: return "STATUS_TOO_MANY_THREADS";
1253 case 0xC000012A: return "STATUS_THREAD_NOT_IN_PROCESS";
1254 case 0xC000012B: return "STATUS_TOKEN_ALREADY_IN_USE";
1255 case 0xC000012C: return "STATUS_PAGEFILE_QUOTA_EXCEEDED";
1256 case 0xC000012D: return "STATUS_COMMITMENT_LIMIT";
1257 case 0xC000012E: return "STATUS_INVALID_IMAGE_LE_FORMAT";
1258 case 0xC000012F: return "STATUS_INVALID_IMAGE_NOT_MZ";
1259 case 0xC0000130: return "STATUS_INVALID_IMAGE_PROTECT";
1260 case 0xC0000131: return "STATUS_INVALID_IMAGE_WIN_16";
1261 case 0xC0000132: return "STATUS_LOGON_SERVER_CONFLICT";
1262 case 0xC0000133: return "STATUS_TIME_DIFFERENCE_AT_DC";
1263 case 0xC0000134: return "STATUS_SYNCHRONIZATION_REQUIRED";
1264 case 0xC0000135: return "STATUS_DLL_NOT_FOUND";
1265 case 0xC0000136: return "STATUS_OPEN_FAILED";
1266 case 0xC0000137: return "STATUS_IO_PRIVILEGE_FAILED";
1267 case 0xC0000138: return "STATUS_ORDINAL_NOT_FOUND";
1268 case 0xC0000139: return "STATUS_ENTRYPOINT_NOT_FOUND";
1269 case 0xC000013A: return "STATUS_CONTROL_C_EXIT";
1270 case 0xC000013B: return "STATUS_LOCAL_DISCONNECT";
1271 case 0xC000013C: return "STATUS_REMOTE_DISCONNECT";
1272 case 0xC000013D: return "STATUS_REMOTE_RESOURCES";
1273 case 0xC000013E: return "STATUS_LINK_FAILED";
1274 case 0xC000013F: return "STATUS_LINK_TIMEOUT";
1275 case 0xC0000140: return "STATUS_INVALID_CONNECTION";
1276 case 0xC0000141: return "STATUS_INVALID_ADDRESS";
1277 case 0xC0000142: return "STATUS_DLL_INIT_FAILED";
1278 case 0xC0000143: return "STATUS_MISSING_SYSTEMFILE";
1279 case 0xC0000144: return "STATUS_UNHANDLED_EXCEPTION";
1280 case 0xC0000145: return "STATUS_APP_INIT_FAILURE";
1281 case 0xC0000146: return "STATUS_PAGEFILE_CREATE_FAILED";
1282 case 0xC0000147: return "STATUS_NO_PAGEFILE";
1283 case 0xC0000148: return "STATUS_INVALID_LEVEL";
1284 case 0xC0000149: return "STATUS_WRONG_PASSWORD_CORE";
1285 case 0xC000014A: return "STATUS_ILLEGAL_FLOAT_CONTEXT";
1286 case 0xC000014B: return "STATUS_PIPE_BROKEN";
1287 case 0xC000014C: return "STATUS_REGISTRY_CORRUPT";
1288 case 0xC000014D: return "STATUS_REGISTRY_IO_FAILED";
1289 case 0xC000014E: return "STATUS_NO_EVENT_PAIR";
1290 case 0xC000014F: return "STATUS_UNRECOGNIZED_VOLUME";
1291 case 0xC0000150: return "STATUS_SERIAL_NO_DEVICE_INITED";
1292 case 0xC0000151: return "STATUS_NO_SUCH_ALIAS";
1293 case 0xC0000152: return "STATUS_MEMBER_NOT_IN_ALIAS";
1294 case 0xC0000153: return "STATUS_MEMBER_IN_ALIAS";
1295 case 0xC0000154: return "STATUS_ALIAS_EXISTS";
1296 case 0xC0000155: return "STATUS_LOGON_NOT_GRANTED";
1297 case 0xC0000156: return "STATUS_TOO_MANY_SECRETS";
1298 case 0xC0000157: return "STATUS_SECRET_TOO_LONG";
1299 case 0xC0000158: return "STATUS_INTERNAL_DB_ERROR";
1300 case 0xC0000159: return "STATUS_FULLSCREEN_MODE";
1301 case 0xC000015A: return "STATUS_TOO_MANY_CONTEXT_IDS";
1302 case 0xC000015B: return "STATUS_LOGON_TYPE_NOT_GRANTED";
1303 case 0xC000015C: return "STATUS_NOT_REGISTRY_FILE";
1304 case 0xC000015D: return "STATUS_NT_CROSS_ENCRYPTION_REQUIRED";
1305 case 0xC000015E: return "STATUS_DOMAIN_CTRLR_CONFIG_ERROR";
1306 case 0xC000015F: return "STATUS_FT_MISSING_MEMBER";
1307 case 0xC0000160: return "STATUS_ILL_FORMED_SERVICE_ENTRY";
1308 case 0xC0000161: return "STATUS_ILLEGAL_CHARACTER";
1309 case 0xC0000162: return "STATUS_UNMAPPABLE_CHARACTER";
1310 case 0xC0000163: return "STATUS_UNDEFINED_CHARACTER";
1311 case 0xC0000164: return "STATUS_FLOPPY_VOLUME";
1312 case 0xC0000165: return "STATUS_FLOPPY_ID_MARK_NOT_FOUND";
1313 case 0xC0000166: return "STATUS_FLOPPY_WRONG_CYLINDER";
1314 case 0xC0000167: return "STATUS_FLOPPY_UNKNOWN_ERROR";
1315 case 0xC0000168: return "STATUS_FLOPPY_BAD_REGISTERS";
1316 case 0xC0000169: return "STATUS_DISK_RECALIBRATE_FAILED";
1317 case 0xC000016A: return "STATUS_DISK_OPERATION_FAILED";
1318 case 0xC000016B: return "STATUS_DISK_RESET_FAILED";
1319 case 0xC000016C: return "STATUS_SHARED_IRQ_BUSY";
1320 case 0xC000016D: return "STATUS_FT_ORPHANING";
1321 case 0xC000016E: return "STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT";
1322 case 0xC0000172: return "STATUS_PARTITION_FAILURE";
1323 case 0xC0000173: return "STATUS_INVALID_BLOCK_LENGTH";
1324 case 0xC0000174: return "STATUS_DEVICE_NOT_PARTITIONED";
1325 case 0xC0000175: return "STATUS_UNABLE_TO_LOCK_MEDIA";
1326 case 0xC0000176: return "STATUS_UNABLE_TO_UNLOAD_MEDIA";
1327 case 0xC0000177: return "STATUS_EOM_OVERFLOW";
1328 case 0xC0000178: return "STATUS_NO_MEDIA";
1329 case 0xC000017A: return "STATUS_NO_SUCH_MEMBER";
1330 case 0xC000017B: return "STATUS_INVALID_MEMBER";
1331 case 0xC000017C: return "STATUS_KEY_DELETED";
1332 case 0xC000017D: return "STATUS_NO_LOG_SPACE";
1333 case 0xC000017E: return "STATUS_TOO_MANY_SIDS";
1334 case 0xC000017F: return "STATUS_LM_CROSS_ENCRYPTION_REQUIRED";
1335 case 0xC0000180: return "STATUS_KEY_HAS_CHILDREN";
1336 case 0xC0000181: return "STATUS_CHILD_MUST_BE_VOLATILE";
1337 case 0xC0000182: return "STATUS_DEVICE_CONFIGURATION_ERROR";
1338 case 0xC0000183: return "STATUS_DRIVER_INTERNAL_ERROR";
1339 case 0xC0000184: return "STATUS_INVALID_DEVICE_STATE";
1340 case 0xC0000185: return "STATUS_IO_DEVICE_ERROR";
1341 case 0xC0000186: return "STATUS_DEVICE_PROTOCOL_ERROR";
1342 case 0xC0000187: return "STATUS_BACKUP_CONTROLLER";
1343 case 0xC0000188: return "STATUS_LOG_FILE_FULL";
1344 case 0xC0000189: return "STATUS_TOO_LATE";
1345 case 0xC000018A: return "STATUS_NO_TRUST_LSA_SECRET";
1346 case 0xC000018B: return "STATUS_NO_TRUST_SAM_ACCOUNT";
1347 case 0xC000018C: return "STATUS_TRUSTED_DOMAIN_FAILURE";
1348 case 0xC000018D: return "STATUS_TRUSTED_RELATIONSHIP_FAILURE";
1349 case 0xC000018E: return "STATUS_EVENTLOG_FILE_CORRUPT";
1350 case 0xC000018F: return "STATUS_EVENTLOG_CANT_START";
1351 case 0xC0000190: return "STATUS_TRUST_FAILURE";
1352 case 0xC0000191: return "STATUS_MUTANT_LIMIT_EXCEEDED";
1353 case 0xC0000192: return "STATUS_NETLOGON_NOT_STARTED";
1354 case 0xC0000193: return "STATUS_ACCOUNT_EXPIRED";
1355 case 0xC0000194: return "STATUS_POSSIBLE_DEADLOCK";
1356 case 0xC0000195: return "STATUS_NETWORK_CREDENTIAL_CONFLICT";
1357 case 0xC0000196: return "STATUS_REMOTE_SESSION_LIMIT";
1358 case 0xC0000197: return "STATUS_EVENTLOG_FILE_CHANGED";
1359 case 0xC0000198: return "STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT";
1360 case 0xC0000199: return "STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT";
1361 case 0xC000019A: return "STATUS_NOLOGON_SERVER_TRUST_ACCOUNT";
1362 case 0xC000019B: return "STATUS_DOMAIN_TRUST_INCONSISTENT";
1363 case 0xC000019C: return "STATUS_FS_DRIVER_REQUIRED";
1364 case 0xC0000202: return "STATUS_NO_USER_SESSION_KEY";
1365 case 0xC0000203: return "STATUS_USER_SESSION_DELETED";
1366 case 0xC0000204: return "STATUS_RESOURCE_LANG_NOT_FOUND";
1367 case 0xC0000205: return "STATUS_INSUFF_SERVER_RESOURCES";
1368 case 0xC0000206: return "STATUS_INVALID_BUFFER_SIZE";
1369 case 0xC0000207: return "STATUS_INVALID_ADDRESS_COMPONENT";
1370 case 0xC0000208: return "STATUS_INVALID_ADDRESS_WILDCARD";
1371 case 0xC0000209: return "STATUS_TOO_MANY_ADDRESSES";
1372 case 0xC000020A: return "STATUS_ADDRESS_ALREADY_EXISTS";
1373 case 0xC000020B: return "STATUS_ADDRESS_CLOSED";
1374 case 0xC000020C: return "STATUS_CONNECTION_DISCONNECTED";
1375 case 0xC000020D: return "STATUS_CONNECTION_RESET";
1376 case 0xC000020E: return "STATUS_TOO_MANY_NODES";
1377 case 0xC000020F: return "STATUS_TRANSACTION_ABORTED";
1378 case 0xC0000210: return "STATUS_TRANSACTION_TIMED_OUT";
1379 case 0xC0000211: return "STATUS_TRANSACTION_NO_RELEASE";
1380 case 0xC0000212: return "STATUS_TRANSACTION_NO_MATCH";
1381 case 0xC0000213: return "STATUS_TRANSACTION_RESPONDED";
1382 case 0xC0000214: return "STATUS_TRANSACTION_INVALID_ID";
1383 case 0xC0000215: return "STATUS_TRANSACTION_INVALID_TYPE";
1384 case 0xC0000216: return "STATUS_NOT_SERVER_SESSION";
1385 case 0xC0000217: return "STATUS_NOT_CLIENT_SESSION";
1386 case 0xC0000218: return "STATUS_CANNOT_LOAD_REGISTRY_FILE";
1387 case 0xC0000219: return "STATUS_DEBUG_ATTACH_FAILED";
1388 case 0xC000021A: return "STATUS_SYSTEM_PROCESS_TERMINATED";
1389 case 0xC000021B: return "STATUS_DATA_NOT_ACCEPTED";
1390 case 0xC000021C: return "STATUS_NO_BROWSER_SERVERS_FOUND";
1391 case 0xC000021D: return "STATUS_VDM_HARD_ERROR";
1392 case 0xC000021E: return "STATUS_DRIVER_CANCEL_TIMEOUT";
1393 case 0xC000021F: return "STATUS_REPLY_MESSAGE_MISMATCH";
1394 case 0xC0000220: return "STATUS_MAPPED_ALIGNMENT";
1395 case 0xC0000221: return "STATUS_IMAGE_CHECKSUM_MISMATCH";
1396 case 0xC0000222: return "STATUS_LOST_WRITEBEHIND_DATA";
1397 case 0xC0000223: return "STATUS_CLIENT_SERVER_PARAMETERS_INVALID";
1398 case 0xC0000224: return "STATUS_PASSWORD_MUST_CHANGE";
1399 case 0xC0000225: return "STATUS_NOT_FOUND";
1400 case 0xC0000226: return "STATUS_NOT_TINY_STREAM";
1401 case 0xC0000227: return "STATUS_RECOVERY_FAILURE";
1402 case 0xC0000228: return "STATUS_STACK_OVERFLOW_READ";
1403 case 0xC0000229: return "STATUS_FAIL_CHECK";
1404 case 0xC000022A: return "STATUS_DUPLICATE_OBJECTID";
1405 case 0xC000022B: return "STATUS_OBJECTID_EXISTS";
1406 case 0xC000022C: return "STATUS_CONVERT_TO_LARGE";
1407 case 0xC000022D: return "STATUS_RETRY";
1408 case 0xC000022E: return "STATUS_FOUND_OUT_OF_SCOPE";
1409 case 0xC000022F: return "STATUS_ALLOCATE_BUCKET";
1410 case 0xC0000230: return "STATUS_PROPSET_NOT_FOUND";
1411 case 0xC0000231: return "STATUS_MARSHALL_OVERFLOW";
1412 case 0xC0000232: return "STATUS_INVALID_VARIANT";
1413 case 0xC0000233: return "STATUS_DOMAIN_CONTROLLER_NOT_FOUND";
1414 case 0xC0000234: return "STATUS_ACCOUNT_LOCKED_OUT";
1415 case 0xC0000235: return "STATUS_HANDLE_NOT_CLOSABLE";
1416 case 0xC0000236: return "STATUS_CONNECTION_REFUSED";
1417 case 0xC0000237: return "STATUS_GRACEFUL_DISCONNECT";
1418 case 0xC0000238: return "STATUS_ADDRESS_ALREADY_ASSOCIATED";
1419 case 0xC0000239: return "STATUS_ADDRESS_NOT_ASSOCIATED";
1420 case 0xC000023A: return "STATUS_CONNECTION_INVALID";
1421 case 0xC000023B: return "STATUS_CONNECTION_ACTIVE";
1422 case 0xC000023C: return "STATUS_NETWORK_UNREACHABLE";
1423 case 0xC000023D: return "STATUS_HOST_UNREACHABLE";
1424 case 0xC000023E: return "STATUS_PROTOCOL_UNREACHABLE";
1425 case 0xC000023F: return "STATUS_PORT_UNREACHABLE";
1426 case 0xC0000240: return "STATUS_REQUEST_ABORTED";
1427 case 0xC0000241: return "STATUS_CONNECTION_ABORTED";
1428 case 0xC0000242: return "STATUS_BAD_COMPRESSION_BUFFER";
1429 case 0xC0000243: return "STATUS_USER_MAPPED_FILE";
1430 case 0xC0000244: return "STATUS_AUDIT_FAILED";
1431 case 0xC0000245: return "STATUS_TIMER_RESOLUTION_NOT_SET";
1432 case 0xC0000246: return "STATUS_CONNECTION_COUNT_LIMIT";
1433 case 0xC0000247: return "STATUS_LOGIN_TIME_RESTRICTION";
1434 case 0xC0000248: return "STATUS_LOGIN_WKSTA_RESTRICTION";
1435 case 0xC0000249: return "STATUS_IMAGE_MP_UP_MISMATCH";
1436 case 0xC0000250: return "STATUS_INSUFFICIENT_LOGON_INFO";
1437 case 0xC0000251: return "STATUS_BAD_DLL_ENTRYPOINT";
1438 case 0xC0000252: return "STATUS_BAD_SERVICE_ENTRYPOINT";
1439 case 0xC0000253: return "STATUS_LPC_REPLY_LOST";
1440 case 0xC0000254: return "STATUS_IP_ADDRESS_CONFLICT1";
1441 case 0xC0000255: return "STATUS_IP_ADDRESS_CONFLICT2";
1442 case 0xC0000256: return "STATUS_REGISTRY_QUOTA_LIMIT";
1443 case 0xC0000257: return "STATUS_PATH_NOT_COVERED";
1444 case 0xC0000258: return "STATUS_NO_CALLBACK_ACTIVE";
1445 case 0xC0000259: return "STATUS_LICENSE_QUOTA_EXCEEDED";
1446 case 0xC000025A: return "STATUS_PWD_TOO_SHORT";
1447 case 0xC000025B: return "STATUS_PWD_TOO_RECENT";
1448 case 0xC000025C: return "STATUS_PWD_HISTORY_CONFLICT";
1449 case 0xC000025E: return "STATUS_PLUGPLAY_NO_DEVICE";
1450 case 0xC000025F: return "STATUS_UNSUPPORTED_COMPRESSION";
1451 case 0xC0000260: return "STATUS_INVALID_HW_PROFILE";
1452 case 0xC0000261: return "STATUS_INVALID_PLUGPLAY_DEVICE_PATH";
1453 case 0xC0000262: return "STATUS_DRIVER_ORDINAL_NOT_FOUND";
1454 case 0xC0000263: return "STATUS_DRIVER_ENTRYPOINT_NOT_FOUND";
1455 case 0xC0000264: return "STATUS_RESOURCE_NOT_OWNED";
1456 case 0xC0000265: return "STATUS_TOO_MANY_LINKS";
1457 case 0xC0000266: return "STATUS_QUOTA_LIST_INCONSISTENT";
1458 case 0xC0000267: return "STATUS_FILE_IS_OFFLINE";
1459 case 0xC0000268: return "STATUS_EVALUATION_EXPIRATION";
1460 case 0xC0000269: return "STATUS_ILLEGAL_DLL_RELOCATION";
1461 case 0xC000026A: return "STATUS_LICENSE_VIOLATION";
1462 case 0xC000026B: return "STATUS_DLL_INIT_FAILED_LOGOFF";
1463 case 0xC000026C: return "STATUS_DRIVER_UNABLE_TO_LOAD";
1464 case 0xC000026D: return "STATUS_DFS_UNAVAILABLE";
1465 case 0xC000026E: return "STATUS_VOLUME_DISMOUNTED";
1466 case 0xC000026F: return "STATUS_WX86_INTERNAL_ERROR";
1467 case 0xC0000270: return "STATUS_WX86_FLOAT_STACK_CHECK";
1468 case 0xC0000271: return "STATUS_VALIDATE_CONTINUE";
1469 case 0xC0000272: return "STATUS_NO_MATCH";
1470 case 0xC0000273: return "STATUS_NO_MORE_MATCHES";
1471 case 0xC0000275: return "STATUS_NOT_A_REPARSE_POINT";
1472 case 0xC0000276: return "STATUS_IO_REPARSE_TAG_INVALID";
1473 case 0xC0000277: return "STATUS_IO_REPARSE_TAG_MISMATCH";
1474 case 0xC0000278: return "STATUS_IO_REPARSE_DATA_INVALID";
1475 case 0xC0000279: return "STATUS_IO_REPARSE_TAG_NOT_HANDLED";
1476 case 0xC0000280: return "STATUS_REPARSE_POINT_NOT_RESOLVED";
1477 case 0xC0000281: return "STATUS_DIRECTORY_IS_A_REPARSE_POINT";
1478 case 0xC0000282: return "STATUS_RANGE_LIST_CONFLICT";
1479 case 0xC0000283: return "STATUS_SOURCE_ELEMENT_EMPTY";
1480 case 0xC0000284: return "STATUS_DESTINATION_ELEMENT_FULL";
1481 case 0xC0000285: return "STATUS_ILLEGAL_ELEMENT_ADDRESS";
1482 case 0xC0000286: return "STATUS_MAGAZINE_NOT_PRESENT";
1483 case 0xC0000287: return "STATUS_REINITIALIZATION_NEEDED";
1484 case 0x80000288: return "STATUS_DEVICE_REQUIRES_CLEANING";
1485 case 0x80000289: return "STATUS_DEVICE_DOOR_OPEN";
1486 case 0xC000028A: return "STATUS_ENCRYPTION_FAILED";
1487 case 0xC000028B: return "STATUS_DECRYPTION_FAILED";
1488 case 0xC000028C: return "STATUS_RANGE_NOT_FOUND";
1489 case 0xC000028D: return "STATUS_NO_RECOVERY_POLICY";
1490 case 0xC000028E: return "STATUS_NO_EFS";
1491 case 0xC000028F: return "STATUS_WRONG_EFS";
1492 case 0xC0000290: return "STATUS_NO_USER_KEYS";
1493 case 0xC0000291: return "STATUS_FILE_NOT_ENCRYPTED";
1494 case 0xC0000292: return "STATUS_NOT_EXPORT_FORMAT";
1495 case 0xC0000293: return "STATUS_FILE_ENCRYPTED";
1496 case 0x40000294: return "STATUS_WAKE_SYSTEM";
1497 case 0xC0000295: return "STATUS_WMI_GUID_NOT_FOUND";
1498 case 0xC0000296: return "STATUS_WMI_INSTANCE_NOT_FOUND";
1499 case 0xC0000297: return "STATUS_WMI_ITEMID_NOT_FOUND";
1500 case 0xC0000298: return "STATUS_WMI_TRY_AGAIN";
1501 case 0xC0000299: return "STATUS_SHARED_POLICY";
1502 case 0xC000029A: return "STATUS_POLICY_OBJECT_NOT_FOUND";
1503 case 0xC000029B: return "STATUS_POLICY_ONLY_IN_DS";
1504 case 0xC000029C: return "STATUS_VOLUME_NOT_UPGRADED";
1505 case 0xC000029D: return "STATUS_REMOTE_STORAGE_NOT_ACTIVE";
1506 case 0xC000029E: return "STATUS_REMOTE_STORAGE_MEDIA_ERROR";
1507 case 0xC000029F: return "STATUS_NO_TRACKING_SERVICE";
1508 case 0xC00002A0: return "STATUS_SERVER_SID_MISMATCH";
1509 case 0xC00002A1: return "STATUS_DS_NO_ATTRIBUTE_OR_VALUE";
1510 case 0xC00002A2: return "STATUS_DS_INVALID_ATTRIBUTE_SYNTAX";
1511 case 0xC00002A3: return "STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED";
1512 case 0xC00002A4: return "STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS";
1513 case 0xC00002A5: return "STATUS_DS_BUSY";
1514 case 0xC00002A6: return "STATUS_DS_UNAVAILABLE";
1515 case 0xC00002A7: return "STATUS_DS_NO_RIDS_ALLOCATED";
1516 case 0xC00002A8: return "STATUS_DS_NO_MORE_RIDS";
1517 case 0xC00002A9: return "STATUS_DS_INCORRECT_ROLE_OWNER";
1518 case 0xC00002AA: return "STATUS_DS_RIDMGR_INIT_ERROR";
1519 case 0xC00002AB: return "STATUS_DS_OBJ_CLASS_VIOLATION";
1520 case 0xC00002AC: return "STATUS_DS_CANT_ON_NON_LEAF";
1521 case 0xC00002AD: return "STATUS_DS_CANT_ON_RDN";
1522 case 0xC00002AE: return "STATUS_DS_CANT_MOD_OBJ_CLASS";
1523 case 0xC00002AF: return "STATUS_DS_CROSS_DOM_MOVE_FAILED";
1524 case 0xC00002B0: return "STATUS_DS_GC_NOT_AVAILABLE";
1525 case 0xC00002B1: return "STATUS_DIRECTORY_SERVICE_REQUIRED";
1526 case 0xC00002B2: return "STATUS_REPARSE_ATTRIBUTE_CONFLICT";
1527 case 0xC00002B3: return "STATUS_CANT_ENABLE_DENY_ONLY";
1528 case 0xC00002B4: return "STATUS_FLOAT_MULTIPLE_FAULTS";
1529 case 0xC00002B5: return "STATUS_FLOAT_MULTIPLE_TRAPS";
1530 case 0xC00002B6: return "STATUS_DEVICE_REMOVED";
1531 case 0xC00002B7: return "STATUS_JOURNAL_DELETE_IN_PROGRESS";
1532 case 0xC00002B8: return "STATUS_JOURNAL_NOT_ACTIVE";
1533 case 0xC00002B9: return "STATUS_NOINTERFACE";
1534 case 0xC00002C1: return "STATUS_DS_ADMIN_LIMIT_EXCEEDED";
1535 case 0xC00002C2: return "STATUS_DRIVER_FAILED_SLEEP";
1536 case 0xC00002C3: return "STATUS_MUTUAL_AUTHENTICATION_FAILED";
1537 case 0xC00002C4: return "STATUS_CORRUPT_SYSTEM_FILE";
1538 case 0xC00002C5: return "STATUS_DATATYPE_MISALIGNMENT_ERROR";
1539 case 0xC00002C6: return "STATUS_WMI_READ_ONLY";
1540 case 0xC00002C7: return "STATUS_WMI_SET_FAILURE";
1541 case 0xC00002C8: return "STATUS_COMMITMENT_MINIMUM";
1542 case 0xC00002C9: return "STATUS_REG_NAT_CONSUMPTION";
1543 case 0xC00002CA: return "STATUS_TRANSPORT_FULL";
1544 case 0xC00002CB: return "STATUS_DS_SAM_INIT_FAILURE";
1545 case 0xC00002CC: return "STATUS_ONLY_IF_CONNECTED";
1546 case 0xC00002CD: return "STATUS_DS_SENSITIVE_GROUP_VIOLATION";
1547 case 0xC00002CE: return "STATUS_PNP_RESTART_ENUMERATION";
1548 case 0xC00002CF: return "STATUS_JOURNAL_ENTRY_DELETED";
1549 case 0xC00002D0: return "STATUS_DS_CANT_MOD_PRIMARYGROUPID";
1550 case 0xC00002D1: return "STATUS_SYSTEM_IMAGE_BAD_SIGNATURE";
1551 case 0xC00002D2: return "STATUS_PNP_REBOOT_REQUIRED";
1552 case 0xC00002D3: return "STATUS_POWER_STATE_INVALID";
1553 case 0xC00002D4: return "STATUS_DS_INVALID_GROUP_TYPE";
1554 case 0xC00002D5: return "STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN";
1555 case 0xC00002D6: return "STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN";
1556 case 0xC00002D7: return "STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER";
1557 case 0xC00002D8: return "STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER";
1558 case 0xC00002D9: return "STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER";
1559 case 0xC00002DA: return "STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER";
1560 case 0xC00002DB: return "STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER";
1561 case 0xC00002DC: return "STATUS_DS_HAVE_PRIMARY_MEMBERS";
1562 case 0xC00002DD: return "STATUS_WMI_NOT_SUPPORTED";
1563 case 0xC00002DE: return "STATUS_INSUFFICIENT_POWER";
1564 case 0xC00002DF: return "STATUS_SAM_NEED_BOOTKEY_PASSWORD";
1565 case 0xC00002E0: return "STATUS_SAM_NEED_BOOTKEY_FLOPPY";
1566 case 0xC00002E1: return "STATUS_DS_CANT_START";
1567 case 0xC00002E2: return "STATUS_DS_INIT_FAILURE";
1568 case 0xC00002E3: return "STATUS_SAM_INIT_FAILURE";
1569 case 0xC00002E4: return "STATUS_DS_GC_REQUIRED";
1570 case 0xC00002E5: return "STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY";
1571 case 0xC00002E6: return "STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS";
1572 case 0xC00002E7: return "STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED";
1573 case 0xC00002E8: return "STATUS_MULTIPLE_FAULT_VIOLATION";
1574 case 0xC0000300: return "STATUS_NOT_SUPPORTED_ON_SBS";
1575 case 0xC0009898: return "STATUS_WOW_ASSERTION";
1576 case 0xC0010001: return "DBG_NO_STATE_CHANGE";
1577 case 0xC0010002: return "DBG_APP_NOT_IDLE";
1578 case 0xC0020001: return "RPC_NT_INVALID_STRING_BINDING";
1579 case 0xC0020002: return "RPC_NT_WRONG_KIND_OF_BINDING";
1580 case 0xC0020003: return "RPC_NT_INVALID_BINDING";
1581 case 0xC0020004: return "RPC_NT_PROTSEQ_NOT_SUPPORTED";
1582 case 0xC0020005: return "RPC_NT_INVALID_RPC_PROTSEQ";
1583 case 0xC0020006: return "RPC_NT_INVALID_STRING_UUID";
1584 case 0xC0020007: return "RPC_NT_INVALID_ENDPOINT_FORMAT";
1585 case 0xC0020008: return "RPC_NT_INVALID_NET_ADDR";
1586 case 0xC0020009: return "RPC_NT_NO_ENDPOINT_FOUND";
1587 case 0xC002000A: return "RPC_NT_INVALID_TIMEOUT";
1588 case 0xC002000B: return "RPC_NT_OBJECT_NOT_FOUND";
1589 case 0xC002000C: return "RPC_NT_ALREADY_REGISTERED";
1590 case 0xC002000D: return "RPC_NT_TYPE_ALREADY_REGISTERED";
1591 case 0xC002000E: return "RPC_NT_ALREADY_LISTENING";
1592 case 0xC002000F: return "RPC_NT_NO_PROTSEQS_REGISTERED";
1593 case 0xC0020010: return "RPC_NT_NOT_LISTENING";
1594 case 0xC0020011: return "RPC_NT_UNKNOWN_MGR_TYPE";
1595 case 0xC0020012: return "RPC_NT_UNKNOWN_IF";
1596 case 0xC0020013: return "RPC_NT_NO_BINDINGS";
1597 case 0xC0020014: return "RPC_NT_NO_PROTSEQS";
1598 case 0xC0020015: return "RPC_NT_CANT_CREATE_ENDPOINT";
1599 case 0xC0020016: return "RPC_NT_OUT_OF_RESOURCES";
1600 case 0xC0020017: return "RPC_NT_SERVER_UNAVAILABLE";
1601 case 0xC0020018: return "RPC_NT_SERVER_TOO_BUSY";
1602 case 0xC0020019: return "RPC_NT_INVALID_NETWORK_OPTIONS";
1603 case 0xC002001A: return "RPC_NT_NO_CALL_ACTIVE";
1604 case 0xC002001B: return "RPC_NT_CALL_FAILED";
1605 case 0xC002001C: return "RPC_NT_CALL_FAILED_DNE";
1606 case 0xC002001D: return "RPC_NT_PROTOCOL_ERROR";
1607 case 0xC002001F: return "RPC_NT_UNSUPPORTED_TRANS_SYN";
1608 case 0xC0020021: return "RPC_NT_UNSUPPORTED_TYPE";
1609 case 0xC0020022: return "RPC_NT_INVALID_TAG";
1610 case 0xC0020023: return "RPC_NT_INVALID_BOUND";
1611 case 0xC0020024: return "RPC_NT_NO_ENTRY_NAME";
1612 case 0xC0020025: return "RPC_NT_INVALID_NAME_SYNTAX";
1613 case 0xC0020026: return "RPC_NT_UNSUPPORTED_NAME_SYNTAX";
1614 case 0xC0020028: return "RPC_NT_UUID_NO_ADDRESS";
1615 case 0xC0020029: return "RPC_NT_DUPLICATE_ENDPOINT";
1616 case 0xC002002A: return "RPC_NT_UNKNOWN_AUTHN_TYPE";
1617 case 0xC002002B: return "RPC_NT_MAX_CALLS_TOO_SMALL";
1618 case 0xC002002C: return "RPC_NT_STRING_TOO_LONG";
1619 case 0xC002002D: return "RPC_NT_PROTSEQ_NOT_FOUND";
1620 case 0xC002002E: return "RPC_NT_PROCNUM_OUT_OF_RANGE";
1621 case 0xC002002F: return "RPC_NT_BINDING_HAS_NO_AUTH";
1622 case 0xC0020030: return "RPC_NT_UNKNOWN_AUTHN_SERVICE";
1623 case 0xC0020031: return "RPC_NT_UNKNOWN_AUTHN_LEVEL";
1624 case 0xC0020032: return "RPC_NT_INVALID_AUTH_IDENTITY";
1625 case 0xC0020033: return "RPC_NT_UNKNOWN_AUTHZ_SERVICE";
1626 case 0xC0020034: return "EPT_NT_INVALID_ENTRY";
1627 case 0xC0020035: return "EPT_NT_CANT_PERFORM_OP";
1628 case 0xC0020036: return "EPT_NT_NOT_REGISTERED";
1629 case 0xC0020037: return "RPC_NT_NOTHING_TO_EXPORT";
1630 case 0xC0020038: return "RPC_NT_INCOMPLETE_NAME";
1631 case 0xC0020039: return "RPC_NT_INVALID_VERS_OPTION";
1632 case 0xC002003A: return "RPC_NT_NO_MORE_MEMBERS";
1633 case 0xC002003B: return "RPC_NT_NOT_ALL_OBJS_UNEXPORTED";
1634 case 0xC002003C: return "RPC_NT_INTERFACE_NOT_FOUND";
1635 case 0xC002003D: return "RPC_NT_ENTRY_ALREADY_EXISTS";
1636 case 0xC002003E: return "RPC_NT_ENTRY_NOT_FOUND";
1637 case 0xC002003F: return "RPC_NT_NAME_SERVICE_UNAVAILABLE";
1638 case 0xC0020040: return "RPC_NT_INVALID_NAF_ID";
1639 case 0xC0020041: return "RPC_NT_CANNOT_SUPPORT";
1640 case 0xC0020042: return "RPC_NT_NO_CONTEXT_AVAILABLE";
1641 case 0xC0020043: return "RPC_NT_INTERNAL_ERROR";
1642 case 0xC0020044: return "RPC_NT_ZERO_DIVIDE";
1643 case 0xC0020045: return "RPC_NT_ADDRESS_ERROR";
1644 case 0xC0020046: return "RPC_NT_FP_DIV_ZERO";
1645 case 0xC0020047: return "RPC_NT_FP_UNDERFLOW";
1646 case 0xC0020048: return "RPC_NT_FP_OVERFLOW";
1647 case 0xC0030001: return "RPC_NT_NO_MORE_ENTRIES";
1648 case 0xC0030002: return "RPC_NT_SS_CHAR_TRANS_OPEN_FAIL";
1649 case 0xC0030003: return "RPC_NT_SS_CHAR_TRANS_SHORT_FILE";
1650 case 0xC0030004: return "RPC_NT_SS_IN_NULL_CONTEXT";
1651 case 0xC0030005: return "RPC_NT_SS_CONTEXT_MISMATCH";
1652 case 0xC0030006: return "RPC_NT_SS_CONTEXT_DAMAGED";
1653 case 0xC0030007: return "RPC_NT_SS_HANDLES_MISMATCH";
1654 case 0xC0030008: return "RPC_NT_SS_CANNOT_GET_CALL_HANDLE";
1655 case 0xC0030009: return "RPC_NT_NULL_REF_POINTER";
1656 case 0xC003000A: return "RPC_NT_ENUM_VALUE_OUT_OF_RANGE";
1657 case 0xC003000B: return "RPC_NT_BYTE_COUNT_TOO_SMALL";
1658 case 0xC003000C: return "RPC_NT_BAD_STUB_DATA";
1659 case 0xC0020049: return "RPC_NT_CALL_IN_PROGRESS";
1660 case 0xC002004A: return "RPC_NT_NO_MORE_BINDINGS";
1661 case 0xC002004B: return "RPC_NT_GROUP_MEMBER_NOT_FOUND";
1662 case 0xC002004C: return "EPT_NT_CANT_CREATE";
1663 case 0xC002004D: return "RPC_NT_INVALID_OBJECT";
1664 case 0xC002004F: return "RPC_NT_NO_INTERFACES";
1665 case 0xC0020050: return "RPC_NT_CALL_CANCELLED";
1666 case 0xC0020051: return "RPC_NT_BINDING_INCOMPLETE";
1667 case 0xC0020052: return "RPC_NT_COMM_FAILURE";
1668 case 0xC0020053: return "RPC_NT_UNSUPPORTED_AUTHN_LEVEL";
1669 case 0xC0020054: return "RPC_NT_NO_PRINC_NAME";
1670 case 0xC0020055: return "RPC_NT_NOT_RPC_ERROR";
1671 case 0x40020056: return "RPC_NT_UUID_LOCAL_ONLY";
1672 case 0xC0020057: return "RPC_NT_SEC_PKG_ERROR";
1673 case 0xC0020058: return "RPC_NT_NOT_CANCELLED";
1674 case 0xC0030059: return "RPC_NT_INVALID_ES_ACTION";
1675 case 0xC003005A: return "RPC_NT_WRONG_ES_VERSION";
1676 case 0xC003005B: return "RPC_NT_WRONG_STUB_VERSION";
1677 case 0xC003005C: return "RPC_NT_INVALID_PIPE_OBJECT";
1678 case 0xC003005D: return "RPC_NT_INVALID_PIPE_OPERATION";
1679 case 0xC003005E: return "RPC_NT_WRONG_PIPE_VERSION";
1680 case 0xC003005F: return "RPC_NT_PIPE_CLOSED";
1681 case 0xC0030060: return "RPC_NT_PIPE_DISCIPLINE_ERROR";
1682 case 0xC0030061: return "RPC_NT_PIPE_EMPTY";
1683 case 0xC0020062: return "RPC_NT_INVALID_ASYNC_HANDLE";
1684 case 0xC0020063: return "RPC_NT_INVALID_ASYNC_CALL";
1685 case 0x400200AF: return "RPC_NT_SEND_INCOMPLETE";
1686 case 0xC0140001: return "STATUS_ACPI_INVALID_OPCODE";
1687 case 0xC0140002: return "STATUS_ACPI_STACK_OVERFLOW";
1688 case 0xC0140003: return "STATUS_ACPI_ASSERT_FAILED";
1689 case 0xC0140004: return "STATUS_ACPI_INVALID_INDEX";
1690 case 0xC0140005: return "STATUS_ACPI_INVALID_ARGUMENT";
1691 case 0xC0140006: return "STATUS_ACPI_FATAL";
1692 case 0xC0140007: return "STATUS_ACPI_INVALID_SUPERNAME";
1693 case 0xC0140008: return "STATUS_ACPI_INVALID_ARGTYPE";
1694 case 0xC0140009: return "STATUS_ACPI_INVALID_OBJTYPE";
1695 case 0xC014000A: return "STATUS_ACPI_INVALID_TARGETTYPE";
1696 case 0xC014000B: return "STATUS_ACPI_INCORRECT_ARGUMENT_COUNT";
1697 case 0xC014000C: return "STATUS_ACPI_ADDRESS_NOT_MAPPED";
1698 case 0xC014000D: return "STATUS_ACPI_INVALID_EVENTTYPE";
1699 case 0xC014000E: return "STATUS_ACPI_HANDLER_COLLISION";
1700 case 0xC014000F: return "STATUS_ACPI_INVALID_DATA";
1701 case 0xC0140010: return "STATUS_ACPI_INVALID_REGION";
1702 case 0xC0140011: return "STATUS_ACPI_INVALID_ACCESS_SIZE";
1703 case 0xC0140012: return "STATUS_ACPI_ACQUIRE_GLOBAL_LOCK";
1704 case 0xC0140013: return "STATUS_ACPI_ALREADY_INITIALIZED";
1705 case 0xC0140014: return "STATUS_ACPI_NOT_INITIALIZED";
1706 case 0xC0140015: return "STATUS_ACPI_INVALID_MUTEX_LEVEL";
1707 case 0xC0140016: return "STATUS_ACPI_MUTEX_NOT_OWNED";
1708 case 0xC0140017: return "STATUS_ACPI_MUTEX_NOT_OWNER";
1709 case 0xC0140018: return "STATUS_ACPI_RS_ACCESS";
1710 case 0xC0140019: return "STATUS_ACPI_INVALID_TABLE";
1711 case 0xC0140020: return "STATUS_ACPI_REG_HANDLER_FAILED";
1712 case 0xC0140021: return "STATUS_ACPI_POWER_REQUEST_FAILED";
1713 case 0xC00A0001: return "STATUS_CTX_WINSTATION_NAME_INVALID";
1714 case 0xC00A0002: return "STATUS_CTX_INVALID_PD";
1715 case 0xC00A0003: return "STATUS_CTX_PD_NOT_FOUND";
1716 case 0x400A0004: return "STATUS_CTX_CDM_CONNECT";
1717 case 0x400A0005: return "STATUS_CTX_CDM_DISCONNECT";
1718 case 0xC00A0006: return "STATUS_CTX_CLOSE_PENDING";
1719 case 0xC00A0007: return "STATUS_CTX_NO_OUTBUF";
1720 case 0xC00A0008: return "STATUS_CTX_MODEM_INF_NOT_FOUND";
1721 case 0xC00A0009: return "STATUS_CTX_INVALID_MODEMNAME";
1722 case 0xC00A000A: return "STATUS_CTX_RESPONSE_ERROR";
1723 case 0xC00A000B: return "STATUS_CTX_MODEM_RESPONSE_TIMEOUT";
1724 case 0xC00A000C: return "STATUS_CTX_MODEM_RESPONSE_NO_CARRIER";
1725 case 0xC00A000D: return "STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE";
1726 case 0xC00A000E: return "STATUS_CTX_MODEM_RESPONSE_BUSY";
1727 case 0xC00A000F: return "STATUS_CTX_MODEM_RESPONSE_VOICE";
1728 case 0xC00A0010: return "STATUS_CTX_TD_ERROR";
1729 case 0xC00A0012: return "STATUS_CTX_LICENSE_CLIENT_INVALID";
1730 case 0xC00A0013: return "STATUS_CTX_LICENSE_NOT_AVAILABLE";
1731 case 0xC00A0014: return "STATUS_CTX_LICENSE_EXPIRED";
1732 case 0xC00A0015: return "STATUS_CTX_WINSTATION_NOT_FOUND";
1733 case 0xC00A0016: return "STATUS_CTX_WINSTATION_NAME_COLLISION";
1734 case 0xC00A0017: return "STATUS_CTX_WINSTATION_BUSY";
1735 case 0xC00A0018: return "STATUS_CTX_BAD_VIDEO_MODE";
1736 case 0xC00A0022: return "STATUS_CTX_GRAPHICS_INVALID";
1737 case 0xC00A0024: return "STATUS_CTX_NOT_CONSOLE";
1738 case 0xC00A0026: return "STATUS_CTX_CLIENT_QUERY_TIMEOUT";
1739 case 0xC00A0027: return "STATUS_CTX_CONSOLE_DISCONNECT";
1740 case 0xC00A0028: return "STATUS_CTX_CONSOLE_CONNECT";
1741 case 0xC00A002A: return "STATUS_CTX_SHADOW_DENIED";
1742 case 0xC00A002B: return "STATUS_CTX_WINSTATION_ACCESS_DENIED";
1743 case 0xC00A002E: return "STATUS_CTX_INVALID_WD";
1744 case 0xC00A002F: return "STATUS_CTX_WD_NOT_FOUND";
1745 case 0xC00A0030: return "STATUS_CTX_SHADOW_INVALID";
1746 case 0xC00A0031: return "STATUS_CTX_SHADOW_DISABLED";
1747 case 0xC00A0032: return "STATUS_RDP_PROTOCOL_ERROR";
1748 case 0xC00A0033: return "STATUS_CTX_CLIENT_LICENSE_NOT_SET";
1749 case 0xC00A0034: return "STATUS_CTX_CLIENT_LICENSE_IN_USE";
1750 case 0xC0040035: return "STATUS_PNP_BAD_MPS_TABLE";
1751 case 0xC0040036: return "STATUS_PNP_TRANSLATION_FAILED";
1752 case 0xC0040037: return "STATUS_PNP_IRQ_TRANSLATION_FAILED";
1753 default: return "STATUS_UNKNOWN";
1754 }
1755 }
1756
1757 #endif // DBG