2009-03-19 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / io-layer / messages.c
1 /*
2  * messages.c:  Error message handling
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2008 Novell, Inc.
8  */
9
10 #include <config.h>
11 #include <glib.h>
12 #include <stdarg.h>
13 #include <string.h>
14
15 #include <mono/io-layer/wapi.h>
16 #include <mono/io-layer/wapi-private.h>
17 #include <mono/io-layer/misc-private.h>
18 #include <mono/io-layer/messages.h>
19
20 #undef DEBUG
21
22 static const gchar *message_string (guint32 id);
23
24 static guint32 unicode_chars (const gunichar2 *str)
25 {
26         guint32 len = 0;
27         
28         do {
29                 if (str[len] == '\0') {
30                         return(len);
31                 }
32                 len++;
33         } while(1);
34 }
35
36 guint32 FormatMessage (guint32 flags, gconstpointer source, guint32 messageid,
37                        guint32 languageid, gunichar2 *buf, guint32 size, ...)
38 {
39         /*va_list ap;*/
40         guint32 strlen, cpy;
41         gunichar2 *str;
42         gboolean freestr = FALSE;
43         
44         if ((flags & FORMAT_MESSAGE_FROM_HMODULE) ||
45             (flags & FORMAT_MESSAGE_ARGUMENT_ARRAY) ||
46             !(flags & FORMAT_MESSAGE_IGNORE_INSERTS)) {
47                 g_warning ("%s: Unsupported flags passed: %d", __func__,
48                            flags);
49                 SetLastError (ERROR_NOT_SUPPORTED);
50                 return(0);
51         }
52
53         if ((flags & FORMAT_MESSAGE_MAX_WIDTH_MASK) != 0) {
54                 g_warning ("%s: Message width mask (%d) not supported",
55                            __func__, (flags & FORMAT_MESSAGE_MAX_WIDTH_MASK));
56         }
57         
58         if (languageid != 0) {
59                 g_warning ("%s: Locale 0x%x not supported, returning language neutral string", __func__, languageid);
60         }
61         
62         /* We're only supporting IGNORE_INSERTS, so we don't need to
63          * use va_start (ap, size) and va_end (ap)
64          */
65
66         if (flags & FORMAT_MESSAGE_FROM_STRING) {
67                 str = (gunichar2 *)source;
68         } else if (flags & FORMAT_MESSAGE_FROM_SYSTEM) {
69                 str = g_utf8_to_utf16 (message_string (messageid), -1, NULL,
70                                        NULL, NULL);
71                 freestr = TRUE;
72         } else
73                 str = g_utf8_to_utf16 ("No message specified", -1, NULL, NULL, NULL);
74
75         strlen = unicode_chars (str);
76
77         if (flags & FORMAT_MESSAGE_ALLOCATE_BUFFER) {
78                 *(gpointer *)buf = (gunichar2 *)g_new0 (gunichar2, strlen + 2 < size?size:strlen + 2);
79         }
80
81         if (strlen >= size) {
82                 cpy = size - 1;
83         } else {
84                 cpy = strlen;
85         }
86         memcpy (buf, str, cpy * 2);
87         buf[cpy] = '\0';
88
89         if (freestr) {
90                 g_free (str);
91         }
92         
93         return(strlen);
94 }
95
96 static const gchar *message_string (guint32 id)
97 {
98         switch(id) {
99         case ERROR_SUCCESS:
100                 return("Success");
101                 break;
102         case ERROR_INVALID_FUNCTION:
103                 return("Invalid function");
104                 break;
105         case ERROR_FILE_NOT_FOUND:
106                 return("Cannot find the specified file");
107                 break;
108         case ERROR_PATH_NOT_FOUND:
109                 return("Cannot find the specified file");
110                 break;
111         case ERROR_TOO_MANY_OPEN_FILES:
112                 return("Too many open files");
113                 break;
114         case ERROR_ACCESS_DENIED:
115                 return("Access denied");
116                 break;
117         case ERROR_INVALID_HANDLE:
118                 return("Invalid handle");
119                 break;
120         case ERROR_ARENA_TRASHED:
121                 return("Arena trashed");
122                 break;
123         case ERROR_NOT_ENOUGH_MEMORY:
124                 return("Not enough memory");
125                 break;
126         case ERROR_INVALID_BLOCK:
127                 return("Invalid block");
128                 break;
129         case ERROR_BAD_ENVIRONMENT:
130                 return("Bad environment");
131                 break;
132         case ERROR_BAD_FORMAT:
133                 return("Bad format");
134                 break;
135         case ERROR_INVALID_ACCESS:
136                 return("Invalid access");
137                 break;
138         case ERROR_INVALID_DATA:
139                 return("Invalid data");
140                 break;
141         case ERROR_OUTOFMEMORY:
142                 return("Out of memory");
143                 break;
144         case ERROR_INVALID_DRIVE:
145                 return("Invalid drive");
146                 break;
147         case ERROR_CURRENT_DIRECTORY:
148                 return("Current directory");
149                 break;
150         case ERROR_NOT_SAME_DEVICE:
151                 return("Not same device");
152                 break;
153         case ERROR_NO_MORE_FILES:
154                 return("No more files");
155                 break;
156         case ERROR_WRITE_PROTECT:
157                 return("Write protect");
158                 break;
159         case ERROR_BAD_UNIT:
160                 return("Bad unit");
161                 break;
162         case ERROR_NOT_READY:
163                 return("Not ready");
164                 break;
165         case ERROR_BAD_COMMAND:
166                 return("Bad command");
167                 break;
168         case ERROR_CRC:
169                 return("CRC");
170                 break;
171         case ERROR_BAD_LENGTH:
172                 return("Bad length");
173                 break;
174         case ERROR_SEEK:
175                 return("Seek");
176                 break;
177         case ERROR_NOT_DOS_DISK:
178                 return("Not DOS disk");
179                 break;
180         case ERROR_SECTOR_NOT_FOUND:
181                 return("Sector not found");
182                 break;
183         case ERROR_OUT_OF_PAPER:
184                 return("Out of paper");
185                 break;
186         case ERROR_WRITE_FAULT:
187                 return("Write fault");
188                 break;
189         case ERROR_READ_FAULT:
190                 return("Read fault");
191                 break;
192         case ERROR_GEN_FAILURE:
193                 return("General failure");
194                 break;
195         case ERROR_SHARING_VIOLATION:
196                 return("Sharing violation");
197                 break;
198         case ERROR_LOCK_VIOLATION:
199                 return("Lock violation");
200                 break;
201         case ERROR_WRONG_DISK:
202                 return("Wrong disk");
203                 break;
204         case ERROR_SHARING_BUFFER_EXCEEDED:
205                 return("Sharing buffer exceeded");
206                 break;
207         case ERROR_HANDLE_EOF:
208                 return("Handle EOF");
209                 break;
210         case ERROR_HANDLE_DISK_FULL:
211                 return("Handle disk full");
212                 break;
213         case ERROR_NOT_SUPPORTED:
214                 return("Operation not supported");
215                 break;
216         case ERROR_REM_NOT_LIST:
217                 return("Rem not list");
218                 break;
219         case ERROR_DUP_NAME:
220                 return("Duplicate name");
221                 break;
222         case ERROR_BAD_NETPATH:
223                 return("Bad netpath");
224                 break;
225         case ERROR_NETWORK_BUSY:
226                 return("Network busy");
227                 break;
228         case ERROR_DEV_NOT_EXIST:
229                 return("Device does not exist");
230                 break;
231         case ERROR_TOO_MANY_CMDS:
232                 return("Too many commands");
233                 break;
234         case ERROR_ADAP_HDW_ERR:
235                 return("ADAP HDW error");
236                 break;
237         case ERROR_BAD_NET_RESP:
238                 return("Bad net response");
239                 break;
240         case ERROR_UNEXP_NET_ERR:
241                 return("Unexpected net error");
242                 break;
243         case ERROR_BAD_REM_ADAP:
244                 return("Bad rem adap");
245                 break;
246         case ERROR_PRINTQ_FULL:
247                 return("Print queue full");
248                 break;
249         case ERROR_NO_SPOOL_SPACE:
250                 return("No spool space");
251                 break;
252         case ERROR_PRINT_CANCELLED:
253                 return("Print cancelled");
254                 break;
255         case ERROR_NETNAME_DELETED:
256                 return("Netname deleted");
257                 break;
258         case ERROR_NETWORK_ACCESS_DENIED:
259                 return("Network access denied");
260                 break;
261         case ERROR_BAD_DEV_TYPE:
262                 return("Bad device type");
263                 break;
264         case ERROR_BAD_NET_NAME:
265                 return("Bad net name");
266                 break;
267         case ERROR_TOO_MANY_NAMES:
268                 return("Too many names");
269                 break;
270         case ERROR_TOO_MANY_SESS:
271                 return("Too many sessions");
272                 break;
273         case ERROR_SHARING_PAUSED:
274                 return("Sharing paused");
275                 break;
276         case ERROR_REQ_NOT_ACCEP:
277                 return("Req not accep");
278                 break;
279         case ERROR_REDIR_PAUSED:
280                 return("Redir paused");
281                 break;
282         case ERROR_FILE_EXISTS:
283                 return("File exists");
284                 break;
285         case ERROR_CANNOT_MAKE:
286                 return("Cannot make");
287                 break;
288         case ERROR_FAIL_I24:
289                 return("Fail i24");
290                 break;
291         case ERROR_OUT_OF_STRUCTURES:
292                 return("Out of structures");
293                 break;
294         case ERROR_ALREADY_ASSIGNED:
295                 return("Already assigned");
296                 break;
297         case ERROR_INVALID_PASSWORD:
298                 return("Invalid password");
299                 break;
300         case ERROR_INVALID_PARAMETER:
301                 return("Invalid parameter");
302                 break;
303         case ERROR_NET_WRITE_FAULT:
304                 return("Net write fault");
305                 break;
306         case ERROR_NO_PROC_SLOTS:
307                 return("No proc slots");
308                 break;
309         case ERROR_TOO_MANY_SEMAPHORES:
310                 return("Too many semaphores");
311                 break;
312         case ERROR_EXCL_SEM_ALREADY_OWNED:
313                 return("Exclusive semaphore already owned");
314                 break;
315         case ERROR_SEM_IS_SET:
316                 return("Semaphore is set");
317                 break;
318         case ERROR_TOO_MANY_SEM_REQUESTS:
319                 return("Too many semaphore requests");
320                 break;
321         case ERROR_INVALID_AT_INTERRUPT_TIME:
322                 return("Invalid at interrupt time");
323                 break;
324         case ERROR_SEM_OWNER_DIED:
325                 return("Semaphore owner died");
326                 break;
327         case ERROR_SEM_USER_LIMIT:
328                 return("Semaphore user limit");
329                 break;
330         case ERROR_DISK_CHANGE:
331                 return("Disk change");
332                 break;
333         case ERROR_DRIVE_LOCKED:
334                 return("Drive locked");
335                 break;
336         case ERROR_BROKEN_PIPE:
337                 return("Broken pipe");
338                 break;
339         case ERROR_OPEN_FAILED:
340                 return("Open failed");
341                 break;
342         case ERROR_BUFFER_OVERFLOW:
343                 return("Buffer overflow");
344                 break;
345         case ERROR_DISK_FULL:
346                 return("Disk full");
347                 break;
348         case ERROR_NO_MORE_SEARCH_HANDLES:
349                 return("No more search handles");
350                 break;
351         case ERROR_INVALID_TARGET_HANDLE:
352                 return("Invalid target handle");
353                 break;
354         case ERROR_INVALID_CATEGORY:
355                 return("Invalid category");
356                 break;
357         case ERROR_INVALID_VERIFY_SWITCH:
358                 return("Invalid verify switch");
359                 break;
360         case ERROR_BAD_DRIVER_LEVEL:
361                 return("Bad driver level");
362                 break;
363         case ERROR_CALL_NOT_IMPLEMENTED:
364                 return("Call not implemented");
365                 break;
366         case ERROR_SEM_TIMEOUT:
367                 return("Semaphore timeout");
368                 break;
369         case ERROR_INSUFFICIENT_BUFFER:
370                 return("Insufficient buffer");
371                 break;
372         case ERROR_INVALID_NAME:
373                 return("Invalid name");
374                 break;
375         case ERROR_INVALID_LEVEL:
376                 return("Invalid level");
377                 break;
378         case ERROR_NO_VOLUME_LABEL:
379                 return("No volume label");
380                 break;
381         case ERROR_MOD_NOT_FOUND:
382                 return("Module not found");
383                 break;
384         case ERROR_PROC_NOT_FOUND:
385                 return("Process not found");
386                 break;
387         case ERROR_WAIT_NO_CHILDREN:
388                 return("Wait no children");
389                 break;
390         case ERROR_CHILD_NOT_COMPLETE:
391                 return("Child not complete");
392                 break;
393         case ERROR_DIRECT_ACCESS_HANDLE:
394                 return("Direct access handle");
395                 break;
396         case ERROR_NEGATIVE_SEEK:
397                 return("Negative seek");
398                 break;
399         case ERROR_SEEK_ON_DEVICE:
400                 return("Seek on device");
401                 break;
402         case ERROR_IS_JOIN_TARGET:
403                 return("Is join target");
404                 break;
405         case ERROR_IS_JOINED:
406                 return("Is joined");
407                 break;
408         case ERROR_IS_SUBSTED:
409                 return("Is substed");
410                 break;
411         case ERROR_NOT_JOINED:
412                 return("Not joined");
413                 break;
414         case ERROR_NOT_SUBSTED:
415                 return("Not substed");
416                 break;
417         case ERROR_JOIN_TO_JOIN:
418                 return("Join to join");
419                 break;
420         case ERROR_SUBST_TO_SUBST:
421                 return("Subst to subst");
422                 break;
423         case ERROR_JOIN_TO_SUBST:
424                 return("Join to subst");
425                 break;
426         case ERROR_SUBST_TO_JOIN:
427                 return("Subst to join");
428                 break;
429         case ERROR_BUSY_DRIVE:
430                 return("Busy drive");
431                 break;
432         case ERROR_SAME_DRIVE:
433                 return("Same drive");
434                 break;
435         case ERROR_DIR_NOT_ROOT:
436                 return("Directory not root");
437                 break;
438         case ERROR_DIR_NOT_EMPTY:
439                 return("Directory not empty");
440                 break;
441         case ERROR_IS_SUBST_PATH:
442                 return("Is subst path");
443                 break;
444         case ERROR_IS_JOIN_PATH:
445                 return("Is join path");
446                 break;
447         case ERROR_PATH_BUSY:
448                 return("Path busy");
449                 break;
450         case ERROR_IS_SUBST_TARGET:
451                 return("Is subst target");
452                 break;
453         case ERROR_SYSTEM_TRACE:
454                 return("System trace");
455                 break;
456         case ERROR_INVALID_EVENT_COUNT:
457                 return("Invalid event count");
458                 break;
459         case ERROR_TOO_MANY_MUXWAITERS:
460                 return("Too many muxwaiters");
461                 break;
462         case ERROR_INVALID_LIST_FORMAT:
463                 return("Invalid list format");
464                 break;
465         case ERROR_LABEL_TOO_LONG:
466                 return("Label too long");
467                 break;
468         case ERROR_TOO_MANY_TCBS:
469                 return("Too many TCBs");
470                 break;
471         case ERROR_SIGNAL_REFUSED:
472                 return("Signal refused");
473                 break;
474         case ERROR_DISCARDED:
475                 return("Discarded");
476                 break;
477         case ERROR_NOT_LOCKED:
478                 return("Not locked");
479                 break;
480         case ERROR_BAD_THREADID_ADDR:
481                 return("Bad thread ID addr");
482                 break;
483         case ERROR_BAD_ARGUMENTS:
484                 return("Bad arguments");
485                 break;
486         case ERROR_BAD_PATHNAME:
487                 return("Bad pathname");
488                 break;
489         case ERROR_SIGNAL_PENDING:
490                 return("Signal pending");
491                 break;
492         case ERROR_MAX_THRDS_REACHED:
493                 return("Max thrds reached");
494                 break;
495         case ERROR_LOCK_FAILED:
496                 return("Lock failed");
497                 break;
498         case ERROR_BUSY:
499                 return("Busy");
500                 break;
501         case ERROR_CANCEL_VIOLATION:
502                 return("Cancel violation");
503                 break;
504         case ERROR_ATOMIC_LOCKS_NOT_SUPPORTED:
505                 return("Atomic locks not supported");
506                 break;
507         case ERROR_INVALID_SEGMENT_NUMBER:
508                 return("Invalid segment number");
509                 break;
510         case ERROR_INVALID_ORDINAL:
511                 return("Invalid ordinal");
512                 break;
513         case ERROR_ALREADY_EXISTS:
514                 return("Already exists");
515                 break;
516         case ERROR_INVALID_FLAG_NUMBER:
517                 return("Invalid flag number");
518                 break;
519         case ERROR_SEM_NOT_FOUND:
520                 return("Sem not found");
521                 break;
522         case ERROR_INVALID_STARTING_CODESEG:
523                 return("Invalid starting codeseg");
524                 break;
525         case ERROR_INVALID_STACKSEG:
526                 return("Invalid stackseg");
527                 break;
528         case ERROR_INVALID_MODULETYPE:
529                 return("Invalid moduletype");
530                 break;
531         case ERROR_INVALID_EXE_SIGNATURE:
532                 return("Invalid exe signature");
533                 break;
534         case ERROR_EXE_MARKED_INVALID:
535                 return("Exe marked invalid");
536                 break;
537         case ERROR_BAD_EXE_FORMAT:
538                 return("Bad exe format");
539                 break;
540         case ERROR_ITERATED_DATA_EXCEEDS_64k:
541                 return("Iterated data exceeds 64k (and that should be enough for anybody!)");
542                 break;
543         case ERROR_INVALID_MINALLOCSIZE:
544                 return("Invalid minallocsize");
545                 break;
546         case ERROR_DYNLINK_FROM_INVALID_RING:
547                 return("Dynlink from invalid ring");
548                 break;
549         case ERROR_IOPL_NOT_ENABLED:
550                 return("IOPL not enabled");
551                 break;
552         case ERROR_INVALID_SEGDPL:
553                 return("Invalid segdpl");
554                 break;
555         case ERROR_AUTODATASEG_EXCEEDS_64k:
556                 return("Autodataseg exceeds 64k");
557                 break;
558         case ERROR_RING2SEG_MUST_BE_MOVABLE:
559                 return("Ring2seg must be movable");
560                 break;
561         case ERROR_RELOC_CHAIN_XEEDS_SEGLIM:
562                 return("Reloc chain exceeds seglim");
563                 break;
564         case ERROR_INFLOOP_IN_RELOC_CHAIN:
565                 return("Infloop in reloc chain");
566                 break;
567         case ERROR_ENVVAR_NOT_FOUND:
568                 return("Env var not found");
569                 break;
570         case ERROR_NO_SIGNAL_SENT:
571                 return("No signal sent");
572                 break;
573         case ERROR_FILENAME_EXCED_RANGE:
574                 return("Filename exceeds range");
575                 break;
576         case ERROR_RING2_STACK_IN_USE:
577                 return("Ring2 stack in use");
578                 break;
579         case ERROR_META_EXPANSION_TOO_LONG:
580                 return("Meta expansion too long");
581                 break;
582         case ERROR_INVALID_SIGNAL_NUMBER:
583                 return("Invalid signal number");
584                 break;
585         case ERROR_THREAD_1_INACTIVE:
586                 return("Thread 1 inactive");
587                 break;
588         case ERROR_LOCKED:
589                 return("Locked");
590                 break;
591         case ERROR_TOO_MANY_MODULES:
592                 return("Too many modules");
593                 break;
594         case ERROR_NESTING_NOT_ALLOWED:
595                 return("Nesting not allowed");
596                 break;
597         case ERROR_EXE_MACHINE_TYPE_MISMATCH:
598                 return("Exe machine type mismatch");
599                 break;
600         case ERROR_BAD_PIPE:
601                 return("Bad pipe");
602                 break;
603         case ERROR_PIPE_BUSY:
604                 return("Pipe busy");
605                 break;
606         case ERROR_NO_DATA:
607                 return("No data");
608                 break;
609         case ERROR_PIPE_NOT_CONNECTED:
610                 return("Pipe not connected");
611                 break;
612         case ERROR_MORE_DATA:
613                 return("More data");
614                 break;
615         case ERROR_VC_DISCONNECTED:
616                 return("VC disconnected");
617                 break;
618         case ERROR_INVALID_EA_NAME:
619                 return("Invalid EA name");
620                 break;
621         case ERROR_EA_LIST_INCONSISTENT:
622                 return("EA list inconsistent");
623                 break;
624         case WAIT_TIMEOUT:
625                 return("Wait timeout");
626                 break;
627         case ERROR_NO_MORE_ITEMS:
628                 return("No more items");
629                 break;
630         case ERROR_CANNOT_COPY:
631                 return("Cannot copy");
632                 break;
633         case ERROR_DIRECTORY:
634                 return("Is a directory");
635                 break;
636         case ERROR_EAS_DIDNT_FIT:
637                 return("EAS didnt fit");
638                 break;
639         case ERROR_EA_FILE_CORRUPT:
640                 return("EA file corrupt");
641                 break;
642         case ERROR_EA_TABLE_FULL:
643                 return("EA table full");
644                 break;
645         case ERROR_INVALID_EA_HANDLE:
646                 return("Invalid EA handle");
647                 break;
648         case ERROR_EAS_NOT_SUPPORTED:
649                 return("EAs not supported");
650                 break;
651         case ERROR_NOT_OWNER:
652                 return("Not owner");
653                 break;
654         case ERROR_TOO_MANY_POSTS:
655                 return("Too many posts");
656                 break;
657         case ERROR_PARTIAL_COPY:
658                 return("Partial copy");
659                 break;
660         case ERROR_OPLOCK_NOT_GRANTED:
661                 return("Oplock not granted");
662                 break;
663         case ERROR_INVALID_OPLOCK_PROTOCOL:
664                 return("Invalid oplock protocol");
665                 break;
666         case ERROR_DISK_TOO_FRAGMENTED:
667                 return("Disk too fragmented");
668                 break;
669         case ERROR_DELETE_PENDING:
670                 return("Delete pending");
671                 break;
672         case ERROR_MR_MID_NOT_FOUND:
673                 return("Mr Mid not found");
674                 break;
675         case ERROR_INVALID_ADDRESS:
676                 return("Invalid address");
677                 break;
678         case ERROR_ARITHMETIC_OVERFLOW:
679                 return("Arithmetic overflow");
680                 break;
681         case ERROR_PIPE_CONNECTED:
682                 return("Pipe connected");
683                 break;
684         case ERROR_PIPE_LISTENING:
685                 return("Pipe listening");
686                 break;
687         case ERROR_EA_ACCESS_DENIED:
688                 return("EA access denied");
689                 break;
690         case ERROR_OPERATION_ABORTED:
691                 return("Operation aborted");
692                 break;
693         case ERROR_IO_INCOMPLETE:
694                 return("IO incomplete");
695                 break;
696         case ERROR_IO_PENDING:
697                 return("IO pending");
698                 break;
699         case ERROR_NOACCESS:
700                 return("No access");
701                 break;
702         case ERROR_SWAPERROR:
703                 return("Swap error");
704                 break;
705         case ERROR_STACK_OVERFLOW:
706                 return("Stack overflow");
707                 break;
708         case ERROR_INVALID_MESSAGE:
709                 return("Invalid message");
710                 break;
711         case ERROR_CAN_NOT_COMPLETE:
712                 return("Can not complete");
713                 break;
714         case ERROR_INVALID_FLAGS:
715                 return("Invalid flags");
716                 break;
717         case ERROR_UNRECOGNIZED_VOLUME:
718                 return("Unrecognised volume");
719                 break;
720         case ERROR_FILE_INVALID:
721                 return("File invalid");
722                 break;
723         case ERROR_FULLSCREEN_MODE:
724                 return("Full screen mode");
725                 break;
726         case ERROR_NO_TOKEN:
727                 return("No token");
728                 break;
729         case ERROR_BADDB:
730                 return("Bad DB");
731                 break;
732         case ERROR_BADKEY:
733                 return("Bad key");
734                 break;
735         case ERROR_CANTOPEN:
736                 return("Can't open");
737                 break;
738         case ERROR_CANTREAD:
739                 return("Can't read");
740                 break;
741         case ERROR_CANTWRITE:
742                 return("Can't write");
743                 break;
744         case ERROR_REGISTRY_RECOVERED:
745                 return("Registry recovered");
746                 break;
747         case ERROR_REGISTRY_CORRUPT:
748                 return("Registry corrupt");
749                 break;
750         case ERROR_REGISTRY_IO_FAILED:
751                 return("Registry IO failed");
752                 break;
753         case ERROR_NOT_REGISTRY_FILE:
754                 return("Not registry file");
755                 break;
756         case ERROR_KEY_DELETED:
757                 return("Key deleted");
758                 break;
759         case ERROR_NO_LOG_SPACE:
760                 return("No log space");
761                 break;
762         case ERROR_KEY_HAS_CHILDREN:
763                 return("Key has children");
764                 break;
765         case ERROR_CHILD_MUST_BE_VOLATILE:
766                 return("Child must be volatile");
767                 break;
768         case ERROR_NOTIFY_ENUM_DIR:
769                 return("Notify enum dir");
770                 break;
771         case ERROR_DEPENDENT_SERVICES_RUNNING:
772                 return("Dependent services running");
773                 break;
774         case ERROR_INVALID_SERVICE_CONTROL:
775                 return("Invalid service control");
776                 break;
777         case ERROR_SERVICE_REQUEST_TIMEOUT:
778                 return("Service request timeout");
779                 break;
780         case ERROR_SERVICE_NO_THREAD:
781                 return("Service no thread");
782                 break;
783         case ERROR_SERVICE_DATABASE_LOCKED:
784                 return("Service database locked");
785                 break;
786         case ERROR_SERVICE_ALREADY_RUNNING:
787                 return("Service already running");
788                 break;
789         case ERROR_INVALID_SERVICE_ACCOUNT:
790                 return("Invalid service account");
791                 break;
792         case ERROR_SERVICE_DISABLED:
793                 return("Service disabled");
794                 break;
795         case ERROR_CIRCULAR_DEPENDENCY:
796                 return("Circular dependency");
797                 break;
798         case ERROR_SERVICE_DOES_NOT_EXIST:
799                 return("Service does not exist");
800                 break;
801         case ERROR_SERVICE_CANNOT_ACCEPT_CTRL:
802                 return("Service cannot accept ctrl");
803                 break;
804         case ERROR_SERVICE_NOT_ACTIVE:
805                 return("Service not active");
806                 break;
807         case ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
808                 return("Failed service controller connect");
809                 break;
810         case ERROR_EXCEPTION_IN_SERVICE:
811                 return("Exception in service");
812                 break;
813         case ERROR_DATABASE_DOES_NOT_EXIST:
814                 return("Database does not exist");
815                 break;
816         case ERROR_SERVICE_SPECIFIC_ERROR:
817                 return("Service specific error");
818                 break;
819         case ERROR_PROCESS_ABORTED:
820                 return("Process aborted");
821                 break;
822         case ERROR_SERVICE_DEPENDENCY_FAIL:
823                 return("Service dependency fail");
824                 break;
825         case ERROR_SERVICE_LOGON_FAILED:
826                 return("Service logon failed");
827                 break;
828         case ERROR_SERVICE_START_HANG:
829                 return("Service start hang");
830                 break;
831         case ERROR_INVALID_SERVICE_LOCK:
832                 return("Invalid service lock");
833                 break;
834         case ERROR_SERVICE_MARKED_FOR_DELETE:
835                 return("Service marked for delete");
836                 break;
837         case ERROR_SERVICE_EXISTS:
838                 return("Service exists");
839                 break;
840         case ERROR_ALREADY_RUNNING_LKG:
841                 return("Already running lkg");
842                 break;
843         case ERROR_SERVICE_DEPENDENCY_DELETED:
844                 return("Service dependency deleted");
845                 break;
846         case ERROR_BOOT_ALREADY_ACCEPTED:
847                 return("Boot already accepted");
848                 break;
849         case ERROR_SERVICE_NEVER_STARTED:
850                 return("Service never started");
851                 break;
852         case ERROR_DUPLICATE_SERVICE_NAME:
853                 return("Duplicate service name");
854                 break;
855         case ERROR_DIFFERENT_SERVICE_ACCOUNT:
856                 return("Different service account");
857                 break;
858         case ERROR_CANNOT_DETECT_DRIVER_FAILURE:
859                 return("Cannot detect driver failure");
860                 break;
861         case ERROR_CANNOT_DETECT_PROCESS_ABORT:
862                 return("Cannot detect process abort");
863                 break;
864         case ERROR_NO_RECOVERY_PROGRAM:
865                 return("No recovery program");
866                 break;
867         case ERROR_SERVICE_NOT_IN_EXE:
868                 return("Service not in exe");
869                 break;
870         case ERROR_NOT_SAFEBOOT_SERVICE:
871                 return("Not safeboot service");
872                 break;
873         case ERROR_END_OF_MEDIA:
874                 return("End of media");
875                 break;
876         case ERROR_FILEMARK_DETECTED:
877                 return("Filemark detected");
878                 break;
879         case ERROR_BEGINNING_OF_MEDIA:
880                 return("Beginning of media");
881                 break;
882         case ERROR_SETMARK_DETECTED:
883                 return("Setmark detected");
884                 break;
885         case ERROR_NO_DATA_DETECTED:
886                 return("No data detected");
887                 break;
888         case ERROR_PARTITION_FAILURE:
889                 return("Partition failure");
890                 break;
891         case ERROR_INVALID_BLOCK_LENGTH:
892                 return("Invalid block length");
893                 break;
894         case ERROR_DEVICE_NOT_PARTITIONED:
895                 return("Device not partitioned");
896                 break;
897         case ERROR_UNABLE_TO_LOCK_MEDIA:
898                 return("Unable to lock media");
899                 break;
900         case ERROR_UNABLE_TO_UNLOAD_MEDIA:
901                 return("Unable to unload media");
902                 break;
903         case ERROR_MEDIA_CHANGED:
904                 return("Media changed");
905                 break;
906         case ERROR_BUS_RESET:
907                 return("Bus reset");
908                 break;
909         case ERROR_NO_MEDIA_IN_DRIVE:
910                 return("No media in drive");
911                 break;
912         case ERROR_NO_UNICODE_TRANSLATION:
913                 return("No unicode translation");
914                 break;
915         case ERROR_DLL_INIT_FAILED:
916                 return("DLL init failed");
917                 break;
918         case ERROR_SHUTDOWN_IN_PROGRESS:
919                 return("Shutdown in progress");
920                 break;
921         case ERROR_NO_SHUTDOWN_IN_PROGRESS:
922                 return("No shutdown in progress");
923                 break;
924         case ERROR_IO_DEVICE:
925                 return("IO device");
926                 break;
927         case ERROR_SERIAL_NO_DEVICE:
928                 return("Serial IO device");
929                 break;
930         case ERROR_IRQ_BUSY:
931                 return("IRQ busy");
932                 break;
933         case ERROR_MORE_WRITES:
934                 return("More writes");
935                 break;
936         case ERROR_COUNTER_TIMEOUT:
937                 return("Counter timeout");
938                 break;
939         case ERROR_FLOPPY_ID_MARK_NOT_FOUND:
940                 return("Floppy ID mark not found");
941                 break;
942         case ERROR_FLOPPY_WRONG_CYLINDER:
943                 return("Floppy wrong cylinder");
944                 break;
945         case ERROR_FLOPPY_UNKNOWN_ERROR:
946                 return("Floppy unknown error");
947                 break;
948         case ERROR_FLOPPY_BAD_REGISTERS:
949                 return("Floppy bad registers");
950                 break;
951         case ERROR_DISK_RECALIBRATE_FAILED:
952                 return("Disk recalibrate failed");
953                 break;
954         case ERROR_DISK_OPERATION_FAILED:
955                 return("Disk operation failed");
956                 break;
957         case ERROR_DISK_RESET_FAILED:
958                 return("Disk reset failed");
959                 break;
960         case ERROR_EOM_OVERFLOW:
961                 return("EOM overflow");
962                 break;
963         case ERROR_NOT_ENOUGH_SERVER_MEMORY:
964                 return("Not enough server memory");
965                 break;
966         case ERROR_POSSIBLE_DEADLOCK:
967                 return("Possible deadlock");
968                 break;
969         case ERROR_MAPPED_ALIGNMENT:
970                 return("Mapped alignment");
971                 break;
972         case ERROR_SET_POWER_STATE_VETOED:
973                 return("Set power state vetoed");
974                 break;
975         case ERROR_SET_POWER_STATE_FAILED:
976                 return("Set power state failed");
977                 break;
978         case ERROR_TOO_MANY_LINKS:
979                 return("Too many links");
980                 break;
981         case ERROR_OLD_WIN_VERSION:
982                 return("Old win version");
983                 break;
984         case ERROR_APP_WRONG_OS:
985                 return("App wrong OS");
986                 break;
987         case ERROR_SINGLE_INSTANCE_APP:
988                 return("Single instance app");
989                 break;
990         case ERROR_RMODE_APP:
991                 return("Rmode app");
992                 break;
993         case ERROR_INVALID_DLL:
994                 return("Invalid DLL");
995                 break;
996         case ERROR_NO_ASSOCIATION:
997                 return("No association");
998                 break;
999         case ERROR_DDE_FAIL:
1000                 return("DDE fail");
1001                 break;
1002         case ERROR_DLL_NOT_FOUND:
1003                 return("DLL not found");
1004                 break;
1005         case ERROR_NO_MORE_USER_HANDLES:
1006                 return("No more user handles");
1007                 break;
1008         case ERROR_MESSAGE_SYNC_ONLY:
1009                 return("Message sync only");
1010                 break;
1011         case ERROR_SOURCE_ELEMENT_EMPTY:
1012                 return("Source element empty");
1013                 break;
1014         case ERROR_DESTINATION_ELEMENT_FULL:
1015                 return("Destination element full");
1016                 break;
1017         case ERROR_ILLEGAL_ELEMENT_ADDRESS:
1018                 return("Illegal element address");
1019                 break;
1020         case ERROR_MAGAZINE_NOT_PRESENT:
1021                 return("Magazine not present");
1022                 break;
1023         case ERROR_DEVICE_REINITIALIZATION_NEEDED:
1024                 return("Device reinitialization needed");
1025                 break;
1026         case ERROR_DEVICE_REQUIRES_CLEANING:
1027                 return("Device requires cleaning");
1028                 break;
1029         case ERROR_DEVICE_DOOR_OPEN:
1030                 return("Device door open");
1031                 break;
1032         case ERROR_DEVICE_NOT_CONNECTED:
1033                 return("Device not connected");
1034                 break;
1035         case ERROR_NOT_FOUND:
1036                 return("Not found");
1037                 break;
1038         case ERROR_NO_MATCH:
1039                 return("No match");
1040                 break;
1041         case ERROR_SET_NOT_FOUND:
1042                 return("Set not found");
1043                 break;
1044         case ERROR_POINT_NOT_FOUND:
1045                 return("Point not found");
1046                 break;
1047         case ERROR_NO_TRACKING_SERVICE:
1048                 return("No tracking service");
1049                 break;
1050         case ERROR_NO_VOLUME_ID:
1051                 return("No volume ID");
1052                 break;
1053         case ERROR_UNABLE_TO_REMOVE_REPLACED:
1054                 return("Unable to remove replaced");
1055                 break;
1056         case ERROR_UNABLE_TO_MOVE_REPLACEMENT:
1057                 return("Unable to move replacement");
1058                 break;
1059         case ERROR_UNABLE_TO_MOVE_REPLACEMENT_2:
1060                 return("Unable to move replacement 2");
1061                 break;
1062         case ERROR_JOURNAL_DELETE_IN_PROGRESS:
1063                 return("Journal delete in progress");
1064                 break;
1065         case ERROR_JOURNAL_NOT_ACTIVE:
1066                 return("Journal not active");
1067                 break;
1068         case ERROR_POTENTIAL_FILE_FOUND:
1069                 return("Potential file found");
1070                 break;
1071         case ERROR_JOURNAL_ENTRY_DELETED:
1072                 return("Journal entry deleted");
1073                 break;
1074         case ERROR_BAD_DEVICE:
1075                 return("Bad device");
1076                 break;
1077         case ERROR_CONNECTION_UNAVAIL:
1078                 return("Connection unavail");
1079                 break;
1080         case ERROR_DEVICE_ALREADY_REMEMBERED:
1081                 return("Device already remembered");
1082                 break;
1083         case ERROR_NO_NET_OR_BAD_PATH:
1084                 return("No net or bad path");
1085                 break;
1086         case ERROR_BAD_PROVIDER:
1087                 return("Bad provider");
1088                 break;
1089         case ERROR_CANNOT_OPEN_PROFILE:
1090                 return("Cannot open profile");
1091                 break;
1092         case ERROR_BAD_PROFILE:
1093                 return("Bad profile");
1094                 break;
1095         case ERROR_NOT_CONTAINER:
1096                 return("Not container");
1097                 break;
1098         case ERROR_EXTENDED_ERROR:
1099                 return("Extended error");
1100                 break;
1101         case ERROR_INVALID_GROUPNAME:
1102                 return("Invalid group name");
1103                 break;
1104         case ERROR_INVALID_COMPUTERNAME:
1105                 return("Invalid computer name");
1106                 break;
1107         case ERROR_INVALID_EVENTNAME:
1108                 return("Invalid event name");
1109                 break;
1110         case ERROR_INVALID_DOMAINNAME:
1111                 return("Invalid domain name");
1112                 break;
1113         case ERROR_INVALID_SERVICENAME:
1114                 return("Invalid service name");
1115                 break;
1116         case ERROR_INVALID_NETNAME:
1117                 return("Invalid net name");
1118                 break;
1119         case ERROR_INVALID_SHARENAME:
1120                 return("Invalid share name");
1121                 break;
1122         case ERROR_INVALID_PASSWORDNAME:
1123                 return("Invalid password name");
1124                 break;
1125         case ERROR_INVALID_MESSAGENAME:
1126                 return("Invalid message name");
1127                 break;
1128         case ERROR_INVALID_MESSAGEDEST:
1129                 return("Invalid message dest");
1130                 break;
1131         case ERROR_SESSION_CREDENTIAL_CONFLICT:
1132                 return("Session credential conflict");
1133                 break;
1134         case ERROR_REMOTE_SESSION_LIMIT_EXCEEDED:
1135                 return("Remote session limit exceeded");
1136                 break;
1137         case ERROR_DUP_DOMAINNAME:
1138                 return("Dup domain name");
1139                 break;
1140         case ERROR_NO_NETWORK:
1141                 return("No network");
1142                 break;
1143         case ERROR_CANCELLED:
1144                 return("Cancelled");
1145                 break;
1146         case ERROR_USER_MAPPED_FILE:
1147                 return("User mapped file");
1148                 break;
1149         case ERROR_CONNECTION_REFUSED:
1150                 return("Connection refused");
1151                 break;
1152         case ERROR_GRACEFUL_DISCONNECT:
1153                 return("Graceful disconnect");
1154                 break;
1155         case ERROR_ADDRESS_ALREADY_ASSOCIATED:
1156                 return("Address already associated");
1157                 break;
1158         case ERROR_ADDRESS_NOT_ASSOCIATED:
1159                 return("Address not associated");
1160                 break;
1161         case ERROR_CONNECTION_INVALID:
1162                 return("Connected invalid");
1163                 break;
1164         case ERROR_CONNECTION_ACTIVE:
1165                 return("Connection active");
1166                 break;
1167         case ERROR_NETWORK_UNREACHABLE:
1168                 return("Network unreachable");
1169                 break;
1170         case ERROR_HOST_UNREACHABLE:
1171                 return("Host unreachable");
1172                 break;
1173         case ERROR_PROTOCOL_UNREACHABLE:
1174                 return("Protocol unreachable");
1175                 break;
1176         case ERROR_PORT_UNREACHABLE:
1177                 return("Port unreachable");
1178                 break;
1179         case ERROR_REQUEST_ABORTED:
1180                 return("Request aborted");
1181                 break;
1182         case ERROR_CONNECTION_ABORTED:
1183                 return("Connection aborted");
1184                 break;
1185         case ERROR_RETRY:
1186                 return("Retry");
1187                 break;
1188         case ERROR_CONNECTION_COUNT_LIMIT:
1189                 return("Connection count limit");
1190                 break;
1191         case ERROR_LOGIN_TIME_RESTRICTION:
1192                 return("Login time restriction");
1193                 break;
1194         case ERROR_LOGIN_WKSTA_RESTRICTION:
1195                 return("Login wksta restriction");
1196                 break;
1197         case ERROR_INCORRECT_ADDRESS:
1198                 return("Incorrect address");
1199                 break;
1200         case ERROR_ALREADY_REGISTERED:
1201                 return("Already registered");
1202                 break;
1203         case ERROR_SERVICE_NOT_FOUND:
1204                 return("Service not found");
1205                 break;
1206         case ERROR_NOT_AUTHENTICATED:
1207                 return("Not authenticated");
1208                 break;
1209         case ERROR_NOT_LOGGED_ON:
1210                 return("Not logged on");
1211                 break;
1212         case ERROR_CONTINUE:
1213                 return("Continue");
1214                 break;
1215         case ERROR_ALREADY_INITIALIZED:
1216                 return("Already initialised");
1217                 break;
1218         case ERROR_NO_MORE_DEVICES:
1219                 return("No more devices");
1220                 break;
1221         case ERROR_NO_SUCH_SITE:
1222                 return("No such site");
1223                 break;
1224         case ERROR_DOMAIN_CONTROLLER_EXISTS:
1225                 return("Domain controller exists");
1226                 break;
1227         case ERROR_ONLY_IF_CONNECTED:
1228                 return("Only if connected");
1229                 break;
1230         case ERROR_OVERRIDE_NOCHANGES:
1231                 return("Override no changes");
1232                 break;
1233         case ERROR_BAD_USER_PROFILE:
1234                 return("Bad user profile");
1235                 break;
1236         case ERROR_NOT_SUPPORTED_ON_SBS:
1237                 return("Not supported on SBS");
1238                 break;
1239         case ERROR_SERVER_SHUTDOWN_IN_PROGRESS:
1240                 return("Server shutdown in progress");
1241                 break;
1242         case ERROR_HOST_DOWN:
1243                 return("Host down");
1244                 break;
1245         case ERROR_NON_ACCOUNT_SID:
1246                 return("Non account sid");
1247                 break;
1248         case ERROR_NON_DOMAIN_SID:
1249                 return("Non domain sid");
1250                 break;
1251         case ERROR_APPHELP_BLOCK:
1252                 return("Apphelp block");
1253                 break;
1254         case ERROR_ACCESS_DISABLED_BY_POLICY:
1255                 return("Access disabled by policy");
1256                 break;
1257         case ERROR_REG_NAT_CONSUMPTION:
1258                 return("Reg nat consumption");
1259                 break;
1260         case ERROR_CSCSHARE_OFFLINE:
1261                 return("CSC share offline");
1262                 break;
1263         case ERROR_PKINIT_FAILURE:
1264                 return("PK init failure");
1265                 break;
1266         case ERROR_SMARTCARD_SUBSYSTEM_FAILURE:
1267                 return("Smartcard subsystem failure");
1268                 break;
1269         case ERROR_DOWNGRADE_DETECTED:
1270                 return("Downgrade detected");
1271                 break;
1272         case SEC_E_SMARTCARD_CERT_REVOKED:
1273                 return("Smartcard cert revoked");
1274                 break;
1275         case SEC_E_ISSUING_CA_UNTRUSTED:
1276                 return("Issuing CA untrusted");
1277                 break;
1278         case SEC_E_REVOCATION_OFFLINE_C:
1279                 return("Revocation offline");
1280                 break;
1281         case SEC_E_PKINIT_CLIENT_FAILUR:
1282                 return("PK init client failure");
1283                 break;
1284         case SEC_E_SMARTCARD_CERT_EXPIRED:
1285                 return("Smartcard cert expired");
1286                 break;
1287         case ERROR_MACHINE_LOCKED:
1288                 return("Machine locked");
1289                 break;
1290         case ERROR_CALLBACK_SUPPLIED_INVALID_DATA:
1291                 return("Callback supplied invalid data");
1292                 break;
1293         case ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED:
1294                 return("Sync foreground refresh required");
1295                 break;
1296         case ERROR_DRIVER_BLOCKED:
1297                 return("Driver blocked");
1298                 break;
1299         case ERROR_INVALID_IMPORT_OF_NON_DLL:
1300                 return("Invalid import of non DLL");
1301                 break;
1302         case ERROR_NOT_ALL_ASSIGNED:
1303                 return("Not all assigned");
1304                 break;
1305         case ERROR_SOME_NOT_MAPPED:
1306                 return("Some not mapped");
1307                 break;
1308         case ERROR_NO_QUOTAS_FOR_ACCOUNT:
1309                 return("No quotas for account");
1310                 break;
1311         case ERROR_LOCAL_USER_SESSION_KEY:
1312                 return("Local user session key");
1313                 break;
1314         case ERROR_NULL_LM_PASSWORD:
1315                 return("Null LM password");
1316                 break;
1317         case ERROR_UNKNOWN_REVISION:
1318                 return("Unknown revision");
1319                 break;
1320         case ERROR_REVISION_MISMATCH:
1321                 return("Revision mismatch");
1322                 break;
1323         case ERROR_INVALID_OWNER:
1324                 return("Invalid owner");
1325                 break;
1326         case ERROR_INVALID_PRIMARY_GROUP:
1327                 return("Invalid primary group");
1328                 break;
1329         case ERROR_NO_IMPERSONATION_TOKEN:
1330                 return("No impersonation token");
1331                 break;
1332         case ERROR_CANT_DISABLE_MANDATORY:
1333                 return("Can't disable mandatory");
1334                 break;
1335         case ERROR_NO_LOGON_SERVERS:
1336                 return("No logon servers");
1337                 break;
1338         case ERROR_NO_SUCH_LOGON_SESSION:
1339                 return("No such logon session");
1340                 break;
1341         case ERROR_NO_SUCH_PRIVILEGE:
1342                 return("No such privilege");
1343                 break;
1344         case ERROR_PRIVILEGE_NOT_HELD:
1345                 return("Privilege not held");
1346                 break;
1347         case ERROR_INVALID_ACCOUNT_NAME:
1348                 return("Invalid account name");
1349                 break;
1350         case ERROR_USER_EXISTS:
1351                 return("User exists");
1352                 break;
1353         case ERROR_NO_SUCH_USER:
1354                 return("No such user");
1355                 break;
1356         case ERROR_GROUP_EXISTS:
1357                 return("Group exists");
1358                 break;
1359         case ERROR_NO_SUCH_GROUP:
1360                 return("No such group");
1361                 break;
1362         case ERROR_MEMBER_IN_GROUP:
1363                 return("Member in group");
1364                 break;
1365         case ERROR_MEMBER_NOT_IN_GROUP:
1366                 return("Member not in group");
1367                 break;
1368         case ERROR_LAST_ADMIN:
1369                 return("Last admin");
1370                 break;
1371         case ERROR_WRONG_PASSWORD:
1372                 return("Wrong password");
1373                 break;
1374         case ERROR_ILL_FORMED_PASSWORD:
1375                 return("Ill formed password");
1376                 break;
1377         case ERROR_PASSWORD_RESTRICTION:
1378                 return("Password restriction");
1379                 break;
1380         case ERROR_LOGON_FAILURE:
1381                 return("Logon failure");
1382                 break;
1383         case ERROR_ACCOUNT_RESTRICTION:
1384                 return("Account restriction");
1385                 break;
1386         case ERROR_INVALID_LOGON_HOURS:
1387                 return("Invalid logon hours");
1388                 break;
1389         case ERROR_INVALID_WORKSTATION:
1390                 return("Invalid workstation");
1391                 break;
1392         case ERROR_PASSWORD_EXPIRED:
1393                 return("Password expired");
1394                 break;
1395         case ERROR_ACCOUNT_DISABLED:
1396                 return("Account disabled");
1397                 break;
1398         case ERROR_NONE_MAPPED:
1399                 return("None mapped");
1400                 break;
1401         case ERROR_TOO_MANY_LUIDS_REQUESTED:
1402                 return("Too many LUIDs requested");
1403                 break;
1404         case ERROR_LUIDS_EXHAUSTED:
1405                 return("LUIDs exhausted");
1406                 break;
1407         case ERROR_INVALID_SUB_AUTHORITY:
1408                 return("Invalid sub authority");
1409                 break;
1410         case ERROR_INVALID_ACL:
1411                 return("Invalid ACL");
1412                 break;
1413         case ERROR_INVALID_SID:
1414                 return("Invalid SID");
1415                 break;
1416         case ERROR_INVALID_SECURITY_DESCR:
1417                 return("Invalid security descr");
1418                 break;
1419         case ERROR_BAD_INHERITANCE_ACL:
1420                 return("Bad inheritance ACL");
1421                 break;
1422         case ERROR_SERVER_DISABLED:
1423                 return("Server disabled");
1424                 break;
1425         case ERROR_SERVER_NOT_DISABLED:
1426                 return("Server not disabled");
1427                 break;
1428         case ERROR_INVALID_ID_AUTHORITY:
1429                 return("Invalid ID authority");
1430                 break;
1431         case ERROR_ALLOTTED_SPACE_EXCEEDED:
1432                 return("Allotted space exceeded");
1433                 break;
1434         case ERROR_INVALID_GROUP_ATTRIBUTES:
1435                 return("Invalid group attributes");
1436                 break;
1437         case ERROR_BAD_IMPERSONATION_LEVEL:
1438                 return("Bad impersonation level");
1439                 break;
1440         case ERROR_CANT_OPEN_ANONYMOUS:
1441                 return("Can't open anonymous");
1442                 break;
1443         case ERROR_BAD_VALIDATION_CLASS:
1444                 return("Bad validation class");
1445                 break;
1446         case ERROR_BAD_TOKEN_TYPE:
1447                 return("Bad token type");
1448                 break;
1449         case ERROR_NO_SECURITY_ON_OBJECT:
1450                 return("No security on object");
1451                 break;
1452         case ERROR_CANT_ACCESS_DOMAIN_INFO:
1453                 return("Can't access domain info");
1454                 break;
1455         case ERROR_INVALID_SERVER_STATE:
1456                 return("Invalid server state");
1457                 break;
1458         case ERROR_INVALID_DOMAIN_STATE:
1459                 return("Invalid domain state");
1460                 break;
1461         case ERROR_INVALID_DOMAIN_ROLE:
1462                 return("Invalid domain role");
1463                 break;
1464         case ERROR_NO_SUCH_DOMAIN:
1465                 return("No such domain");
1466                 break;
1467         case ERROR_DOMAIN_EXISTS:
1468                 return("Domain exists");
1469                 break;
1470         case ERROR_DOMAIN_LIMIT_EXCEEDED:
1471                 return("Domain limit exceeded");
1472                 break;
1473         case ERROR_INTERNAL_DB_CORRUPTION:
1474                 return("Internal DB corruption");
1475                 break;
1476         case ERROR_INTERNAL_ERROR:
1477                 return("Internal error");
1478                 break;
1479         case ERROR_GENERIC_NOT_MAPPED:
1480                 return("Generic not mapped");
1481                 break;
1482         case ERROR_BAD_DESCRIPTOR_FORMAT:
1483                 return("Bad descriptor format");
1484                 break;
1485         case ERROR_NOT_LOGON_PROCESS:
1486                 return("Not logon process");
1487                 break;
1488         case ERROR_LOGON_SESSION_EXISTS:
1489                 return("Logon session exists");
1490                 break;
1491         case ERROR_NO_SUCH_PACKAGE:
1492                 return("No such package");
1493                 break;
1494         case ERROR_BAD_LOGON_SESSION_STATE:
1495                 return("Bad logon session state");
1496                 break;
1497         case ERROR_LOGON_SESSION_COLLISION:
1498                 return("Logon session collision");
1499                 break;
1500         case ERROR_INVALID_LOGON_TYPE:
1501                 return("Invalid logon type");
1502                 break;
1503         case ERROR_CANNOT_IMPERSONATE:
1504                 return("Cannot impersonate");
1505                 break;
1506         case ERROR_RXACT_INVALID_STATE:
1507                 return("Rxact invalid state");
1508                 break;
1509         case ERROR_RXACT_COMMIT_FAILURE:
1510                 return("Rxact commit failure");
1511                 break;
1512         case ERROR_SPECIAL_ACCOUNT:
1513                 return("Special account");
1514                 break;
1515         case ERROR_SPECIAL_GROUP:
1516                 return("Special group");
1517                 break;
1518         case ERROR_SPECIAL_USER:
1519                 return("Special user");
1520                 break;
1521         case ERROR_MEMBERS_PRIMARY_GROUP:
1522                 return("Members primary group");
1523                 break;
1524         case ERROR_TOKEN_ALREADY_IN_USE:
1525                 return("Token already in use");
1526                 break;
1527         case ERROR_NO_SUCH_ALIAS:
1528                 return("No such alias");
1529                 break;
1530         case ERROR_MEMBER_NOT_IN_ALIAS:
1531                 return("Member not in alias");
1532                 break;
1533         case ERROR_MEMBER_IN_ALIAS:
1534                 return("Member in alias");
1535                 break;
1536         case ERROR_ALIAS_EXISTS:
1537                 return("Alias exists");
1538                 break;
1539         case ERROR_LOGON_NOT_GRANTED:
1540                 return("Logon not granted");
1541                 break;
1542         case ERROR_TOO_MANY_SECRETS:
1543                 return("Too many secrets");
1544                 break;
1545         case ERROR_SECRET_TOO_LONG:
1546                 return("Secret too long");
1547                 break;
1548         case ERROR_INTERNAL_DB_ERROR:
1549                 return("Internal DB error");
1550                 break;
1551         case ERROR_TOO_MANY_CONTEXT_IDS:
1552                 return("Too many context IDs");
1553                 break;
1554         case ERROR_LOGON_TYPE_NOT_GRANTED:
1555                 return("Logon type not granted");
1556                 break;
1557         case ERROR_NT_CROSS_ENCRYPTION_REQUIRED:
1558                 return("NT cross encryption required");
1559                 break;
1560         case ERROR_NO_SUCH_MEMBER:
1561                 return("No such member");
1562                 break;
1563         case ERROR_INVALID_MEMBER:
1564                 return("Invalid member");
1565                 break;
1566         case ERROR_TOO_MANY_SIDS:
1567                 return("Too many SIDs");
1568                 break;
1569         case ERROR_LM_CROSS_ENCRYPTION_REQUIRED:
1570                 return("LM cross encryption required");
1571                 break;
1572         case ERROR_NO_INHERITANCE:
1573                 return("No inheritance");
1574                 break;
1575         case ERROR_FILE_CORRUPT:
1576                 return("File corrupt");
1577                 break;
1578         case ERROR_DISK_CORRUPT:
1579                 return("Disk corrupt");
1580                 break;
1581         case ERROR_NO_USER_SESSION_KEY:
1582                 return("No user session key");
1583                 break;
1584         case ERROR_LICENSE_QUOTA_EXCEEDED:
1585                 return("Licence quota exceeded");
1586                 break;
1587         case ERROR_WRONG_TARGET_NAME:
1588                 return("Wrong target name");
1589                 break;
1590         case ERROR_MUTUAL_AUTH_FAILED:
1591                 return("Mutual auth failed");
1592                 break;
1593         case ERROR_TIME_SKEW:
1594                 return("Time skew");
1595                 break;
1596         case ERROR_CURRENT_DOMAIN_NOT_ALLOWED:
1597                 return("Current domain not allowed");
1598                 break;
1599         case ERROR_INVALID_WINDOW_HANDLE:
1600                 return("Invalid window handle");
1601                 break;
1602         case ERROR_INVALID_MENU_HANDLE:
1603                 return("Invalid menu handle");
1604                 break;
1605         case ERROR_INVALID_CURSOR_HANDLE:
1606                 return("Invalid cursor handle");
1607                 break;
1608         case ERROR_INVALID_ACCEL_HANDLE:
1609                 return("Invalid accel handle");
1610                 break;
1611         case ERROR_INVALID_HOOK_HANDLE:
1612                 return("Invalid hook handle");
1613                 break;
1614         case ERROR_INVALID_DWP_HANDLE:
1615                 return("Invalid DWP handle");
1616                 break;
1617         case ERROR_TLW_WITH_WSCHILD:
1618                 return("TLW with wschild");
1619                 break;
1620         case ERROR_CANNOT_FIND_WND_CLASS:
1621                 return("Cannot find WND class");
1622                 break;
1623         case ERROR_WINDOW_OF_OTHER_THREAD:
1624                 return("Window of other thread");
1625                 break;
1626         case ERROR_HOTKEY_ALREADY_REGISTERED:
1627                 return("Hotkey already registered");
1628                 break;
1629         case ERROR_CLASS_ALREADY_EXISTS:
1630                 return("Class already exists");
1631                 break;
1632         case ERROR_CLASS_DOES_NOT_EXIST:
1633                 return("Class does not exist");
1634                 break;
1635         case ERROR_CLASS_HAS_WINDOWS:
1636                 return("Class has windows");
1637                 break;
1638         case ERROR_INVALID_INDEX:
1639                 return("Invalid index");
1640                 break;
1641         case ERROR_INVALID_ICON_HANDLE:
1642                 return("Invalid icon handle");
1643                 break;
1644         case ERROR_PRIVATE_DIALOG_INDEX:
1645                 return("Private dialog index");
1646                 break;
1647         case ERROR_LISTBOX_ID_NOT_FOUND:
1648                 return("Listbox ID not found");
1649                 break;
1650         case ERROR_NO_WILDCARD_CHARACTERS:
1651                 return("No wildcard characters");
1652                 break;
1653         case ERROR_CLIPBOARD_NOT_OPEN:
1654                 return("Clipboard not open");
1655                 break;
1656         case ERROR_HOTKEY_NOT_REGISTERED:
1657                 return("Hotkey not registered");
1658                 break;
1659         case ERROR_WINDOW_NOT_DIALOG:
1660                 return("Window not dialog");
1661                 break;
1662         case ERROR_CONTROL_ID_NOT_FOUND:
1663                 return("Control ID not found");
1664                 break;
1665         case ERROR_INVALID_COMBOBOX_MESSAGE:
1666                 return("Invalid combobox message");
1667                 break;
1668         case ERROR_WINDOW_NOT_COMBOBOX:
1669                 return("Window not combobox");
1670                 break;
1671         case ERROR_INVALID_EDIT_HEIGHT:
1672                 return("Invalid edit height");
1673                 break;
1674         case ERROR_DC_NOT_FOUND:
1675                 return("DC not found");
1676                 break;
1677         case ERROR_INVALID_HOOK_FILTER:
1678                 return("Invalid hook filter");
1679                 break;
1680         case ERROR_INVALID_FILTER_PROC:
1681                 return("Invalid filter proc");
1682                 break;
1683         case ERROR_HOOK_NEEDS_HMOD:
1684                 return("Hook needs HMOD");
1685                 break;
1686         case ERROR_GLOBAL_ONLY_HOOK:
1687                 return("Global only hook");
1688                 break;
1689         case ERROR_JOURNAL_HOOK_SET:
1690                 return("Journal hook set");
1691                 break;
1692         case ERROR_HOOK_NOT_INSTALLED:
1693                 return("Hook not installed");
1694                 break;
1695         case ERROR_INVALID_LB_MESSAGE:
1696                 return("Invalid LB message");
1697                 break;
1698         case ERROR_SETCOUNT_ON_BAD_LB:
1699                 return("Setcount on bad LB");
1700                 break;
1701         case ERROR_LB_WITHOUT_TABSTOPS:
1702                 return("LB without tabstops");
1703                 break;
1704         case ERROR_DESTROY_OBJECT_OF_OTHER_THREAD:
1705                 return("Destroy object of other thread");
1706                 break;
1707         case ERROR_CHILD_WINDOW_MENU:
1708                 return("Child window menu");
1709                 break;
1710         case ERROR_NO_SYSTEM_MENU:
1711                 return("No system menu");
1712                 break;
1713         case ERROR_INVALID_MSGBOX_STYLE:
1714                 return("Invalid msgbox style");
1715                 break;
1716         case ERROR_INVALID_SPI_VALUE:
1717                 return("Invalid SPI value");
1718                 break;
1719         case ERROR_SCREEN_ALREADY_LOCKED:
1720                 return("Screen already locked");
1721                 break;
1722         case ERROR_HWNDS_HAVE_DIFF_PARENT:
1723                 return("HWNDs have different parent");
1724                 break;
1725         case ERROR_NOT_CHILD_WINDOW:
1726                 return("Not child window");
1727                 break;
1728         case ERROR_INVALID_GW_COMMAND:
1729                 return("Invalid GW command");
1730                 break;
1731         case ERROR_INVALID_THREAD_ID:
1732                 return("Invalid thread ID");
1733                 break;
1734         case ERROR_NON_MDICHILD_WINDOW:
1735                 return("Non MDI child window");
1736                 break;
1737         case ERROR_POPUP_ALREADY_ACTIVE:
1738                 return("Popup already active");
1739                 break;
1740         case ERROR_NO_SCROLLBARS:
1741                 return("No scrollbars");
1742                 break;
1743         case ERROR_INVALID_SCROLLBAR_RANGE:
1744                 return("Invalid scrollbar range");
1745                 break;
1746         case ERROR_INVALID_SHOWWIN_COMMAND:
1747                 return("Invalid showwin command");
1748                 break;
1749         case ERROR_NO_SYSTEM_RESOURCES:
1750                 return("No system resources");
1751                 break;
1752         case ERROR_NONPAGED_SYSTEM_RESOURCES:
1753                 return("Nonpaged system resources");
1754                 break;
1755         case ERROR_PAGED_SYSTEM_RESOURCES:
1756                 return("Paged system resources");
1757                 break;
1758         case ERROR_WORKING_SET_QUOTA:
1759                 return("Working set quota");
1760                 break;
1761         case ERROR_PAGEFILE_QUOTA:
1762                 return("Pagefile quota");
1763                 break;
1764         case ERROR_COMMITMENT_LIMIT:
1765                 return("Commitment limit");
1766                 break;
1767         case ERROR_MENU_ITEM_NOT_FOUND:
1768                 return("Menu item not found");
1769                 break;
1770         case ERROR_INVALID_KEYBOARD_HANDLE:
1771                 return("Invalid keyboard handle");
1772                 break;
1773         case ERROR_HOOK_TYPE_NOT_ALLOWED:
1774                 return("Hook type not allowed");
1775                 break;
1776         case ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION:
1777                 return("Requires interactive windowstation");
1778                 break;
1779         case ERROR_TIMEOUT:
1780                 return("Timeout");
1781                 break;
1782         case ERROR_INVALID_MONITOR_HANDLE:
1783                 return("Invalid monitor handle");
1784                 break;
1785         case ERROR_EVENTLOG_FILE_CORRUPT:
1786                 return("Eventlog file corrupt");
1787                 break;
1788         case ERROR_EVENTLOG_CANT_START:
1789                 return("Eventlog can't start");
1790                 break;
1791         case ERROR_LOG_FILE_FULL:
1792                 return("Log file full");
1793                 break;
1794         case ERROR_EVENTLOG_FILE_CHANGED:
1795                 return("Eventlog file changed");
1796                 break;
1797         case ERROR_INSTALL_SERVICE_FAILURE:
1798                 return("Install service failure");
1799                 break;
1800         case ERROR_INSTALL_USEREXIT:
1801                 return("Install userexit");
1802                 break;
1803         case ERROR_INSTALL_FAILURE:
1804                 return("Install failure");
1805                 break;
1806         case ERROR_INSTALL_SUSPEND:
1807                 return("Install suspend");
1808                 break;
1809         case ERROR_UNKNOWN_PRODUCT:
1810                 return("Unknown product");
1811                 break;
1812         case ERROR_UNKNOWN_FEATURE:
1813                 return("Unknown feature");
1814                 break;
1815         case ERROR_UNKNOWN_COMPONENT:
1816                 return("Unknown component");
1817                 break;
1818         case ERROR_UNKNOWN_PROPERTY:
1819                 return("Unknown property");
1820                 break;
1821         case ERROR_INVALID_HANDLE_STATE:
1822                 return("Invalid handle state");
1823                 break;
1824         case ERROR_BAD_CONFIGURATION:
1825                 return("Bad configuration");
1826                 break;
1827         case ERROR_INDEX_ABSENT:
1828                 return("Index absent");
1829                 break;
1830         case ERROR_INSTALL_SOURCE_ABSENT:
1831                 return("Install source absent");
1832                 break;
1833         case ERROR_INSTALL_PACKAGE_VERSION:
1834                 return("Install package version");
1835                 break;
1836         case ERROR_PRODUCT_UNINSTALLED:
1837                 return("Product uninstalled");
1838                 break;
1839         case ERROR_BAD_QUERY_SYNTAX:
1840                 return("Bad query syntax");
1841                 break;
1842         case ERROR_INVALID_FIELD:
1843                 return("Invalid field");
1844                 break;
1845         case ERROR_DEVICE_REMOVED:
1846                 return("Device removed");
1847                 break;
1848         case ERROR_INSTALL_ALREADY_RUNNING:
1849                 return("Install already running");
1850                 break;
1851         case ERROR_INSTALL_PACKAGE_OPEN_FAILED:
1852                 return("Install package open failed");
1853                 break;
1854         case ERROR_INSTALL_PACKAGE_INVALID:
1855                 return("Install package invalid");
1856                 break;
1857         case ERROR_INSTALL_UI_FAILURE:
1858                 return("Install UI failure");
1859                 break;
1860         case ERROR_INSTALL_LOG_FAILURE:
1861                 return("Install log failure");
1862                 break;
1863         case ERROR_INSTALL_LANGUAGE_UNSUPPORTED:
1864                 return("Install language unsupported");
1865                 break;
1866         case ERROR_INSTALL_TRANSFORM_FAILURE:
1867                 return("Install transform failure");
1868                 break;
1869         case ERROR_INSTALL_PACKAGE_REJECTED:
1870                 return("Install package rejected");
1871                 break;
1872         case ERROR_FUNCTION_NOT_CALLED:
1873                 return("Function not called");
1874                 break;
1875         case ERROR_FUNCTION_FAILED:
1876                 return("Function failed");
1877                 break;
1878         case ERROR_INVALID_TABLE:
1879                 return("Invalid table");
1880                 break;
1881         case ERROR_DATATYPE_MISMATCH:
1882                 return("Datatype mismatch");
1883                 break;
1884         case ERROR_UNSUPPORTED_TYPE:
1885                 return("Unsupported type");
1886                 break;
1887         case ERROR_CREATE_FAILED:
1888                 return("Create failed");
1889                 break;
1890         case ERROR_INSTALL_TEMP_UNWRITABLE:
1891                 return("Install temp unwritable");
1892                 break;
1893         case ERROR_INSTALL_PLATFORM_UNSUPPORTED:
1894                 return("Install platform unsupported");
1895                 break;
1896         case ERROR_INSTALL_NOTUSED:
1897                 return("Install notused");
1898                 break;
1899         case ERROR_PATCH_PACKAGE_OPEN_FAILED:
1900                 return("Patch package open failed");
1901                 break;
1902         case ERROR_PATCH_PACKAGE_INVALID:
1903                 return("Patch package invalid");
1904                 break;
1905         case ERROR_PATCH_PACKAGE_UNSUPPORTED:
1906                 return("Patch package unsupported");
1907                 break;
1908         case ERROR_PRODUCT_VERSION:
1909                 return("Product version");
1910                 break;
1911         case ERROR_INVALID_COMMAND_LINE:
1912                 return("Invalid command line");
1913                 break;
1914         case ERROR_INSTALL_REMOTE_DISALLOWED:
1915                 return("Install remote disallowed");
1916                 break;
1917         case ERROR_SUCCESS_REBOOT_INITIATED:
1918                 return("Success reboot initiated");
1919                 break;
1920         case ERROR_PATCH_TARGET_NOT_FOUND:
1921                 return("Patch target not found");
1922                 break;
1923         case ERROR_PATCH_PACKAGE_REJECTED:
1924                 return("Patch package rejected");
1925                 break;
1926         case ERROR_INSTALL_TRANSFORM_REJECTED:
1927                 return("Install transform rejected");
1928                 break;
1929         case RPC_S_INVALID_STRING_BINDING:
1930                 return("RPC S Invalid string binding");
1931                 break;
1932         case RPC_S_WRONG_KIND_OF_BINDING:
1933                 return("RPC S Wrong kind of binding");
1934                 break;
1935         case RPC_S_INVALID_BINDING:
1936                 return("RPC S Invalid binding");
1937                 break;
1938         case RPC_S_PROTSEQ_NOT_SUPPORTED:
1939                 return("RPC S Protseq not supported");
1940                 break;
1941         case RPC_S_INVALID_RPC_PROTSEQ:
1942                 return("RPC S Invalid RPC protseq");
1943                 break;
1944         case RPC_S_INVALID_STRING_UUID:
1945                 return("RPC S Invalid string UUID");
1946                 break;
1947         case RPC_S_INVALID_ENDPOINT_FORMAT:
1948                 return("RPC S Invalid endpoint format");
1949                 break;
1950         case RPC_S_INVALID_NET_ADDR:
1951                 return("RPC S Invalid net addr");
1952                 break;
1953         case RPC_S_NO_ENDPOINT_FOUND:
1954                 return("RPC S No endpoint found");
1955                 break;
1956         case RPC_S_INVALID_TIMEOUT:
1957                 return("RPC S Invalid timeout");
1958                 break;
1959         case RPC_S_OBJECT_NOT_FOUND:
1960                 return("RPC S Object not found");
1961                 break;
1962         case RPC_S_ALREADY_REGISTERED:
1963                 return("RPC S Already registered");
1964                 break;
1965         case RPC_S_TYPE_ALREADY_REGISTERED:
1966                 return("RPC S Type already registered");
1967                 break;
1968         case RPC_S_ALREADY_LISTENING:
1969                 return("RPC S Already listening");
1970                 break;
1971         case RPC_S_NO_PROTSEQS_REGISTERED:
1972                 return("RPC S Not protseqs registered");
1973                 break;
1974         case RPC_S_NOT_LISTENING:
1975                 return("RPC S Not listening");
1976                 break;
1977         case RPC_S_UNKNOWN_MGR_TYPE:
1978                 return("RPC S Unknown mgr type");
1979                 break;
1980         case RPC_S_UNKNOWN_IF:
1981                 return("RPC S Unknown IF");
1982                 break;
1983         case RPC_S_NO_BINDINGS:
1984                 return("RPC S No bindings");
1985                 break;
1986         case RPC_S_NO_PROTSEQS:
1987                 return("RPC S Not protseqs");
1988                 break;
1989         case RPC_S_CANT_CREATE_ENDPOINT:
1990                 return("RPC S Can't create endpoint");
1991                 break;
1992         case RPC_S_OUT_OF_RESOURCES:
1993                 return("RPC S Out of resources");
1994                 break;
1995         case RPC_S_SERVER_UNAVAILABLE:
1996                 return("RPC S Server unavailable");
1997                 break;
1998         case RPC_S_SERVER_TOO_BUSY:
1999                 return("RPC S Server too busy");
2000                 break;
2001         case RPC_S_INVALID_NETWORK_OPTIONS:
2002                 return("RPC S Invalid network options");
2003                 break;
2004         case RPC_S_NO_CALL_ACTIVE:
2005                 return("RPC S No call active");
2006                 break;
2007         case RPC_S_CALL_FAILED:
2008                 return("RPC S Call failed");
2009                 break;
2010         case RPC_S_CALL_FAILED_DNE:
2011                 return("RPC S Call failed DNE");
2012                 break;
2013         case RPC_S_PROTOCOL_ERROR:
2014                 return("RPC S Protocol error");
2015                 break;
2016         case RPC_S_UNSUPPORTED_TRANS_SYN:
2017                 return("RPC S Unsupported trans syn");
2018                 break;
2019         case RPC_S_UNSUPPORTED_TYPE:
2020                 return("RPC S Unsupported type");
2021                 break;
2022         case RPC_S_INVALID_TAG:
2023                 return("RPC S Invalid tag");
2024                 break;
2025         case RPC_S_INVALID_BOUND:
2026                 return("RPC S Invalid bound");
2027                 break;
2028         case RPC_S_NO_ENTRY_NAME:
2029                 return("RPC S No entry name");
2030                 break;
2031         case RPC_S_INVALID_NAME_SYNTAX:
2032                 return("RPC S Invalid name syntax");
2033                 break;
2034         case RPC_S_UNSUPPORTED_NAME_SYNTAX:
2035                 return("RPC S Unsupported name syntax");
2036                 break;
2037         case RPC_S_UUID_NO_ADDRESS:
2038                 return("RPC S UUID no address");
2039                 break;
2040         case RPC_S_DUPLICATE_ENDPOINT:
2041                 return("RPC S Duplicate endpoint");
2042                 break;
2043         case RPC_S_UNKNOWN_AUTHN_TYPE:
2044                 return("RPC S Unknown authn type");
2045                 break;
2046         case RPC_S_MAX_CALLS_TOO_SMALL:
2047                 return("RPC S Max calls too small");
2048                 break;
2049         case RPC_S_STRING_TOO_LONG:
2050                 return("RPC S String too long");
2051                 break;
2052         case RPC_S_PROTSEQ_NOT_FOUND:
2053                 return("RPC S Protseq not found");
2054                 break;
2055         case RPC_S_PROCNUM_OUT_OF_RANGE:
2056                 return("RPC S Procnum out of range");
2057                 break;
2058         case RPC_S_BINDING_HAS_NO_AUTH:
2059                 return("RPC S Binding has no auth");
2060                 break;
2061         case RPC_S_UNKNOWN_AUTHN_SERVICE:
2062                 return("RPC S Unknown authn service");
2063                 break;
2064         case RPC_S_UNKNOWN_AUTHN_LEVEL:
2065                 return("RPC S Unknown authn level");
2066                 break;
2067         case RPC_S_INVALID_AUTH_IDENTITY:
2068                 return("RPC S Invalid auth identity");
2069                 break;
2070         case RPC_S_UNKNOWN_AUTHZ_SERVICE:
2071                 return("RPC S Unknown authz service");
2072                 break;
2073         case EPT_S_INVALID_ENTRY:
2074                 return("EPT S Invalid entry");
2075                 break;
2076         case EPT_S_CANT_PERFORM_OP:
2077                 return("EPT S Can't perform op");
2078                 break;
2079         case EPT_S_NOT_REGISTERED:
2080                 return("EPT S Not registered");
2081                 break;
2082         case RPC_S_NOTHING_TO_EXPORT:
2083                 return("RPC S Nothing to export");
2084                 break;
2085         case RPC_S_INCOMPLETE_NAME:
2086                 return("RPC S Incomplete name");
2087                 break;
2088         case RPC_S_INVALID_VERS_OPTION:
2089                 return("RPC S Invalid vers option");
2090                 break;
2091         case RPC_S_NO_MORE_MEMBERS:
2092                 return("RPC S No more members");
2093                 break;
2094         case RPC_S_NOT_ALL_OBJS_UNEXPORTED:
2095                 return("RPC S Not all objs unexported");
2096                 break;
2097         case RPC_S_INTERFACE_NOT_FOUND:
2098                 return("RPC S Interface not found");
2099                 break;
2100         case RPC_S_ENTRY_ALREADY_EXISTS:
2101                 return("RPC S Entry already exists");
2102                 break;
2103         case RPC_S_ENTRY_NOT_FOUND:
2104                 return("RPC S Entry not found");
2105                 break;
2106         case RPC_S_NAME_SERVICE_UNAVAILABLE:
2107                 return("RPC S Name service unavailable");
2108                 break;
2109         case RPC_S_INVALID_NAF_ID:
2110                 return("RPC S Invalid naf ID");
2111                 break;
2112         case RPC_S_CANNOT_SUPPORT:
2113                 return("RPC S Cannot support");
2114                 break;
2115         case RPC_S_NO_CONTEXT_AVAILABLE:
2116                 return("RPC S No context available");
2117                 break;
2118         case RPC_S_INTERNAL_ERROR:
2119                 return("RPC S Internal error");
2120                 break;
2121         case RPC_S_ZERO_DIVIDE:
2122                 return("RPC S Zero divide");
2123                 break;
2124         case RPC_S_ADDRESS_ERROR:
2125                 return("RPC S Address error");
2126                 break;
2127         case RPC_S_FP_DIV_ZERO:
2128                 return("RPC S FP div zero");
2129                 break;
2130         case RPC_S_FP_UNDERFLOW:
2131                 return("RPC S FP Underflow");
2132                 break;
2133         case RPC_S_FP_OVERFLOW:
2134                 return("RPC S Overflow");
2135                 break;
2136         case RPC_X_NO_MORE_ENTRIES:
2137                 return("RPC X No more entries");
2138                 break;
2139         case RPC_X_SS_CHAR_TRANS_OPEN_FAIL:
2140                 return("RPC X SS char trans open fail");
2141                 break;
2142         case RPC_X_SS_CHAR_TRANS_SHORT_FILE:
2143                 return("RPC X SS char trans short file");
2144                 break;
2145         case RPC_X_SS_IN_NULL_CONTEXT:
2146                 return("RPC S SS in null context");
2147                 break;
2148         case RPC_X_SS_CONTEXT_DAMAGED:
2149                 return("RPC X SS context damaged");
2150                 break;
2151         case RPC_X_SS_HANDLES_MISMATCH:
2152                 return("RPC X SS handles mismatch");
2153                 break;
2154         case RPC_X_SS_CANNOT_GET_CALL_HANDLE:
2155                 return("RPC X SS cannot get call handle");
2156                 break;
2157         case RPC_X_NULL_REF_POINTER:
2158                 return("RPC X Null ref pointer");
2159                 break;
2160         case RPC_X_ENUM_VALUE_OUT_OF_RANGE:
2161                 return("RPC X enum value out of range");
2162                 break;
2163         case RPC_X_BYTE_COUNT_TOO_SMALL:
2164                 return("RPC X byte count too small");
2165                 break;
2166         case RPC_X_BAD_STUB_DATA:
2167                 return("RPC X bad stub data");
2168                 break;
2169         case ERROR_INVALID_USER_BUFFER:
2170                 return("Invalid user buffer");
2171                 break;
2172         case ERROR_UNRECOGNIZED_MEDIA:
2173                 return("Unrecognised media");
2174                 break;
2175         case ERROR_NO_TRUST_LSA_SECRET:
2176                 return("No trust lsa secret");
2177                 break;
2178         case ERROR_NO_TRUST_SAM_ACCOUNT:
2179                 return("No trust sam account");
2180                 break;
2181         case ERROR_TRUSTED_DOMAIN_FAILURE:
2182                 return("Trusted domain failure");
2183                 break;
2184         case ERROR_TRUSTED_RELATIONSHIP_FAILURE:
2185                 return("Trusted relationship failure");
2186                 break;
2187         case ERROR_TRUST_FAILURE:
2188                 return("Trust failure");
2189                 break;
2190         case RPC_S_CALL_IN_PROGRESS:
2191                 return("RPC S call in progress");
2192                 break;
2193         case ERROR_NETLOGON_NOT_STARTED:
2194                 return("Error netlogon not started");
2195                 break;
2196         case ERROR_ACCOUNT_EXPIRED:
2197                 return("Account expired");
2198                 break;
2199         case ERROR_REDIRECTOR_HAS_OPEN_HANDLES:
2200                 return("Redirector has open handles");
2201                 break;
2202         case ERROR_PRINTER_DRIVER_ALREADY_INSTALLED:
2203                 return("Printer driver already installed");
2204                 break;
2205         case ERROR_UNKNOWN_PORT:
2206                 return("Unknown port");
2207                 break;
2208         case ERROR_UNKNOWN_PRINTER_DRIVER:
2209                 return("Unknown printer driver");
2210                 break;
2211         case ERROR_UNKNOWN_PRINTPROCESSOR:
2212                 return("Unknown printprocessor");
2213                 break;
2214         case ERROR_INVALID_SEPARATOR_FILE:
2215                 return("Invalid separator file");
2216                 break;
2217         case ERROR_INVALID_PRIORITY:
2218                 return("Invalid priority");
2219                 break;
2220         case ERROR_INVALID_PRINTER_NAME:
2221                 return("Invalid printer name");
2222                 break;
2223         case ERROR_PRINTER_ALREADY_EXISTS:
2224                 return("Printer already exists");
2225                 break;
2226         case ERROR_INVALID_PRINTER_COMMAND:
2227                 return("Invalid printer command");
2228                 break;
2229         case ERROR_INVALID_DATATYPE:
2230                 return("Invalid datatype");
2231                 break;
2232         case ERROR_INVALID_ENVIRONMENT:
2233                 return("Invalid environment");
2234                 break;
2235         case RPC_S_NO_MORE_BINDINGS:
2236                 return("RPC S no more bindings");
2237                 break;
2238         case ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT:
2239                 return("Nologon interdomain trust account");
2240                 break;
2241         case ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT:
2242                 return("Nologon workstation trust account");
2243                 break;
2244         case ERROR_NOLOGON_SERVER_TRUST_ACCOUNT:
2245                 return("Nologon server trust account");
2246                 break;
2247         case ERROR_DOMAIN_TRUST_INCONSISTENT:
2248                 return("Domain trust inconsistent");
2249                 break;
2250         case ERROR_SERVER_HAS_OPEN_HANDLES:
2251                 return("Server has open handles");
2252                 break;
2253         case ERROR_RESOURCE_DATA_NOT_FOUND:
2254                 return("Resource data not found");
2255                 break;
2256         case ERROR_RESOURCE_TYPE_NOT_FOUND:
2257                 return("Resource type not found");
2258                 break;
2259         case ERROR_RESOURCE_NAME_NOT_FOUND:
2260                 return("Resource name not found");
2261                 break;
2262         case ERROR_RESOURCE_LANG_NOT_FOUND:
2263                 return("Resource lang not found");
2264                 break;
2265         case ERROR_NOT_ENOUGH_QUOTA:
2266                 return("Not enough quota");
2267                 break;
2268         case RPC_S_NO_INTERFACES:
2269                 return("RPC S no interfaces");
2270                 break;
2271         case RPC_S_CALL_CANCELLED:
2272                 return("RPC S Call cancelled");
2273                 break;
2274         case RPC_S_BINDING_INCOMPLETE:
2275                 return("RPC S Binding incomplete");
2276                 break;
2277         case RPC_S_COMM_FAILURE:
2278                 return("RPC S Comm failure");
2279                 break;
2280         case RPC_S_UNSUPPORTED_AUTHN_LEVEL:
2281                 return("RPC S Unsupported authn level");
2282                 break;
2283         case RPC_S_NO_PRINC_NAME:
2284                 return("RPC S No princ name");
2285                 break;
2286         case RPC_S_NOT_RPC_ERROR:
2287                 return("RPC S Not RPC error");
2288                 break;
2289         case RPC_S_UUID_LOCAL_ONLY:
2290                 return("RPC U UUID local only");
2291                 break;
2292         case RPC_S_SEC_PKG_ERROR:
2293                 return("RPC S Sec pkg error");
2294                 break;
2295         case RPC_S_NOT_CANCELLED:
2296                 return("RPC S Not cancelled");
2297                 break;
2298         case RPC_X_INVALID_ES_ACTION:
2299                 return("RPC X Invalid ES action");
2300                 break;
2301         case RPC_X_WRONG_ES_VERSION:
2302                 return("RPC X Wrong ES version");
2303                 break;
2304         case RPC_X_WRONG_STUB_VERSION:
2305                 return("RPC X Wrong stub version");
2306                 break;
2307         case RPC_X_INVALID_PIPE_OBJECT:
2308                 return("RPC X Invalid pipe object");
2309                 break;
2310         case RPC_X_WRONG_PIPE_ORDER:
2311                 return("RPC X Wrong pipe order");
2312                 break;
2313         case RPC_X_WRONG_PIPE_VERSION:
2314                 return("RPC X Wrong pipe version");
2315                 break;
2316         case RPC_S_GROUP_MEMBER_NOT_FOUND:
2317                 return("RPC S group member not found");
2318                 break;
2319         case EPT_S_CANT_CREATE:
2320                 return("EPT S Can't create");
2321                 break;
2322         case RPC_S_INVALID_OBJECT:
2323                 return("RPC S Invalid object");
2324                 break;
2325         case ERROR_INVALID_TIME:
2326                 return("Invalid time");
2327                 break;
2328         case ERROR_INVALID_FORM_NAME:
2329                 return("Invalid form name");
2330                 break;
2331         case ERROR_INVALID_FORM_SIZE:
2332                 return("Invalid form size");
2333                 break;
2334         case ERROR_ALREADY_WAITING:
2335                 return("Already waiting");
2336                 break;
2337         case ERROR_PRINTER_DELETED:
2338                 return("Printer deleted");
2339                 break;
2340         case ERROR_INVALID_PRINTER_STATE:
2341                 return("Invalid printer state");
2342                 break;
2343         case ERROR_PASSWORD_MUST_CHANGE:
2344                 return("Password must change");
2345                 break;
2346         case ERROR_DOMAIN_CONTROLLER_NOT_FOUND:
2347                 return("Domain controller not found");
2348                 break;
2349         case ERROR_ACCOUNT_LOCKED_OUT:
2350                 return("Account locked out");
2351                 break;
2352         case OR_INVALID_OXID:
2353                 return("OR Invalid OXID");
2354                 break;
2355         case OR_INVALID_OID:
2356                 return("OR Invalid OID");
2357                 break;
2358         case OR_INVALID_SET:
2359                 return("OR Invalid set");
2360                 break;
2361         case RPC_S_SEND_INCOMPLETE:
2362                 return("RPC S Send incomplete");
2363                 break;
2364         case RPC_S_INVALID_ASYNC_HANDLE:
2365                 return("RPC S Invalid async handle");
2366                 break;
2367         case RPC_S_INVALID_ASYNC_CALL:
2368                 return("RPC S Invalid async call");
2369                 break;
2370         case RPC_X_PIPE_CLOSED:
2371                 return("RPC X Pipe closed");
2372                 break;
2373         case RPC_X_PIPE_DISCIPLINE_ERROR:
2374                 return("RPC X Pipe discipline error");
2375                 break;
2376         case RPC_X_PIPE_EMPTY:
2377                 return("RPC X Pipe empty");
2378                 break;
2379         case ERROR_NO_SITENAME:
2380                 return("No sitename");
2381                 break;
2382         case ERROR_CANT_ACCESS_FILE:
2383                 return("Can't access file");
2384                 break;
2385         case ERROR_CANT_RESOLVE_FILENAME:
2386                 return("Can't resolve filename");
2387                 break;
2388         case RPC_S_ENTRY_TYPE_MISMATCH:
2389                 return("RPC S Entry type mismatch");
2390                 break;
2391         case RPC_S_NOT_ALL_OBJS_EXPORTED:
2392                 return("RPC S Not all objs exported");
2393                 break;
2394         case RPC_S_INTERFACE_NOT_EXPORTED:
2395                 return("RPC S Interface not exported");
2396                 break;
2397         case RPC_S_PROFILE_NOT_ADDED:
2398                 return("RPC S Profile not added");
2399                 break;
2400         case RPC_S_PRF_ELT_NOT_ADDED:
2401                 return("RPC S PRF ELT not added");
2402                 break;
2403         case RPC_S_PRF_ELT_NOT_REMOVED:
2404                 return("RPC S PRF ELT not removed");
2405                 break;
2406         case RPC_S_GRP_ELT_NOT_ADDED:
2407                 return("RPC S GRP ELT not added");
2408                 break;
2409         case RPC_S_GRP_ELT_NOT_REMOVED:
2410                 return("RPC S GRP ELT not removed");
2411                 break;
2412         case ERROR_KM_DRIVER_BLOCKED:
2413                 return("KM driver blocked");
2414                 break;
2415         case ERROR_CONTEXT_EXPIRED:
2416                 return("Context expired");
2417                 break;
2418         case ERROR_INVALID_PIXEL_FORMAT:
2419                 return("Invalid pixel format");
2420                 break;
2421         case ERROR_BAD_DRIVER:
2422                 return("Bad driver");
2423                 break;
2424         case ERROR_INVALID_WINDOW_STYLE:
2425                 return("Invalid window style");
2426                 break;
2427         case ERROR_METAFILE_NOT_SUPPORTED:
2428                 return("Metafile not supported");
2429                 break;
2430         case ERROR_TRANSFORM_NOT_SUPPORTED:
2431                 return("Transform not supported");
2432                 break;
2433         case ERROR_CLIPPING_NOT_SUPPORTED:
2434                 return("Clipping not supported");
2435                 break;
2436         case ERROR_INVALID_CMM:
2437                 return("Invalid CMM");
2438                 break;
2439         case ERROR_INVALID_PROFILE:
2440                 return("Invalid profile");
2441                 break;
2442         case ERROR_TAG_NOT_FOUND:
2443                 return("Tag not found");
2444                 break;
2445         case ERROR_TAG_NOT_PRESENT:
2446                 return("Tag not present");
2447                 break;
2448         case ERROR_DUPLICATE_TAG:
2449                 return("Duplicate tag");
2450                 break;
2451         case ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE:
2452                 return("Profile not associated with device");
2453                 break;
2454         case ERROR_PROFILE_NOT_FOUND:
2455                 return("Profile not found");
2456                 break;
2457         case ERROR_INVALID_COLORSPACE:
2458                 return("Invalid colorspace");
2459                 break;
2460         case ERROR_ICM_NOT_ENABLED:
2461                 return("ICM not enabled");
2462                 break;
2463         case ERROR_DELETING_ICM_XFORM:
2464                 return("Deleting ICM xform");
2465                 break;
2466         case ERROR_INVALID_TRANSFORM:
2467                 return("Invalid transform");
2468                 break;
2469         case ERROR_COLORSPACE_MISMATCH:
2470                 return("Colorspace mismatch");
2471                 break;
2472         case ERROR_INVALID_COLORINDEX:
2473                 return("Invalid colorindex");
2474                 break;
2475         case ERROR_CONNECTED_OTHER_PASSWORD:
2476                 return("Connected other password");
2477                 break;
2478         case ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT:
2479                 return("Connected other password default");
2480                 break;
2481         case ERROR_BAD_USERNAME:
2482                 return("Bad username");
2483                 break;
2484         case ERROR_NOT_CONNECTED:
2485                 return("Not connected");
2486                 break;
2487         case ERROR_OPEN_FILES:
2488                 return("Open files");
2489                 break;
2490         case ERROR_ACTIVE_CONNECTIONS:
2491                 return("Active connections");
2492                 break;
2493         case ERROR_DEVICE_IN_USE:
2494                 return("Device in use");
2495                 break;
2496         case ERROR_UNKNOWN_PRINT_MONITOR:
2497                 return("Unknown print monitor");
2498                 break;
2499         case ERROR_PRINTER_DRIVER_IN_USE:
2500                 return("Printer driver in use");
2501                 break;
2502         case ERROR_SPOOL_FILE_NOT_FOUND:
2503                 return("Spool file not found");
2504                 break;
2505         case ERROR_SPL_NO_STARTDOC:
2506                 return("SPL no startdoc");
2507                 break;
2508         case ERROR_SPL_NO_ADDJOB:
2509                 return("SPL no addjob");
2510                 break;
2511         case ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED:
2512                 return("Print processor already installed");
2513                 break;
2514         case ERROR_PRINT_MONITOR_ALREADY_INSTALLED:
2515                 return("Print monitor already installed");
2516                 break;
2517         case ERROR_INVALID_PRINT_MONITOR:
2518                 return("Invalid print monitor");
2519                 break;
2520         case ERROR_PRINT_MONITOR_IN_USE:
2521                 return("Print monitor in use");
2522                 break;
2523         case ERROR_PRINTER_HAS_JOBS_QUEUED:
2524                 return("Printer has jobs queued");
2525                 break;
2526         case ERROR_SUCCESS_REBOOT_REQUIRED:
2527                 return("Success reboot required");
2528                 break;
2529         case ERROR_SUCCESS_RESTART_REQUIRED:
2530                 return("Success restart required");
2531                 break;
2532         case ERROR_PRINTER_NOT_FOUND:
2533                 return("Printer not found");
2534                 break;
2535         case ERROR_PRINTER_DRIVER_WARNED:
2536                 return("Printer driver warned");
2537                 break;
2538         case ERROR_PRINTER_DRIVER_BLOCKED:
2539                 return("Printer driver blocked");
2540                 break;
2541         case ERROR_WINS_INTERNAL:
2542                 return("Wins internal");
2543                 break;
2544         case ERROR_CAN_NOT_DEL_LOCAL_WINS:
2545                 return("Can not del local wins");
2546                 break;
2547         case ERROR_STATIC_INIT:
2548                 return("Static init");
2549                 break;
2550         case ERROR_INC_BACKUP:
2551                 return("Inc backup");
2552                 break;
2553         case ERROR_FULL_BACKUP:
2554                 return("Full backup");
2555                 break;
2556         case ERROR_REC_NON_EXISTENT:
2557                 return("Rec not existent");
2558                 break;
2559         case ERROR_RPL_NOT_ALLOWED:
2560                 return("RPL not allowed");
2561                 break;
2562         case ERROR_DHCP_ADDRESS_CONFLICT:
2563                 return("DHCP address conflict");
2564                 break;
2565         case ERROR_WMI_GUID_NOT_FOUND:
2566                 return("WMU GUID not found");
2567                 break;
2568         case ERROR_WMI_INSTANCE_NOT_FOUND:
2569                 return("WMI instance not found");
2570                 break;
2571         case ERROR_WMI_ITEMID_NOT_FOUND:
2572                 return("WMI ItemID not found");
2573                 break;
2574         case ERROR_WMI_TRY_AGAIN:
2575                 return("WMI try again");
2576                 break;
2577         case ERROR_WMI_DP_NOT_FOUND:
2578                 return("WMI DP not found");
2579                 break;
2580         case ERROR_WMI_UNRESOLVED_INSTANCE_REF:
2581                 return("WMI unresolved instance ref");
2582                 break;
2583         case ERROR_WMI_ALREADY_ENABLED:
2584                 return("WMU already enabled");
2585                 break;
2586         case ERROR_WMI_GUID_DISCONNECTED:
2587                 return("WMU GUID disconnected");
2588                 break;
2589         case ERROR_WMI_SERVER_UNAVAILABLE:
2590                 return("WMI server unavailable");
2591                 break;
2592         case ERROR_WMI_DP_FAILED:
2593                 return("WMI DP failed");
2594                 break;
2595         case ERROR_WMI_INVALID_MOF:
2596                 return("WMI invalid MOF");
2597                 break;
2598         case ERROR_WMI_INVALID_REGINFO:
2599                 return("WMI invalid reginfo");
2600                 break;
2601         case ERROR_WMI_ALREADY_DISABLED:
2602                 return("WMI already disabled");
2603                 break;
2604         case ERROR_WMI_READ_ONLY:
2605                 return("WMI read only");
2606                 break;
2607         case ERROR_WMI_SET_FAILURE:
2608                 return("WMI set failure");
2609                 break;
2610         case ERROR_INVALID_MEDIA:
2611                 return("Invalid media");
2612                 break;
2613         case ERROR_INVALID_LIBRARY:
2614                 return("Invalid library");
2615                 break;
2616         case ERROR_INVALID_MEDIA_POOL:
2617                 return("Invalid media pool");
2618                 break;
2619         case ERROR_DRIVE_MEDIA_MISMATCH:
2620                 return("Drive media mismatch");
2621                 break;
2622         case ERROR_MEDIA_OFFLINE:
2623                 return("Media offline");
2624                 break;
2625         case ERROR_LIBRARY_OFFLINE:
2626                 return("Library offline");
2627                 break;
2628         case ERROR_EMPTY:
2629                 return("Empty");
2630                 break;
2631         case ERROR_NOT_EMPTY:
2632                 return("Not empty");
2633                 break;
2634         case ERROR_MEDIA_UNAVAILABLE:
2635                 return("Media unavailable");
2636                 break;
2637         case ERROR_RESOURCE_DISABLED:
2638                 return("Resource disabled");
2639                 break;
2640         case ERROR_INVALID_CLEANER:
2641                 return("Invalid cleaner");
2642                 break;
2643         case ERROR_UNABLE_TO_CLEAN:
2644                 return("Unable to clean");
2645                 break;
2646         case ERROR_OBJECT_NOT_FOUND:
2647                 return("Object not found");
2648                 break;
2649         case ERROR_DATABASE_FAILURE:
2650                 return("Database failure");
2651                 break;
2652         case ERROR_DATABASE_FULL:
2653                 return("Database full");
2654                 break;
2655         case ERROR_MEDIA_INCOMPATIBLE:
2656                 return("Media incompatible");
2657                 break;
2658         case ERROR_RESOURCE_NOT_PRESENT:
2659                 return("Resource not present");
2660                 break;
2661         case ERROR_INVALID_OPERATION:
2662                 return("Invalid operation");
2663                 break;
2664         case ERROR_MEDIA_NOT_AVAILABLE:
2665                 return("Media not available");
2666                 break;
2667         case ERROR_DEVICE_NOT_AVAILABLE:
2668                 return("Device not available");
2669                 break;
2670         case ERROR_REQUEST_REFUSED:
2671                 return("Request refused");
2672                 break;
2673         case ERROR_INVALID_DRIVE_OBJECT:
2674                 return("Invalid drive object");
2675                 break;
2676         case ERROR_LIBRARY_FULL:
2677                 return("Library full");
2678                 break;
2679         case ERROR_MEDIUM_NOT_ACCESSIBLE:
2680                 return("Medium not accessible");
2681                 break;
2682         case ERROR_UNABLE_TO_LOAD_MEDIUM:
2683                 return("Unable to load medium");
2684                 break;
2685         case ERROR_UNABLE_TO_INVENTORY_DRIVE:
2686                 return("Unable to inventory drive");
2687                 break;
2688         case ERROR_UNABLE_TO_INVENTORY_SLOT:
2689                 return("Unable to inventory slot");
2690                 break;
2691         case ERROR_UNABLE_TO_INVENTORY_TRANSPORT:
2692                 return("Unable to inventory transport");
2693                 break;
2694         case ERROR_TRANSPORT_FULL:
2695                 return("Transport full");
2696                 break;
2697         case ERROR_CONTROLLING_IEPORT:
2698                 return("Controlling ieport");
2699                 break;
2700         case ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA:
2701                 return("Unable to eject mounted media");
2702                 break;
2703         case ERROR_CLEANER_SLOT_SET:
2704                 return("Cleaner slot set");
2705                 break;
2706         case ERROR_CLEANER_SLOT_NOT_SET:
2707                 return("Cleaner slot not set");
2708                 break;
2709         case ERROR_CLEANER_CARTRIDGE_SPENT:
2710                 return("Cleaner cartridge spent");
2711                 break;
2712         case ERROR_UNEXPECTED_OMID:
2713                 return("Unexpected omid");
2714                 break;
2715         case ERROR_CANT_DELETE_LAST_ITEM:
2716                 return("Can't delete last item");
2717                 break;
2718         case ERROR_MESSAGE_EXCEEDS_MAX_SIZE:
2719                 return("Message exceeds max size");
2720                 break;
2721         case ERROR_VOLUME_CONTAINS_SYS_FILES:
2722                 return("Volume contains sys files");
2723                 break;
2724         case ERROR_INDIGENOUS_TYPE:
2725                 return("Indigenous type");
2726                 break;
2727         case ERROR_NO_SUPPORTING_DRIVES:
2728                 return("No supporting drives");
2729                 break;
2730         case ERROR_CLEANER_CARTRIDGE_INSTALLED:
2731                 return("Cleaner cartridge installed");
2732                 break;
2733         case ERROR_FILE_OFFLINE:
2734                 return("Fill offline");
2735                 break;
2736         case ERROR_REMOTE_STORAGE_NOT_ACTIVE:
2737                 return("Remote storage not active");
2738                 break;
2739         case ERROR_REMOTE_STORAGE_MEDIA_ERROR:
2740                 return("Remote storage media error");
2741                 break;
2742         case ERROR_NOT_A_REPARSE_POINT:
2743                 return("Not a reparse point");
2744                 break;
2745         case ERROR_REPARSE_ATTRIBUTE_CONFLICT:
2746                 return("Reparse attribute conflict");
2747                 break;
2748         case ERROR_INVALID_REPARSE_DATA:
2749                 return("Invalid reparse data");
2750                 break;
2751         case ERROR_REPARSE_TAG_INVALID:
2752                 return("Reparse tag invalid");
2753                 break;
2754         case ERROR_REPARSE_TAG_MISMATCH:
2755                 return("Reparse tag mismatch");
2756                 break;
2757         case ERROR_VOLUME_NOT_SIS_ENABLED:
2758                 return("Volume not sis enabled");
2759                 break;
2760         case ERROR_DEPENDENT_RESOURCE_EXISTS:
2761                 return("Dependent resource exists");
2762                 break;
2763         case ERROR_DEPENDENCY_NOT_FOUND:
2764                 return("Dependency not found");
2765                 break;
2766         case ERROR_DEPENDENCY_ALREADY_EXISTS:
2767                 return("Dependency already exists");
2768                 break;
2769         case ERROR_RESOURCE_NOT_ONLINE:
2770                 return("Resource not online");
2771                 break;
2772         case ERROR_HOST_NODE_NOT_AVAILABLE:
2773                 return("Host node not available");
2774                 break;
2775         case ERROR_RESOURCE_NOT_AVAILABLE:
2776                 return("Resource not available");
2777                 break;
2778         case ERROR_RESOURCE_NOT_FOUND:
2779                 return("Resource not found");
2780                 break;
2781         case ERROR_SHUTDOWN_CLUSTER:
2782                 return("Shutdown cluster");
2783                 break;
2784         case ERROR_CANT_EVICT_ACTIVE_NODE:
2785                 return("Can't evict active node");
2786                 break;
2787         case ERROR_OBJECT_ALREADY_EXISTS:
2788                 return("Object already exists");
2789                 break;
2790         case ERROR_OBJECT_IN_LIST:
2791                 return("Object in list");
2792                 break;
2793         case ERROR_GROUP_NOT_AVAILABLE:
2794                 return("Group not available");
2795                 break;
2796         case ERROR_GROUP_NOT_FOUND:
2797                 return("Group not found");
2798                 break;
2799         case ERROR_GROUP_NOT_ONLINE:
2800                 return("Group not online");
2801                 break;
2802         case ERROR_HOST_NODE_NOT_RESOURCE_OWNER:
2803                 return("Host node not resource owner");
2804                 break;
2805         case ERROR_HOST_NODE_NOT_GROUP_OWNER:
2806                 return("Host node not group owner");
2807                 break;
2808         case ERROR_RESMON_CREATE_FAILED:
2809                 return("Resmon create failed");
2810                 break;
2811         case ERROR_RESMON_ONLINE_FAILED:
2812                 return("Resmon online failed");
2813                 break;
2814         case ERROR_RESOURCE_ONLINE:
2815                 return("Resource online");
2816                 break;
2817         case ERROR_QUORUM_RESOURCE:
2818                 return("Quorum resource");
2819                 break;
2820         case ERROR_NOT_QUORUM_CAPABLE:
2821                 return("Not quorum capable");
2822                 break;
2823         case ERROR_CLUSTER_SHUTTING_DOWN:
2824                 return("Cluster shutting down");
2825                 break;
2826         case ERROR_INVALID_STATE:
2827                 return("Invalid state");
2828                 break;
2829         case ERROR_RESOURCE_PROPERTIES_STORED:
2830                 return("Resource properties stored");
2831                 break;
2832         case ERROR_NOT_QUORUM_CLASS:
2833                 return("Not quorum class");
2834                 break;
2835         case ERROR_CORE_RESOURCE:
2836                 return("Core resource");
2837                 break;
2838         case ERROR_QUORUM_RESOURCE_ONLINE_FAILED:
2839                 return("Quorum resource online failed");
2840                 break;
2841         case ERROR_QUORUMLOG_OPEN_FAILED:
2842                 return("Quorumlog open failed");
2843                 break;
2844         case ERROR_CLUSTERLOG_CORRUPT:
2845                 return("Clusterlog corrupt");
2846                 break;
2847         case ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE:
2848                 return("Clusterlog record exceeds maxsize");
2849                 break;
2850         case ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE:
2851                 return("Clusterlog exceeds maxsize");
2852                 break;
2853         case ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND:
2854                 return("Clusterlog chkpoint not found");
2855                 break;
2856         case ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE:
2857                 return("Clusterlog not enough space");
2858                 break;
2859         case ERROR_QUORUM_OWNER_ALIVE:
2860                 return("Quorum owner alive");
2861                 break;
2862         case ERROR_NETWORK_NOT_AVAILABLE:
2863                 return("Network not available");
2864                 break;
2865         case ERROR_NODE_NOT_AVAILABLE:
2866                 return("Node not available");
2867                 break;
2868         case ERROR_ALL_NODES_NOT_AVAILABLE:
2869                 return("All nodes not available");
2870                 break;
2871         case ERROR_RESOURCE_FAILED:
2872                 return("Resource failed");
2873                 break;
2874         case ERROR_CLUSTER_INVALID_NODE:
2875                 return("Cluster invalid node");
2876                 break;
2877         case ERROR_CLUSTER_NODE_EXISTS:
2878                 return("Cluster node exists");
2879                 break;
2880         case ERROR_CLUSTER_JOIN_IN_PROGRESS:
2881                 return("Cluster join in progress");
2882                 break;
2883         case ERROR_CLUSTER_NODE_NOT_FOUND:
2884                 return("Cluster node not found");
2885                 break;
2886         case ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND:
2887                 return("Cluster local node not found");
2888                 break;
2889         case ERROR_CLUSTER_NETWORK_EXISTS:
2890                 return("Cluster network exists");
2891                 break;
2892         case ERROR_CLUSTER_NETWORK_NOT_FOUND:
2893                 return("Cluster network not found");
2894                 break;
2895         case ERROR_CLUSTER_NETINTERFACE_EXISTS:
2896                 return("Cluster netinterface exists");
2897                 break;
2898         case ERROR_CLUSTER_NETINTERFACE_NOT_FOUND:
2899                 return("Cluster netinterface not found");
2900                 break;
2901         case ERROR_CLUSTER_INVALID_REQUEST:
2902                 return("Cluster invalid request");
2903                 break;
2904         case ERROR_CLUSTER_INVALID_NETWORK_PROVIDER:
2905                 return("Cluster invalid network provider");
2906                 break;
2907         case ERROR_CLUSTER_NODE_DOWN:
2908                 return("Cluster node down");
2909                 break;
2910         case ERROR_CLUSTER_NODE_UNREACHABLE:
2911                 return("Cluster node unreachable");
2912                 break;
2913         case ERROR_CLUSTER_NODE_NOT_MEMBER:
2914                 return("Cluster node not member");
2915                 break;
2916         case ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS:
2917                 return("Cluster join not in progress");
2918                 break;
2919         case ERROR_CLUSTER_INVALID_NETWORK:
2920                 return("Cluster invalid network");
2921                 break;
2922         case ERROR_CLUSTER_NODE_UP:
2923                 return("Cluster node up");
2924                 break;
2925         case ERROR_CLUSTER_IPADDR_IN_USE:
2926                 return("Cluster ipaddr in use");
2927                 break;
2928         case ERROR_CLUSTER_NODE_NOT_PAUSED:
2929                 return("Cluster node not paused");
2930                 break;
2931         case ERROR_CLUSTER_NO_SECURITY_CONTEXT:
2932                 return("Cluster no security context");
2933                 break;
2934         case ERROR_CLUSTER_NETWORK_NOT_INTERNAL:
2935                 return("Cluster network not internal");
2936                 break;
2937         case ERROR_CLUSTER_NODE_ALREADY_UP:
2938                 return("Cluster node already up");
2939                 break;
2940         case ERROR_CLUSTER_NODE_ALREADY_DOWN:
2941                 return("Cluster node already down");
2942                 break;
2943         case ERROR_CLUSTER_NETWORK_ALREADY_ONLINE:
2944                 return("Cluster network already online");
2945                 break;
2946         case ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE:
2947                 return("Cluster network already offline");
2948                 break;
2949         case ERROR_CLUSTER_NODE_ALREADY_MEMBER:
2950                 return("Cluster node already member");
2951                 break;
2952         case ERROR_CLUSTER_LAST_INTERNAL_NETWORK:
2953                 return("Cluster last internal network");
2954                 break;
2955         case ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS:
2956                 return("Cluster network has dependents");
2957                 break;
2958         case ERROR_INVALID_OPERATION_ON_QUORUM:
2959                 return("Invalid operation on quorum");
2960                 break;
2961         case ERROR_DEPENDENCY_NOT_ALLOWED:
2962                 return("Dependency not allowed");
2963                 break;
2964         case ERROR_CLUSTER_NODE_PAUSED:
2965                 return("Cluster node paused");
2966                 break;
2967         case ERROR_NODE_CANT_HOST_RESOURCE:
2968                 return("Node can't host resource");
2969                 break;
2970         case ERROR_CLUSTER_NODE_NOT_READY:
2971                 return("Cluster node not ready");
2972                 break;
2973         case ERROR_CLUSTER_NODE_SHUTTING_DOWN:
2974                 return("Cluster node shutting down");
2975                 break;
2976         case ERROR_CLUSTER_JOIN_ABORTED:
2977                 return("Cluster join aborted");
2978                 break;
2979         case ERROR_CLUSTER_INCOMPATIBLE_VERSIONS:
2980                 return("Cluster incompatible versions");
2981                 break;
2982         case ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED:
2983                 return("Cluster maxnum of resources exceeded");
2984                 break;
2985         case ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED:
2986                 return("Cluster system config changed");
2987                 break;
2988         case ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND:
2989                 return("Cluster resource type not found");
2990                 break;
2991         case ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED:
2992                 return("Cluster restype not supported");
2993                 break;
2994         case ERROR_CLUSTER_RESNAME_NOT_FOUND:
2995                 return("Cluster resname not found");
2996                 break;
2997         case ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED:
2998                 return("Cluster no RPC packages registered");
2999                 break;
3000         case ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST:
3001                 return("Cluster owner not in preflist");
3002                 break;
3003         case ERROR_CLUSTER_DATABASE_SEQMISMATCH:
3004                 return("Cluster database seqmismatch");
3005                 break;
3006         case ERROR_RESMON_INVALID_STATE:
3007                 return("Resmon invalid state");
3008                 break;
3009         case ERROR_CLUSTER_GUM_NOT_LOCKER:
3010                 return("Cluster gum not locker");
3011                 break;
3012         case ERROR_QUORUM_DISK_NOT_FOUND:
3013                 return("Quorum disk not found");
3014                 break;
3015         case ERROR_DATABASE_BACKUP_CORRUPT:
3016                 return("Database backup corrupt");
3017                 break;
3018         case ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT:
3019                 return("Cluster node already has DFS root");
3020                 break;
3021         case ERROR_RESOURCE_PROPERTY_UNCHANGEABLE:
3022                 return("Resource property unchangeable");
3023                 break;
3024         case ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE:
3025                 return("Cluster membership invalid state");
3026                 break;
3027         case ERROR_CLUSTER_QUORUMLOG_NOT_FOUND:
3028                 return("Cluster quorumlog not found");
3029                 break;
3030         case ERROR_CLUSTER_MEMBERSHIP_HALT:
3031                 return("Cluster membership halt");
3032                 break;
3033         case ERROR_CLUSTER_INSTANCE_ID_MISMATCH:
3034                 return("Cluster instance ID mismatch");
3035                 break;
3036         case ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP:
3037                 return("Cluster network not found for IP");
3038                 break;
3039         case ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH:
3040                 return("Cluster property data type mismatch");
3041                 break;
3042         case ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP:
3043                 return("Cluster evict without cleanup");
3044                 break;
3045         case ERROR_CLUSTER_PARAMETER_MISMATCH:
3046                 return("Cluster parameter mismatch");
3047                 break;
3048         case ERROR_NODE_CANNOT_BE_CLUSTERED:
3049                 return("Node cannot be clustered");
3050                 break;
3051         case ERROR_CLUSTER_WRONG_OS_VERSION:
3052                 return("Cluster wrong OS version");
3053                 break;
3054         case ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME:
3055                 return("Cluster can't create dup cluster name");
3056                 break;
3057         case ERROR_ENCRYPTION_FAILED:
3058                 return("Encryption failed");
3059                 break;
3060         case ERROR_DECRYPTION_FAILED:
3061                 return("Decryption failed");
3062                 break;
3063         case ERROR_FILE_ENCRYPTED:
3064                 return("File encrypted");
3065                 break;
3066         case ERROR_NO_RECOVERY_POLICY:
3067                 return("No recovery policy");
3068                 break;
3069         case ERROR_NO_EFS:
3070                 return("No EFS");
3071                 break;
3072         case ERROR_WRONG_EFS:
3073                 return("Wrong EFS");
3074                 break;
3075         case ERROR_NO_USER_KEYS:
3076                 return("No user keys");
3077                 break;
3078         case ERROR_FILE_NOT_ENCRYPTED:
3079                 return("File not encryped");
3080                 break;
3081         case ERROR_NOT_EXPORT_FORMAT:
3082                 return("Not export format");
3083                 break;
3084         case ERROR_FILE_READ_ONLY:
3085                 return("File read only");
3086                 break;
3087         case ERROR_DIR_EFS_DISALLOWED:
3088                 return("Dir EFS disallowed");
3089                 break;
3090         case ERROR_EFS_SERVER_NOT_TRUSTED:
3091                 return("EFS server not trusted");
3092                 break;
3093         case ERROR_BAD_RECOVERY_POLICY:
3094                 return("Bad recovery policy");
3095                 break;
3096         case ERROR_EFS_ALG_BLOB_TOO_BIG:
3097                 return("ETS alg blob too big");
3098                 break;
3099         case ERROR_VOLUME_NOT_SUPPORT_EFS:
3100                 return("Volume not support EFS");
3101                 break;
3102         case ERROR_EFS_DISABLED:
3103                 return("EFS disabled");
3104                 break;
3105         case ERROR_EFS_VERSION_NOT_SUPPORT:
3106                 return("EFS version not support");
3107                 break;
3108         case ERROR_NO_BROWSER_SERVERS_FOUND:
3109                 return("No browser servers found");
3110                 break;
3111         case SCHED_E_SERVICE_NOT_LOCALSYSTEM:
3112                 return("Sched E service not localsystem");
3113                 break;
3114         case ERROR_CTX_WINSTATION_NAME_INVALID:
3115                 return("Ctx winstation name invalid");
3116                 break;
3117         case ERROR_CTX_INVALID_PD:
3118                 return("Ctx invalid PD");
3119                 break;
3120         case ERROR_CTX_PD_NOT_FOUND:
3121                 return("Ctx PD not found");
3122                 break;
3123         case ERROR_CTX_WD_NOT_FOUND:
3124                 return("Ctx WD not found");
3125                 break;
3126         case ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY:
3127                 return("Ctx cannot make eventlog entry");
3128                 break;
3129         case ERROR_CTX_SERVICE_NAME_COLLISION:
3130                 return("Ctx service name collision");
3131                 break;
3132         case ERROR_CTX_CLOSE_PENDING:
3133                 return("Ctx close pending");
3134                 break;
3135         case ERROR_CTX_NO_OUTBUF:
3136                 return("Ctx no outbuf");
3137                 break;
3138         case ERROR_CTX_MODEM_INF_NOT_FOUND:
3139                 return("Ctx modem inf not found");
3140                 break;
3141         case ERROR_CTX_INVALID_MODEMNAME:
3142                 return("Ctx invalid modemname");
3143                 break;
3144         case ERROR_CTX_MODEM_RESPONSE_ERROR:
3145                 return("Ctx modem response error");
3146                 break;
3147         case ERROR_CTX_MODEM_RESPONSE_TIMEOUT:
3148                 return("Ctx modem response timeout");
3149                 break;
3150         case ERROR_CTX_MODEM_RESPONSE_NO_CARRIER:
3151                 return("Ctx modem response no carrier");
3152                 break;
3153         case ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE:
3154                 return("Ctx modem response no dial tone");
3155                 break;
3156         case ERROR_CTX_MODEM_RESPONSE_BUSY:
3157                 return("Ctx modem response busy");
3158                 break;
3159         case ERROR_CTX_MODEM_RESPONSE_VOICE:
3160                 return("Ctx modem response voice");
3161                 break;
3162         case ERROR_CTX_TD_ERROR:
3163                 return("Ctx TD error");
3164                 break;
3165         case ERROR_CTX_WINSTATION_NOT_FOUND:
3166                 return("Ctx winstation not found");
3167                 break;
3168         case ERROR_CTX_WINSTATION_ALREADY_EXISTS:
3169                 return("Ctx winstation already exists");
3170                 break;
3171         case ERROR_CTX_WINSTATION_BUSY:
3172                 return("Ctx winstation busy");
3173                 break;
3174         case ERROR_CTX_BAD_VIDEO_MODE:
3175                 return("Ctx bad video mode");
3176                 break;
3177         case ERROR_CTX_GRAPHICS_INVALID:
3178                 return("Ctx graphics invalid");
3179                 break;
3180         case ERROR_CTX_LOGON_DISABLED:
3181                 return("Ctx logon disabled");
3182                 break;
3183         case ERROR_CTX_NOT_CONSOLE:
3184                 return("Ctx not console");
3185                 break;
3186         case ERROR_CTX_CLIENT_QUERY_TIMEOUT:
3187                 return("Ctx client query timeout");
3188                 break;
3189         case ERROR_CTX_CONSOLE_DISCONNECT:
3190                 return("Ctx console disconnect");
3191                 break;
3192         case ERROR_CTX_CONSOLE_CONNECT:
3193                 return("Ctx console connect");
3194                 break;
3195         case ERROR_CTX_SHADOW_DENIED:
3196                 return("Ctx shadow denied");
3197                 break;
3198         case ERROR_CTX_WINSTATION_ACCESS_DENIED:
3199                 return("Ctx winstation access denied");
3200                 break;
3201         case ERROR_CTX_INVALID_WD:
3202                 return("Ctx invalid WD");
3203                 break;
3204         case ERROR_CTX_SHADOW_INVALID:
3205                 return("Ctx shadow invalid");
3206                 break;
3207         case ERROR_CTX_SHADOW_DISABLED:
3208                 return("Ctx shadow disabled");
3209                 break;
3210         case ERROR_CTX_CLIENT_LICENSE_IN_USE:
3211                 return("Ctx client licence in use");
3212                 break;
3213         case ERROR_CTX_CLIENT_LICENSE_NOT_SET:
3214                 return("Ctx client licence not set");
3215                 break;
3216         case ERROR_CTX_LICENSE_NOT_AVAILABLE:
3217                 return("Ctx licence not available");
3218                 break;
3219         case ERROR_CTX_LICENSE_CLIENT_INVALID:
3220                 return("Ctx licence client invalid");
3221                 break;
3222         case ERROR_CTX_LICENSE_EXPIRED:
3223                 return("Ctx licence expired");
3224                 break;
3225         case ERROR_CTX_SHADOW_NOT_RUNNING:
3226                 return("Ctx shadow not running");
3227                 break;
3228         case ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE:
3229                 return("Ctx shadow ended by mode change");
3230                 break;
3231         case FRS_ERR_INVALID_API_SEQUENCE:
3232                 return("FRS err invalid API sequence");
3233                 break;
3234         case FRS_ERR_STARTING_SERVICE:
3235                 return("FRS err starting service");
3236                 break;
3237         case FRS_ERR_STOPPING_SERVICE:
3238                 return("FRS err stopping service");
3239                 break;
3240         case FRS_ERR_INTERNAL_API:
3241                 return("FRS err internal API");
3242                 break;
3243         case FRS_ERR_INTERNAL:
3244                 return("FRS err internal");
3245                 break;
3246         case FRS_ERR_SERVICE_COMM:
3247                 return("FRS err service comm");
3248                 break;
3249         case FRS_ERR_INSUFFICIENT_PRIV:
3250                 return("FRS err insufficient priv");
3251                 break;
3252         case FRS_ERR_AUTHENTICATION:
3253                 return("FRS err authentication");
3254                 break;
3255         case FRS_ERR_PARENT_INSUFFICIENT_PRIV:
3256                 return("FRS err parent insufficient priv");
3257                 break;
3258         case FRS_ERR_PARENT_AUTHENTICATION:
3259                 return("FRS err parent authentication");
3260                 break;
3261         case FRS_ERR_CHILD_TO_PARENT_COMM:
3262                 return("FRS err child to parent comm");
3263                 break;
3264         case FRS_ERR_PARENT_TO_CHILD_COMM:
3265                 return("FRS err parent to child comm");
3266                 break;
3267         case FRS_ERR_SYSVOL_POPULATE:
3268                 return("FRS err sysvol populate");
3269                 break;
3270         case FRS_ERR_SYSVOL_POPULATE_TIMEOUT:
3271                 return("FRS err sysvol populate timeout");
3272                 break;
3273         case FRS_ERR_SYSVOL_IS_BUSY:
3274                 return("FRS err sysvol is busy");
3275                 break;
3276         case FRS_ERR_SYSVOL_DEMOTE:
3277                 return("FRS err sysvol demote");
3278                 break;
3279         case FRS_ERR_INVALID_SERVICE_PARAMETER:
3280                 return("FRS err invalid service parameter");
3281                 break;
3282         case ERROR_DS_NOT_INSTALLED:
3283                 return("DS not installed");
3284                 break;
3285         case ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY:
3286                 return("DS membership evaluated locally");
3287                 break;
3288         case ERROR_DS_NO_ATTRIBUTE_OR_VALUE:
3289                 return("DS no attribute or value");
3290                 break;
3291         case ERROR_DS_INVALID_ATTRIBUTE_SYNTAX:
3292                 return("DS invalid attribute syntax");
3293                 break;
3294         case ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED:
3295                 return("DS attribute type undefined");
3296                 break;
3297         case ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS:
3298                 return("DS attribute or value exists");
3299                 break;
3300         case ERROR_DS_BUSY:
3301                 return("DS busy");
3302                 break;
3303         case ERROR_DS_UNAVAILABLE:
3304                 return("DS unavailable");
3305                 break;
3306         case ERROR_DS_NO_RIDS_ALLOCATED:
3307                 return("DS no rids allocated");
3308                 break;
3309         case ERROR_DS_NO_MORE_RIDS:
3310                 return("DS no more rids");
3311                 break;
3312         case ERROR_DS_INCORRECT_ROLE_OWNER:
3313                 return("DS incorrect role owner");
3314                 break;
3315         case ERROR_DS_RIDMGR_INIT_ERROR:
3316                 return("DS ridmgr init error");
3317                 break;
3318         case ERROR_DS_OBJ_CLASS_VIOLATION:
3319                 return("DS obj class violation");
3320                 break;
3321         case ERROR_DS_CANT_ON_NON_LEAF:
3322                 return("DS can't on non leaf");
3323                 break;
3324         case ERROR_DS_CANT_ON_RDN:
3325                 return("DS can't on rnd");
3326                 break;
3327         case ERROR_DS_CANT_MOD_OBJ_CLASS:
3328                 return("DS can't mod obj class");
3329                 break;
3330         case ERROR_DS_CROSS_DOM_MOVE_ERROR:
3331                 return("DS cross dom move error");
3332                 break;
3333         case ERROR_DS_GC_NOT_AVAILABLE:
3334                 return("DS GC not available");
3335                 break;
3336         case ERROR_SHARED_POLICY:
3337                 return("Shared policy");
3338                 break;
3339         case ERROR_POLICY_OBJECT_NOT_FOUND:
3340                 return("Policy object not found");
3341                 break;
3342         case ERROR_POLICY_ONLY_IN_DS:
3343                 return("Policy only in DS");
3344                 break;
3345         case ERROR_PROMOTION_ACTIVE:
3346                 return("Promotion active");
3347                 break;
3348         case ERROR_NO_PROMOTION_ACTIVE:
3349                 return("No promotion active");
3350                 break;
3351         case ERROR_DS_OPERATIONS_ERROR:
3352                 return("DS operations error");
3353                 break;
3354         case ERROR_DS_PROTOCOL_ERROR:
3355                 return("DS protocol error");
3356                 break;
3357         case ERROR_DS_TIMELIMIT_EXCEEDED:
3358                 return("DS timelimit exceeded");
3359                 break;
3360         case ERROR_DS_SIZELIMIT_EXCEEDED:
3361                 return("DS sizelimit exceeded");
3362                 break;
3363         case ERROR_DS_ADMIN_LIMIT_EXCEEDED:
3364                 return("DS admin limit exceeded");
3365                 break;
3366         case ERROR_DS_COMPARE_FALSE:
3367                 return("DS compare false");
3368                 break;
3369         case ERROR_DS_COMPARE_TRUE:
3370                 return("DS compare true");
3371                 break;
3372         case ERROR_DS_AUTH_METHOD_NOT_SUPPORTED:
3373                 return("DS auth method not supported");
3374                 break;
3375         case ERROR_DS_STRONG_AUTH_REQUIRED:
3376                 return("DS strong auth required");
3377                 break;
3378         case ERROR_DS_INAPPROPRIATE_AUTH:
3379                 return("DS inappropriate auth");
3380                 break;
3381         case ERROR_DS_AUTH_UNKNOWN:
3382                 return("DS auth unknown");
3383                 break;
3384         case ERROR_DS_REFERRAL:
3385                 return("DS referral");
3386                 break;
3387         case ERROR_DS_UNAVAILABLE_CRIT_EXTENSION:
3388                 return("DS unavailable crit extension");
3389                 break;
3390         case ERROR_DS_CONFIDENTIALITY_REQUIRED:
3391                 return("DS confidentiality required");
3392                 break;
3393         case ERROR_DS_INAPPROPRIATE_MATCHING:
3394                 return("DS inappropriate matching");
3395                 break;
3396         case ERROR_DS_CONSTRAINT_VIOLATION:
3397                 return("DS constraint violation");
3398                 break;
3399         case ERROR_DS_NO_SUCH_OBJECT:
3400                 return("DS no such object");
3401                 break;
3402         case ERROR_DS_ALIAS_PROBLEM:
3403                 return("DS alias problem");
3404                 break;
3405         case ERROR_DS_INVALID_DN_SYNTAX:
3406                 return("DS invalid dn syntax");
3407                 break;
3408         case ERROR_DS_IS_LEAF:
3409                 return("DS is leaf");
3410                 break;
3411         case ERROR_DS_ALIAS_DEREF_PROBLEM:
3412                 return("DS alias deref problem");
3413                 break;
3414         case ERROR_DS_UNWILLING_TO_PERFORM:
3415                 return("DS unwilling to perform");
3416                 break;
3417         case ERROR_DS_LOOP_DETECT:
3418                 return("DS loop detect");
3419                 break;
3420         case ERROR_DS_NAMING_VIOLATION:
3421                 return("DS naming violation");
3422                 break;
3423         case ERROR_DS_OBJECT_RESULTS_TOO_LARGE:
3424                 return("DS object results too large");
3425                 break;
3426         case ERROR_DS_AFFECTS_MULTIPLE_DSAS:
3427                 return("DS affects multiple dsas");
3428                 break;
3429         case ERROR_DS_SERVER_DOWN:
3430                 return("DS server down");
3431                 break;
3432         case ERROR_DS_LOCAL_ERROR:
3433                 return("DS local error");
3434                 break;
3435         case ERROR_DS_ENCODING_ERROR:
3436                 return("DS encoding error");
3437                 break;
3438         case ERROR_DS_DECODING_ERROR:
3439                 return("DS decoding error");
3440                 break;
3441         case ERROR_DS_FILTER_UNKNOWN:
3442                 return("DS filter unknown");
3443                 break;
3444         case ERROR_DS_PARAM_ERROR:
3445                 return("DS param error");
3446                 break;
3447         case ERROR_DS_NOT_SUPPORTED:
3448                 return("DS not supported");
3449                 break;
3450         case ERROR_DS_NO_RESULTS_RETURNED:
3451                 return("DS no results returned");
3452                 break;
3453         case ERROR_DS_CONTROL_NOT_FOUND:
3454                 return("DS control not found");
3455                 break;
3456         case ERROR_DS_CLIENT_LOOP:
3457                 return("DS client loop");
3458                 break;
3459         case ERROR_DS_REFERRAL_LIMIT_EXCEEDED:
3460                 return("DS referral limit exceeded");
3461                 break;
3462         case ERROR_DS_SORT_CONTROL_MISSING:
3463                 return("DS sort control missing");
3464                 break;
3465         case ERROR_DS_OFFSET_RANGE_ERROR:
3466                 return("DS offset range error");
3467                 break;
3468         case ERROR_DS_ROOT_MUST_BE_NC:
3469                 return("DS root must be nc");
3470                 break;
3471         case ERROR_DS_ADD_REPLICA_INHIBITED:
3472                 return("DS and replica inhibited");
3473                 break;
3474         case ERROR_DS_ATT_NOT_DEF_IN_SCHEMA:
3475                 return("DS att not def in schema");
3476                 break;
3477         case ERROR_DS_MAX_OBJ_SIZE_EXCEEDED:
3478                 return("DS max obj size exceeded");
3479                 break;
3480         case ERROR_DS_OBJ_STRING_NAME_EXISTS:
3481                 return("DS obj string name exists");
3482                 break;
3483         case ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA:
3484                 return("DS no rdn defined in schema");
3485                 break;
3486         case ERROR_DS_RDN_DOESNT_MATCH_SCHEMA:
3487                 return("DS rdn doesn't match schema");
3488                 break;
3489         case ERROR_DS_NO_REQUESTED_ATTS_FOUND:
3490                 return("DS no requested atts found");
3491                 break;
3492         case ERROR_DS_USER_BUFFER_TO_SMALL:
3493                 return("DS user buffer too small");
3494                 break;
3495         case ERROR_DS_ATT_IS_NOT_ON_OBJ:
3496                 return("DS att is not on obj");
3497                 break;
3498         case ERROR_DS_ILLEGAL_MOD_OPERATION:
3499                 return("DS illegal mod operation");
3500                 break;
3501         case ERROR_DS_OBJ_TOO_LARGE:
3502                 return("DS obj too large");
3503                 break;
3504         case ERROR_DS_BAD_INSTANCE_TYPE:
3505                 return("DS bad instance type");
3506                 break;
3507         case ERROR_DS_MASTERDSA_REQUIRED:
3508                 return("DS masterdsa required");
3509                 break;
3510         case ERROR_DS_OBJECT_CLASS_REQUIRED:
3511                 return("DS object class required");
3512                 break;
3513         case ERROR_DS_MISSING_REQUIRED_ATT:
3514                 return("DS missing required att");
3515                 break;
3516         case ERROR_DS_ATT_NOT_DEF_FOR_CLASS:
3517                 return("DS att not def for class");
3518                 break;
3519         case ERROR_DS_ATT_ALREADY_EXISTS:
3520                 return("DS att already exists");
3521                 break;
3522         case ERROR_DS_CANT_ADD_ATT_VALUES:
3523                 return("DS can't add att values");
3524                 break;
3525         case ERROR_DS_SINGLE_VALUE_CONSTRAINT:
3526                 return("DS single value constraint");
3527                 break;
3528         case ERROR_DS_RANGE_CONSTRAINT:
3529                 return("DS range constraint");
3530                 break;
3531         case ERROR_DS_ATT_VAL_ALREADY_EXISTS:
3532                 return("DS att val already exists");
3533                 break;
3534         case ERROR_DS_CANT_REM_MISSING_ATT:
3535                 return("DS can't rem missing att");
3536                 break;
3537         case ERROR_DS_CANT_REM_MISSING_ATT_VAL:
3538                 return("DS can't rem missing att val");
3539                 break;
3540         case ERROR_DS_ROOT_CANT_BE_SUBREF:
3541                 return("DS root can't be subref");
3542                 break;
3543         case ERROR_DS_NO_CHAINING:
3544                 return("DS no chaining");
3545                 break;
3546         case ERROR_DS_NO_CHAINED_EVAL:
3547                 return("DS no chained eval");
3548                 break;
3549         case ERROR_DS_NO_PARENT_OBJECT:
3550                 return("DS no parent object");
3551                 break;
3552         case ERROR_DS_PARENT_IS_AN_ALIAS:
3553                 return("DS parent is an alias");
3554                 break;
3555         case ERROR_DS_CANT_MIX_MASTER_AND_REPS:
3556                 return("DS can't mix master and reps");
3557                 break;
3558         case ERROR_DS_CHILDREN_EXIST:
3559                 return("DS children exist");
3560                 break;
3561         case ERROR_DS_OBJ_NOT_FOUND:
3562                 return("DS obj not found");
3563                 break;
3564         case ERROR_DS_ALIASED_OBJ_MISSING:
3565                 return("DS aliased obj missing");
3566                 break;
3567         case ERROR_DS_BAD_NAME_SYNTAX:
3568                 return("DS bad name syntax");
3569                 break;
3570         case ERROR_DS_ALIAS_POINTS_TO_ALIAS:
3571                 return("DS alias points to alias");
3572                 break;
3573         case ERROR_DS_CANT_DEREF_ALIAS:
3574                 return("DS can't redef alias");
3575                 break;
3576         case ERROR_DS_OUT_OF_SCOPE:
3577                 return("DS out of scope");
3578                 break;
3579         case ERROR_DS_OBJECT_BEING_REMOVED:
3580                 return("DS object being removed");
3581                 break;
3582         case ERROR_DS_CANT_DELETE_DSA_OBJ:
3583                 return("DS can't delete dsa obj");
3584                 break;
3585         case ERROR_DS_GENERIC_ERROR:
3586                 return("DS generic error");
3587                 break;
3588         case ERROR_DS_DSA_MUST_BE_INT_MASTER:
3589                 return("DS dsa must be int master");
3590                 break;
3591         case ERROR_DS_CLASS_NOT_DSA:
3592                 return("DS class not dsa");
3593                 break;
3594         case ERROR_DS_INSUFF_ACCESS_RIGHTS:
3595                 return("DS insuff access rights");
3596                 break;
3597         case ERROR_DS_ILLEGAL_SUPERIOR:
3598                 return("DS illegal superior");
3599                 break;
3600         case ERROR_DS_ATTRIBUTE_OWNED_BY_SAM:
3601                 return("DS attribute owned by sam");
3602                 break;
3603         case ERROR_DS_NAME_TOO_MANY_PARTS:
3604                 return("DS name too many parts");
3605                 break;
3606         case ERROR_DS_NAME_TOO_LONG:
3607                 return("DS name too long");
3608                 break;
3609         case ERROR_DS_NAME_VALUE_TOO_LONG:
3610                 return("DS name value too long");
3611                 break;
3612         case ERROR_DS_NAME_UNPARSEABLE:
3613                 return("DS name unparseable");
3614                 break;
3615         case ERROR_DS_NAME_TYPE_UNKNOWN:
3616                 return("DS name type unknown");
3617                 break;
3618         case ERROR_DS_NOT_AN_OBJECT:
3619                 return("DS not an object");
3620                 break;
3621         case ERROR_DS_SEC_DESC_TOO_SHORT:
3622                 return("DS sec desc too short");
3623                 break;
3624         case ERROR_DS_SEC_DESC_INVALID:
3625                 return("DS sec desc invalid");
3626                 break;
3627         case ERROR_DS_NO_DELETED_NAME:
3628                 return("DS no deleted name");
3629                 break;
3630         case ERROR_DS_SUBREF_MUST_HAVE_PARENT:
3631                 return("DS subref must have parent");
3632                 break;
3633         case ERROR_DS_NCNAME_MUST_BE_NC:
3634                 return("DS ncname must be nc");
3635                 break;
3636         case ERROR_DS_CANT_ADD_SYSTEM_ONLY:
3637                 return("DS can't add system only");
3638                 break;
3639         case ERROR_DS_CLASS_MUST_BE_CONCRETE:
3640                 return("DS class must be concrete");
3641                 break;
3642         case ERROR_DS_INVALID_DMD:
3643                 return("DS invalid dmd");
3644                 break;
3645         case ERROR_DS_OBJ_GUID_EXISTS:
3646                 return("DS obj GUID exists");
3647                 break;
3648         case ERROR_DS_NOT_ON_BACKLINK:
3649                 return("DS not on backlink");
3650                 break;
3651         case ERROR_DS_NO_CROSSREF_FOR_NC:
3652                 return("DS no crossref for nc");
3653                 break;
3654         case ERROR_DS_SHUTTING_DOWN:
3655                 return("DS shutting down");
3656                 break;
3657         case ERROR_DS_UNKNOWN_OPERATION:
3658                 return("DS unknown operation");
3659                 break;
3660         case ERROR_DS_INVALID_ROLE_OWNER:
3661                 return("DS invalid role owner");
3662                 break;
3663         case ERROR_DS_COULDNT_CONTACT_FSMO:
3664                 return("DS couldn't contact fsmo");
3665                 break;
3666         case ERROR_DS_CROSS_NC_DN_RENAME:
3667                 return("DS cross nc dn rename");
3668                 break;
3669         case ERROR_DS_CANT_MOD_SYSTEM_ONLY:
3670                 return("DS can't mod system only");
3671                 break;
3672         case ERROR_DS_REPLICATOR_ONLY:
3673                 return("DS replicator only");
3674                 break;
3675         case ERROR_DS_OBJ_CLASS_NOT_DEFINED:
3676                 return("DS obj class not defined");
3677                 break;
3678         case ERROR_DS_OBJ_CLASS_NOT_SUBCLASS:
3679                 return("DS obj class not subclass");
3680                 break;
3681         case ERROR_DS_NAME_REFERENCE_INVALID:
3682                 return("DS name reference invalid");
3683                 break;
3684         case ERROR_DS_CROSS_REF_EXISTS:
3685                 return("DS cross ref exists");
3686                 break;
3687         case ERROR_DS_CANT_DEL_MASTER_CROSSREF:
3688                 return("DS can't del master crossref");
3689                 break;
3690         case ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD:
3691                 return("DS subtree notify not nc head");
3692                 break;
3693         case ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX:
3694                 return("DS notify filter too complex");
3695                 break;
3696         case ERROR_DS_DUP_RDN:
3697                 return("DS dup rdn");
3698                 break;
3699         case ERROR_DS_DUP_OID:
3700                 return("DS dup oid");
3701                 break;
3702         case ERROR_DS_DUP_MAPI_ID:
3703                 return("DS dup mapi ID");
3704                 break;
3705         case ERROR_DS_DUP_SCHEMA_ID_GUID:
3706                 return("DS dup schema ID GUID");
3707                 break;
3708         case ERROR_DS_DUP_LDAP_DISPLAY_NAME:
3709                 return("DS dup LDAP display name");
3710                 break;
3711         case ERROR_DS_SEMANTIC_ATT_TEST:
3712                 return("DS semantic att test");
3713                 break;
3714         case ERROR_DS_SYNTAX_MISMATCH:
3715                 return("DS syntax mismatch");
3716                 break;
3717         case ERROR_DS_EXISTS_IN_MUST_HAVE:
3718                 return("DS exists in must have");
3719                 break;
3720         case ERROR_DS_EXISTS_IN_MAY_HAVE:
3721                 return("DS exists in may have");
3722                 break;
3723         case ERROR_DS_NONEXISTENT_MAY_HAVE:
3724                 return("DS nonexistent may have");
3725                 break;
3726         case ERROR_DS_NONEXISTENT_MUST_HAVE:
3727                 return("DS nonexistent must have");
3728                 break;
3729         case ERROR_DS_AUX_CLS_TEST_FAIL:
3730                 return("DS aux cls test fail");
3731                 break;
3732         case ERROR_DS_NONEXISTENT_POSS_SUP:
3733                 return("DS nonexistent poss sup");
3734                 break;
3735         case ERROR_DS_SUB_CLS_TEST_FAIL:
3736                 return("DS sub cls test fail");
3737                 break;
3738         case ERROR_DS_BAD_RDN_ATT_ID_SYNTAX:
3739                 return("DS bad rdn att ID syntax");
3740                 break;
3741         case ERROR_DS_EXISTS_IN_AUX_CLS:
3742                 return("DS exists in aux cls");
3743                 break;
3744         case ERROR_DS_EXISTS_IN_SUB_CLS:
3745                 return("DS exists in sub cls");
3746                 break;
3747         case ERROR_DS_EXISTS_IN_POSS_SUP:
3748                 return("DS exists in poss sup");
3749                 break;
3750         case ERROR_DS_RECALCSCHEMA_FAILED:
3751                 return("DS recalcschema failed");
3752                 break;
3753         case ERROR_DS_TREE_DELETE_NOT_FINISHED:
3754                 return("DS tree delete not finished");
3755                 break;
3756         case ERROR_DS_CANT_DELETE:
3757                 return("DS can't delete");
3758                 break;
3759         case ERROR_DS_ATT_SCHEMA_REQ_ID:
3760                 return("DS att schema req ID");
3761                 break;
3762         case ERROR_DS_BAD_ATT_SCHEMA_SYNTAX:
3763                 return("DS bad att schema syntax");
3764                 break;
3765         case ERROR_DS_CANT_CACHE_ATT:
3766                 return("DS can't cache att");
3767                 break;
3768         case ERROR_DS_CANT_CACHE_CLASS:
3769                 return("DS can't cache class");
3770                 break;
3771         case ERROR_DS_CANT_REMOVE_ATT_CACHE:
3772                 return("DS can't remove att cache");
3773                 break;
3774         case ERROR_DS_CANT_REMOVE_CLASS_CACHE:
3775                 return("DS can't remove class cache");
3776                 break;
3777         case ERROR_DS_CANT_RETRIEVE_DN:
3778                 return("DS can't retrieve DN");
3779                 break;
3780         case ERROR_DS_MISSING_SUPREF:
3781                 return("DS missing supref");
3782                 break;
3783         case ERROR_DS_CANT_RETRIEVE_INSTANCE:
3784                 return("DS can't retrieve instance");
3785                 break;
3786         case ERROR_DS_CODE_INCONSISTENCY:
3787                 return("DS code inconsistency");
3788                 break;
3789         case ERROR_DS_DATABASE_ERROR:
3790                 return("DS database error");
3791                 break;
3792         case ERROR_DS_GOVERNSID_MISSING:
3793                 return("DS governsid missing");
3794                 break;
3795         case ERROR_DS_MISSING_EXPECTED_ATT:
3796                 return("DS missing expected att");
3797                 break;
3798         case ERROR_DS_NCNAME_MISSING_CR_REF:
3799                 return("DS ncname missing cr ref");
3800                 break;
3801         case ERROR_DS_SECURITY_CHECKING_ERROR:
3802                 return("DS security checking error");
3803                 break;
3804         case ERROR_DS_SCHEMA_NOT_LOADED:
3805                 return("DS schema not loaded");
3806                 break;
3807         case ERROR_DS_SCHEMA_ALLOC_FAILED:
3808                 return("DS schema alloc failed");
3809                 break;
3810         case ERROR_DS_ATT_SCHEMA_REQ_SYNTAX:
3811                 return("DS att schema req syntax");
3812                 break;
3813         case ERROR_DS_GCVERIFY_ERROR:
3814                 return("DS gcverify error");
3815                 break;
3816         case ERROR_DS_DRA_SCHEMA_MISMATCH:
3817                 return("DS dra schema mismatch");
3818                 break;
3819         case ERROR_DS_CANT_FIND_DSA_OBJ:
3820                 return("DS can't find dsa obj");
3821                 break;
3822         case ERROR_DS_CANT_FIND_EXPECTED_NC:
3823                 return("DS can't find expected nc");
3824                 break;
3825         case ERROR_DS_CANT_FIND_NC_IN_CACHE:
3826                 return("DS can't find nc in cache");
3827                 break;
3828         case ERROR_DS_CANT_RETRIEVE_CHILD:
3829                 return("DS can't retrieve child");
3830                 break;
3831         case ERROR_DS_SECURITY_ILLEGAL_MODIFY:
3832                 return("DS security illegal modify");
3833                 break;
3834         case ERROR_DS_CANT_REPLACE_HIDDEN_REC:
3835                 return("DS can't replace hidden rec");
3836                 break;
3837         case ERROR_DS_BAD_HIERARCHY_FILE:
3838                 return("DS bad hierarchy file");
3839                 break;
3840         case ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED:
3841                 return("DS build hierarchy table failed");
3842                 break;
3843         case ERROR_DS_CONFIG_PARAM_MISSING:
3844                 return("DS config param missing");
3845                 break;
3846         case ERROR_DS_COUNTING_AB_INDICES_FAILED:
3847                 return("DS counting ab indices failed");
3848                 break;
3849         case ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED:
3850                 return("DS hierarchy table malloc failed");
3851                 break;
3852         case ERROR_DS_INTERNAL_FAILURE:
3853                 return("DS internal failure");
3854                 break;
3855         case ERROR_DS_UNKNOWN_ERROR:
3856                 return("DS unknown error");
3857                 break;
3858         case ERROR_DS_ROOT_REQUIRES_CLASS_TOP:
3859                 return("DS root requires class top");
3860                 break;
3861         case ERROR_DS_REFUSING_FSMO_ROLES:
3862                 return("DS refusing fmso roles");
3863                 break;
3864         case ERROR_DS_MISSING_FSMO_SETTINGS:
3865                 return("DS missing fmso settings");
3866                 break;
3867         case ERROR_DS_UNABLE_TO_SURRENDER_ROLES:
3868                 return("DS unable to surrender roles");
3869                 break;
3870         case ERROR_DS_DRA_GENERIC:
3871                 return("DS dra generic");
3872                 break;
3873         case ERROR_DS_DRA_INVALID_PARAMETER:
3874                 return("DS dra invalid parameter");
3875                 break;
3876         case ERROR_DS_DRA_BUSY:
3877                 return("DS dra busy");
3878                 break;
3879         case ERROR_DS_DRA_BAD_DN:
3880                 return("DS dra bad dn");
3881                 break;
3882         case ERROR_DS_DRA_BAD_NC:
3883                 return("DS dra bad nc");
3884                 break;
3885         case ERROR_DS_DRA_DN_EXISTS:
3886                 return("DS dra dn exists");
3887                 break;
3888         case ERROR_DS_DRA_INTERNAL_ERROR:
3889                 return("DS dra internal error");
3890                 break;
3891         case ERROR_DS_DRA_INCONSISTENT_DIT:
3892                 return("DS dra inconsistent dit");
3893                 break;
3894         case ERROR_DS_DRA_CONNECTION_FAILED:
3895                 return("DS dra connection failed");
3896                 break;
3897         case ERROR_DS_DRA_BAD_INSTANCE_TYPE:
3898                 return("DS dra bad instance type");
3899                 break;
3900         case ERROR_DS_DRA_OUT_OF_MEM:
3901                 return("DS dra out of mem");
3902                 break;
3903         case ERROR_DS_DRA_MAIL_PROBLEM:
3904                 return("DS dra mail problem");
3905                 break;
3906         case ERROR_DS_DRA_REF_ALREADY_EXISTS:
3907                 return("DS dra ref already exists");
3908                 break;
3909         case ERROR_DS_DRA_REF_NOT_FOUND:
3910                 return("DS dra ref not found");
3911                 break;
3912         case ERROR_DS_DRA_OBJ_IS_REP_SOURCE:
3913                 return("DS dra obj is rep source");
3914                 break;
3915         case ERROR_DS_DRA_DB_ERROR:
3916                 return("DS dra db error");
3917                 break;
3918         case ERROR_DS_DRA_NO_REPLICA:
3919                 return("DS dra no replica");
3920                 break;
3921         case ERROR_DS_DRA_ACCESS_DENIED:
3922                 return("DS dra access denied");
3923                 break;
3924         case ERROR_DS_DRA_NOT_SUPPORTED:
3925                 return("DS dra not supported");
3926                 break;
3927         case ERROR_DS_DRA_RPC_CANCELLED:
3928                 return("DS dra RPC cancelled");
3929                 break;
3930         case ERROR_DS_DRA_SOURCE_DISABLED:
3931                 return("DS dra source disabled");
3932                 break;
3933         case ERROR_DS_DRA_SINK_DISABLED:
3934                 return("DS dra sink disabled");
3935                 break;
3936         case ERROR_DS_DRA_NAME_COLLISION:
3937                 return("DS dra name collision");
3938                 break;
3939         case ERROR_DS_DRA_SOURCE_REINSTALLED:
3940                 return("DS dra source reinstalled");
3941                 break;
3942         case ERROR_DS_DRA_MISSING_PARENT:
3943                 return("DS dra missing parent");
3944                 break;
3945         case ERROR_DS_DRA_PREEMPTED:
3946                 return("DS dra preempted");
3947                 break;
3948         case ERROR_DS_DRA_ABANDON_SYNC:
3949                 return("DS dra abandon sync");
3950                 break;
3951         case ERROR_DS_DRA_SHUTDOWN:
3952                 return("DS dra shutdown");
3953                 break;
3954         case ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET:
3955                 return("DS dra incompatible partial set");
3956                 break;
3957         case ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA:
3958                 return("DS dra source is partial replica");
3959                 break;
3960         case ERROR_DS_DRA_EXTN_CONNECTION_FAILED:
3961                 return("DS dra extn connection failed");
3962                 break;
3963         case ERROR_DS_INSTALL_SCHEMA_MISMATCH:
3964                 return("DS install schema mismatch");
3965                 break;
3966         case ERROR_DS_DUP_LINK_ID:
3967                 return("DS dup link ID");
3968                 break;
3969         case ERROR_DS_NAME_ERROR_RESOLVING:
3970                 return("DS name error resolving");
3971                 break;
3972         case ERROR_DS_NAME_ERROR_NOT_FOUND:
3973                 return("DS name error not found");
3974                 break;
3975         case ERROR_DS_NAME_ERROR_NOT_UNIQUE:
3976                 return("DS name error not unique");
3977                 break;
3978         case ERROR_DS_NAME_ERROR_NO_MAPPING:
3979                 return("DS name error no mapping");
3980                 break;
3981         case ERROR_DS_NAME_ERROR_DOMAIN_ONLY:
3982                 return("DS name error domain only");
3983                 break;
3984         case ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING:
3985                 return("DS name error no syntactical mapping");
3986                 break;
3987         case ERROR_DS_CONSTRUCTED_ATT_MOD:
3988                 return("DS constructed att mod");
3989                 break;
3990         case ERROR_DS_WRONG_OM_OBJ_CLASS:
3991                 return("DS wrong om obj class");
3992                 break;
3993         case ERROR_DS_DRA_REPL_PENDING:
3994                 return("DS dra repl pending");
3995                 break;
3996         case ERROR_DS_DS_REQUIRED:
3997                 return("DS ds required");
3998                 break;
3999         case ERROR_DS_INVALID_LDAP_DISPLAY_NAME:
4000                 return("DS invalid LDAP display name");
4001                 break;
4002         case ERROR_DS_NON_BASE_SEARCH:
4003                 return("DS non base search");
4004                 break;
4005         case ERROR_DS_CANT_RETRIEVE_ATTS:
4006                 return("DS can't retrieve atts");
4007                 break;
4008         case ERROR_DS_BACKLINK_WITHOUT_LINK:
4009                 return("DS backlink without link");
4010                 break;
4011         case ERROR_DS_EPOCH_MISMATCH:
4012                 return("DS epoch mismatch");
4013                 break;
4014         case ERROR_DS_SRC_NAME_MISMATCH:
4015                 return("DS src name mismatch");
4016                 break;
4017         case ERROR_DS_SRC_AND_DST_NC_IDENTICAL:
4018                 return("DS src and dst nc identical");
4019                 break;
4020         case ERROR_DS_DST_NC_MISMATCH:
4021                 return("DS dst nc mismatch");
4022                 break;
4023         case ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC:
4024                 return("DS not authoritive for dst nc");
4025                 break;
4026         case ERROR_DS_SRC_GUID_MISMATCH:
4027                 return("DS src GUID mismatch");
4028                 break;
4029         case ERROR_DS_CANT_MOVE_DELETED_OBJECT:
4030                 return("DS can't move deleted object");
4031                 break;
4032         case ERROR_DS_PDC_OPERATION_IN_PROGRESS:
4033                 return("DS pdc operation in progress");
4034                 break;
4035         case ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD:
4036                 return("DS cross domain cleanup reqd");
4037                 break;
4038         case ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION:
4039                 return("DS illegal xdom move operation");
4040                 break;
4041         case ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS:
4042                 return("DS can't with acct group membershps");
4043                 break;
4044         case ERROR_DS_NC_MUST_HAVE_NC_PARENT:
4045                 return("DS nc must have nc parent");
4046                 break;
4047         case ERROR_DS_DST_DOMAIN_NOT_NATIVE:
4048                 return("DS dst domain not native");
4049                 break;
4050         case ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER:
4051                 return("DS missing infrastructure container");
4052                 break;
4053         case ERROR_DS_CANT_MOVE_ACCOUNT_GROUP:
4054                 return("DS can't move account group");
4055                 break;
4056         case ERROR_DS_CANT_MOVE_RESOURCE_GROUP:
4057                 return("DS can't move resource group");
4058                 break;
4059         case ERROR_DS_INVALID_SEARCH_FLAG:
4060                 return("DS invalid search flag");
4061                 break;
4062         case ERROR_DS_NO_TREE_DELETE_ABOVE_NC:
4063                 return("DS no tree delete above nc");
4064                 break;
4065         case ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE:
4066                 return("DS couldn't lock tree for delete");
4067                 break;
4068         case ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE:
4069                 return("DS couldn't identify objects for tree delete");
4070                 break;
4071         case ERROR_DS_SAM_INIT_FAILURE:
4072                 return("DS sam init failure");
4073                 break;
4074         case ERROR_DS_SENSITIVE_GROUP_VIOLATION:
4075                 return("DS sensitive group violation");
4076                 break;
4077         case ERROR_DS_CANT_MOD_PRIMARYGROUPID:
4078                 return("DS can't mod primarygroupid");
4079                 break;
4080         case ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD:
4081                 return("DS illegal base schema mod");
4082                 break;
4083         case ERROR_DS_NONSAFE_SCHEMA_CHANGE:
4084                 return("DS nonsafe schema change");
4085                 break;
4086         case ERROR_DS_SCHEMA_UPDATE_DISALLOWED:
4087                 return("DS schema update disallowed");
4088                 break;
4089         case ERROR_DS_CANT_CREATE_UNDER_SCHEMA:
4090                 return("DS can't create under schema");
4091                 break;
4092         case ERROR_DS_INSTALL_NO_SRC_SCH_VERSION:
4093                 return("DS install no src sch version");
4094                 break;
4095         case ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE:
4096                 return("DS install no sch version in inifile");
4097                 break;
4098         case ERROR_DS_INVALID_GROUP_TYPE:
4099                 return("DS invalid group type");
4100                 break;
4101         case ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN:
4102                 return("DS no nest globalgroup in mixeddomain");
4103                 break;
4104         case ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN:
4105                 return("DS no nest localgroup in mixeddomain");
4106                 break;
4107         case ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER:
4108                 return("DS global can't have local member");
4109                 break;
4110         case ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER:
4111                 return("DS global can't have universal member");
4112                 break;
4113         case ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER:
4114                 return("DS universal can't have local member");
4115                 break;
4116         case ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER:
4117                 return("DS global can't have crossdomain member");
4118                 break;
4119         case ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER:
4120                 return("DS local can't have crossdomain local member");
4121                 break;
4122         case ERROR_DS_HAVE_PRIMARY_MEMBERS:
4123                 return("DS have primary members");
4124                 break;
4125         case ERROR_DS_STRING_SD_CONVERSION_FAILED:
4126                 return("DS string sd conversion failed");
4127                 break;
4128         case ERROR_DS_NAMING_MASTER_GC:
4129                 return("DS naming master gc");
4130                 break;
4131         case ERROR_DS_LOOKUP_FAILURE:
4132                 return("DS lookup failure");
4133                 break;
4134         case ERROR_DS_COULDNT_UPDATE_SPNS:
4135                 return("DS couldn't update spns");
4136                 break;
4137         case ERROR_DS_CANT_RETRIEVE_SD:
4138                 return("DS can't retrieve sd");
4139                 break;
4140         case ERROR_DS_KEY_NOT_UNIQUE:
4141                 return("DS key not unique");
4142                 break;
4143         case ERROR_DS_WRONG_LINKED_ATT_SYNTAX:
4144                 return("DS wrong linked att syntax");
4145                 break;
4146         case ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD:
4147                 return("DS sam need bootkey password");
4148                 break;
4149         case ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY:
4150                 return("DS sam need bootkey floppy");
4151                 break;
4152         case ERROR_DS_CANT_START:
4153                 return("DS can't start");
4154                 break;
4155         case ERROR_DS_INIT_FAILURE:
4156                 return("DS init failure");
4157                 break;
4158         case ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION:
4159                 return("DS no pkt privacy on connection");
4160                 break;
4161         case ERROR_DS_SOURCE_DOMAIN_IN_FOREST:
4162                 return("DS source domain in forest");
4163                 break;
4164         case ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST:
4165                 return("DS destination domain not in forest");
4166                 break;
4167         case ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED:
4168                 return("DS destination auditing not enabled");
4169                 break;
4170         case ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN:
4171                 return("DS can't find dc for src domain");
4172                 break;
4173         case ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER:
4174                 return("DS src obj not group or user");
4175                 break;
4176         case ERROR_DS_SRC_SID_EXISTS_IN_FOREST:
4177                 return("DS src sid exists in forest");
4178                 break;
4179         case ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH:
4180                 return("DS src and dst object class mismatch");
4181                 break;
4182         case ERROR_SAM_INIT_FAILURE:
4183                 return("Sam init failure");
4184                 break;
4185         case ERROR_DS_DRA_SCHEMA_INFO_SHIP:
4186                 return("DS dra schema info ship");
4187                 break;
4188         case ERROR_DS_DRA_SCHEMA_CONFLICT:
4189                 return("DS dra schema conflict");
4190                 break;
4191         case ERROR_DS_DRA_EARLIER_SCHEMA_CONLICT:
4192                 return("DS dra earlier schema conflict");
4193                 break;
4194         case ERROR_DS_DRA_OBJ_NC_MISMATCH:
4195                 return("DS dra obj nc mismatch");
4196                 break;
4197         case ERROR_DS_NC_STILL_HAS_DSAS:
4198                 return("DS nc still has dsas");
4199                 break;
4200         case ERROR_DS_GC_REQUIRED:
4201                 return("DS gc required");
4202                 break;
4203         case ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY:
4204                 return("DS local member of local only");
4205                 break;
4206         case ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS:
4207                 return("DS no fpo in universal groups");
4208                 break;
4209         case ERROR_DS_CANT_ADD_TO_GC:
4210                 return("DS can't add to gc");
4211                 break;
4212         case ERROR_DS_NO_CHECKPOINT_WITH_PDC:
4213                 return("DS no checkpoint with pdc");
4214                 break;
4215         case ERROR_DS_SOURCE_AUDITING_NOT_ENABLED:
4216                 return("DS source auditing not enabled");
4217                 break;
4218         case ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC:
4219                 return("DS can't create in nondomain nc");
4220                 break;
4221         case ERROR_DS_INVALID_NAME_FOR_SPN:
4222                 return("DS invalid name for spn");
4223                 break;
4224         case ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS:
4225                 return("DS filter uses constructed attrs");
4226                 break;
4227         case ERROR_DS_UNICODEPWD_NOT_IN_QUOTES:
4228                 return("DS unicodepwd not in quotes");
4229                 break;
4230         case ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED:
4231                 return("DS machine account quota exceeded");
4232                 break;
4233         case ERROR_DS_MUST_BE_RUN_ON_DST_DC:
4234                 return("DS must be run on dst dc");
4235                 break;
4236         case ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER:
4237                 return("DS src dc must be sp4 or greater");
4238                 break;
4239         case ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ:
4240                 return("DS can't tree delete critical obj");
4241                 break;
4242         case ERROR_DS_INIT_FAILURE_CONSOLE:
4243                 return("DS init failure console");
4244                 break;
4245         case ERROR_DS_SAM_INIT_FAILURE_CONSOLE:
4246                 return("DS sam init failure console");
4247                 break;
4248         case ERROR_DS_FOREST_VERSION_TOO_HIGH:
4249                 return("DS forest version too high");
4250                 break;
4251         case ERROR_DS_DOMAIN_VERSION_TOO_HIGH:
4252                 return("DS domain version too high");
4253                 break;
4254         case ERROR_DS_FOREST_VERSION_TOO_LOW:
4255                 return("DS forest version too low");
4256                 break;
4257         case ERROR_DS_DOMAIN_VERSION_TOO_LOW:
4258                 return("DS domain version too low");
4259                 break;
4260         case ERROR_DS_INCOMPATIBLE_VERSION:
4261                 return("DS incompatible version");
4262                 break;
4263         case ERROR_DS_LOW_DSA_VERSION:
4264                 return("DS low dsa version");
4265                 break;
4266         case ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN:
4267                 return("DS no behaviour version in mixeddomain");
4268                 break;
4269         case ERROR_DS_NOT_SUPPORTED_SORT_ORDER:
4270                 return("DS not supported sort order");
4271                 break;
4272         case ERROR_DS_NAME_NOT_UNIQUE:
4273                 return("DS name not unique");
4274                 break;
4275         case ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4:
4276                 return("DS machine account created prent4");
4277                 break;
4278         case ERROR_DS_OUT_OF_VERSION_STORE:
4279                 return("DS out of version store");
4280                 break;
4281         case ERROR_DS_INCOMPATIBLE_CONTROLS_USED:
4282                 return("DS incompatible controls used");
4283                 break;
4284         case ERROR_DS_NO_REF_DOMAIN:
4285                 return("DS no ref domain");
4286                 break;
4287         case ERROR_DS_RESERVED_LINK_ID:
4288                 return("DS reserved link ID");
4289                 break;
4290         case ERROR_DS_LINK_ID_NOT_AVAILABLE:
4291                 return("DS link ID not available");
4292                 break;
4293         case ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER:
4294                 return("DS ag can't have universal member");
4295                 break;
4296         case ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE:
4297                 return("DS modifydn disallowed by instance type");
4298                 break;
4299         case ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC:
4300                 return("DS no object move in schema nc");
4301                 break;
4302         case ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG:
4303                 return("DS modifydn disallowed by flag");
4304                 break;
4305         case ERROR_DS_MODIFYDN_WRONG_GRANDPARENT:
4306                 return("DS modifydn wrong grandparent");
4307                 break;
4308         case ERROR_DS_NAME_ERROR_TRUST_REFERRAL:
4309                 return("DS name error trust referral");
4310                 break;
4311         case ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER:
4312                 return("Not supported on standard server");
4313                 break;
4314         case ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD:
4315                 return("DS can't access remote part of ad");
4316                 break;
4317         case ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE:
4318                 return("DS cr impossible to validate");
4319                 break;
4320         case ERROR_DS_THREAD_LIMIT_EXCEEDED:
4321                 return("DS thread limit exceeded");
4322                 break;
4323         case ERROR_DS_NOT_CLOSEST:
4324                 return("DS not closest");
4325                 break;
4326         case ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF:
4327                 return("DS can't derive spn without server ref");
4328                 break;
4329         case ERROR_DS_SINGLE_USER_MODE_FAILED:
4330                 return("DS single user mode failed");
4331                 break;
4332         case ERROR_DS_NTDSCRIPT_SYNTAX_ERROR:
4333                 return("DS ntdscript syntax error");
4334                 break;
4335         case ERROR_DS_NTDSCRIPT_PROCESS_ERROR:
4336                 return("DS ntdscript process error");
4337                 break;
4338         case ERROR_DS_DIFFERENT_REPL_EPOCHS:
4339                 return("DS different repl epochs");
4340                 break;
4341         case ERROR_DS_DRS_EXTENSIONS_CHANGED:
4342                 return("DS drs extensions changed");
4343                 break;
4344         case ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR:
4345                 return("DS replica set change not allowed on disabled cr");
4346                 break;
4347         case ERROR_DS_NO_MSDS_INTID:
4348                 return("DS no msds intid");
4349                 break;
4350         case ERROR_DS_DUP_MSDS_INTID:
4351                 return("DS dup msds intid");
4352                 break;
4353         case ERROR_DS_EXISTS_IN_RDNATTID:
4354                 return("DS exists in rdnattid");
4355                 break;
4356         case ERROR_DS_AUTHORIZATION_FAILED:
4357                 return("DS authorisation failed");
4358                 break;
4359         case ERROR_DS_INVALID_SCRIPT:
4360                 return("DS invalid script");
4361                 break;
4362         case ERROR_DS_REMOTE_CROSSREF_OP_FAILED:
4363                 return("DS remote crossref op failed");
4364                 break;
4365         case DNS_ERROR_RCODE_FORMAT_ERROR:
4366                 return("DNS error rcode format error");
4367                 break;
4368         case DNS_ERROR_RCODE_SERVER_FAILURE:
4369                 return("DNS error rcode server failure");
4370                 break;
4371         case DNS_ERROR_RCODE_NAME_ERROR:
4372                 return("DNS error rcode name error");
4373                 break;
4374         case DNS_ERROR_RCODE_NOT_IMPLEMENTED:
4375                 return("DNS error rcode not implemented");
4376                 break;
4377         case DNS_ERROR_RCODE_REFUSED:
4378                 return("DNS error rcode refused");
4379                 break;
4380         case DNS_ERROR_RCODE_YXDOMAIN:
4381                 return("DNS error rcode yxdomain");
4382                 break;
4383         case DNS_ERROR_RCODE_YXRRSET:
4384                 return("DNS error rcode yxrrset");
4385                 break;
4386         case DNS_ERROR_RCODE_NXRRSET:
4387                 return("DNS error rcode nxrrset");
4388                 break;
4389         case DNS_ERROR_RCODE_NOTAUTH:
4390                 return("DNS error rcode notauth");
4391                 break;
4392         case DNS_ERROR_RCODE_NOTZONE:
4393                 return("DNS error rcode notzone");
4394                 break;
4395         case DNS_ERROR_RCODE_BADSIG:
4396                 return("DNS error rcode badsig");
4397                 break;
4398         case DNS_ERROR_RCODE_BADKEY:
4399                 return("DNS error rcode badkey");
4400                 break;
4401         case DNS_ERROR_RCODE_BADTIME:
4402                 return("DNS error rcode badtime");
4403                 break;
4404         case DNS_INFO_NO_RECORDS:
4405                 return("DNS info no records");
4406                 break;
4407         case DNS_ERROR_BAD_PACKET:
4408                 return("DNS error bad packet");
4409                 break;
4410         case DNS_ERROR_NO_PACKET:
4411                 return("DNS error no packet");
4412                 break;
4413         case DNS_ERROR_RCODE:
4414                 return("DNS error rcode");
4415                 break;
4416         case DNS_ERROR_UNSECURE_PACKET:
4417                 return("DNS error unsecure packet");
4418                 break;
4419         case DNS_ERROR_INVALID_TYPE:
4420                 return("DNS error invalid type");
4421                 break;
4422         case DNS_ERROR_INVALID_IP_ADDRESS:
4423                 return("DNS error invalid IP address");
4424                 break;
4425         case DNS_ERROR_INVALID_PROPERTY:
4426                 return("DNS error invalid property");
4427                 break;
4428         case DNS_ERROR_TRY_AGAIN_LATER:
4429                 return("DNS error try again later");
4430                 break;
4431         case DNS_ERROR_NOT_UNIQUE:
4432                 return("DNS error not unique");
4433                 break;
4434         case DNS_ERROR_NON_RFC_NAME:
4435                 return("DNS error non RFC name");
4436                 break;
4437         case DNS_STATUS_FQDN:
4438                 return("DNS status FQDN");
4439                 break;
4440         case DNS_STATUS_DOTTED_NAME:
4441                 return("DNS status dotted name");
4442                 break;
4443         case DNS_STATUS_SINGLE_PART_NAME:
4444                 return("DNS status single part name");
4445                 break;
4446         case DNS_ERROR_INVALID_NAME_CHAR:
4447                 return("DNS error invalid name char");
4448                 break;
4449         case DNS_ERROR_NUMERIC_NAME:
4450                 return("DNS error numeric name");
4451                 break;
4452         case DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER:
4453                 return("DNS error not allowed on root server");
4454                 break;
4455         case DNS_ERROR_ZONE_DOES_NOT_EXIST:
4456                 return("DNS error zone does not exist");
4457                 break;
4458         case DNS_ERROR_NO_ZONE_INFO:
4459                 return("DNS error not zone info");
4460                 break;
4461         case DNS_ERROR_INVALID_ZONE_OPERATION:
4462                 return("DNS error invalid zone operation");
4463                 break;
4464         case DNS_ERROR_ZONE_CONFIGURATION_ERROR:
4465                 return("DNS error zone configuration error");
4466                 break;
4467         case DNS_ERROR_ZONE_HAS_NO_SOA_RECORD:
4468                 return("DNS error zone has not SOA record");
4469                 break;
4470         case DNS_ERROR_ZONE_HAS_NO_NS_RECORDS:
4471                 return("DNS error zone has no NS records");
4472                 break;
4473         case DNS_ERROR_ZONE_LOCKED:
4474                 return("DNS error zone locked");
4475                 break;
4476         case DNS_ERROR_ZONE_CREATION_FAILED:
4477                 return("DNS error zone creation failed");
4478                 break;
4479         case DNS_ERROR_ZONE_ALREADY_EXISTS:
4480                 return("DNS error zone already exists");
4481                 break;
4482         case DNS_ERROR_AUTOZONE_ALREADY_EXISTS:
4483                 return("DNS error autozone already exists");
4484                 break;
4485         case DNS_ERROR_INVALID_ZONE_TYPE:
4486                 return("DNS error invalid zone type");
4487                 break;
4488         case DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP:
4489                 return("DNS error secondary requires master IP");
4490                 break;
4491         case DNS_ERROR_ZONE_NOT_SECONDARY:
4492                 return("DNS error zone not secondary");
4493                 break;
4494         case DNS_ERROR_NEED_SECONDARY_ADDRESSES:
4495                 return("DNS error need secondary addresses");
4496                 break;
4497         case DNS_ERROR_WINS_INIT_FAILED:
4498                 return("DNS error wins init failed");
4499                 break;
4500         case DNS_ERROR_NEED_WINS_SERVERS:
4501                 return("DNS error need wins servers");
4502                 break;
4503         case DNS_ERROR_NBSTAT_INIT_FAILED:
4504                 return("DNS error nbstat init failed");
4505                 break;
4506         case DNS_ERROR_SOA_DELETE_INVALID:
4507                 return("DNS error SOA delete invalid");
4508                 break;
4509         case DNS_ERROR_FORWARDER_ALREADY_EXISTS:
4510                 return("DNS error forwarder already exists");
4511                 break;
4512         case DNS_ERROR_ZONE_REQUIRES_MASTER_IP:
4513                 return("DNS error zone requires master IP");
4514                 break;
4515         case DNS_ERROR_ZONE_IS_SHUTDOWN:
4516                 return("DNS error zone is shutdown");
4517                 break;
4518         case DNS_ERROR_PRIMARY_REQUIRES_DATAFILE:
4519                 return("DNS error primary requires datafile");
4520                 break;
4521         case DNS_ERROR_INVALID_DATAFILE_NAME:
4522                 return("DNS error invalid datafile name");
4523                 break;
4524         case DNS_ERROR_DATAFILE_OPEN_FAILURE:
4525                 return("DNS error datafile open failure");
4526                 break;
4527         case DNS_ERROR_FILE_WRITEBACK_FAILED:
4528                 return("DNS error file writeback failed");
4529                 break;
4530         case DNS_ERROR_DATAFILE_PARSING:
4531                 return("DNS error datafile parsing");
4532                 break;
4533         case DNS_ERROR_RECORD_DOES_NOT_EXIST:
4534                 return("DNS error record does not exist");
4535                 break;
4536         case DNS_ERROR_RECORD_FORMAT:
4537                 return("DNS error record format");
4538                 break;
4539         case DNS_ERROR_NODE_CREATION_FAILED:
4540                 return("DNS error node creation failed");
4541                 break;
4542         case DNS_ERROR_UNKNOWN_RECORD_TYPE:
4543                 return("DNS error unknown record type");
4544                 break;
4545         case DNS_ERROR_RECORD_TIMED_OUT:
4546                 return("DNS error record timed out");
4547                 break;
4548         case DNS_ERROR_NAME_NOT_IN_ZONE:
4549                 return("DNS error name not in zone");
4550                 break;
4551         case DNS_ERROR_CNAME_LOOP:
4552                 return("DNS error CNAME loop");
4553                 break;
4554         case DNS_ERROR_NODE_IS_CNAME:
4555                 return("DNS error node is CNAME");
4556                 break;
4557         case DNS_ERROR_CNAME_COLLISION:
4558                 return("DNS error CNAME collision");
4559                 break;
4560         case DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT:
4561                 return("DNS error record only at zone root");
4562                 break;
4563         case DNS_ERROR_RECORD_ALREADY_EXISTS:
4564                 return("DNS error record already exists");
4565                 break;
4566         case DNS_ERROR_SECONDARY_DATA:
4567                 return("DNS error secondary data");
4568                 break;
4569         case DNS_ERROR_NO_CREATE_CACHE_DATA:
4570                 return("DNS error no create cache data");
4571                 break;
4572         case DNS_ERROR_NAME_DOES_NOT_EXIST:
4573                 return("DNS error name does not exist");
4574                 break;
4575         case DNS_WARNING_PTR_CREATE_FAILED:
4576                 return("DNS warning PTR create failed");
4577                 break;
4578         case DNS_WARNING_DOMAIN_UNDELETED:
4579                 return("DNS warning domain undeleted");
4580                 break;
4581         case DNS_ERROR_DS_UNAVAILABLE:
4582                 return("DNS error ds unavailable");
4583                 break;
4584         case DNS_ERROR_DS_ZONE_ALREADY_EXISTS:
4585                 return("DNS error ds zone already exists");
4586                 break;
4587         case DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE:
4588                 return("DNS error no bootfile if ds zone");
4589                 break;
4590         case DNS_INFO_AXFR_COMPLETE:
4591                 return("DNS info AXFR complete");
4592                 break;
4593         case DNS_ERROR_AXFR:
4594                 return("DNS error AXFR");
4595                 break;
4596         case DNS_INFO_ADDED_LOCAL_WINS:
4597                 return("DNS info added local wins");
4598                 break;
4599         case DNS_STATUS_CONTINUE_NEEDED:
4600                 return("DNS status continue needed");
4601                 break;
4602         case DNS_ERROR_NO_TCPIP:
4603                 return("DNS error no TCPIP");
4604                 break;
4605         case DNS_ERROR_NO_DNS_SERVERS:
4606                 return("DNS error no DNS servers");
4607                 break;
4608         case DNS_ERROR_DP_DOES_NOT_EXIST:
4609                 return("DNS error dp does not exist");
4610                 break;
4611         case DNS_ERROR_DP_ALREADY_EXISTS:
4612                 return("DNS error dp already exists");
4613                 break;
4614         case DNS_ERROR_DP_NOT_ENLISTED:
4615                 return("DNS error dp not enlisted");
4616                 break;
4617         case DNS_ERROR_DP_ALREADY_ENLISTED:
4618                 return("DNS error dp already enlisted");
4619                 break;
4620         case WSAEINTR:
4621                 return("interrupted");
4622                 break;
4623         case WSAEBADF:
4624                 return("Bad file number");
4625                 break;
4626         case WSAEACCES:
4627                 return("Access denied");
4628                 break;
4629         case WSAEFAULT:
4630                 return("Bad address");
4631                 break;
4632         case WSAEINVAL:
4633                 return("Invalid arguments");
4634                 break;
4635         case WSAEMFILE:
4636                 return("Too many open files");
4637                 break;
4638         case WSAEWOULDBLOCK:
4639                 return("Operation on non-blocking socket would block");
4640                 break;
4641         case WSAEINPROGRESS:
4642                 return("Operation in progress");
4643                 break;
4644         case WSAEALREADY:
4645                 return("Operation already in progress");
4646                 break;
4647         case WSAENOTSOCK:
4648                 return("The descriptor is not a socket");
4649                 break;
4650         case WSAEDESTADDRREQ:
4651                 return("Destination address required");
4652                 break;
4653         case WSAEMSGSIZE:
4654                 return("Message too long");
4655                 break;
4656         case WSAEPROTOTYPE:
4657                 return("Protocol wrong type for socket");
4658                 break;
4659         case WSAENOPROTOOPT:
4660                 return("Protocol option not supported");
4661                 break;
4662         case WSAEPROTONOSUPPORT:
4663                 return("Protocol not supported");
4664                 break;
4665         case WSAESOCKTNOSUPPORT:
4666                 return("Socket not supported");
4667                 break;
4668         case WSAEOPNOTSUPP:
4669                 return("Operation not supported");
4670                 break;
4671         case WSAEPFNOSUPPORT:
4672                 return("Protocol family not supported");
4673                 break;
4674         case WSAEAFNOSUPPORT:
4675                 return("An address incompatible with the requested protocol was used");
4676                 break;
4677         case WSAEADDRINUSE:
4678                 return("Address already in use");
4679                 break;
4680         case WSAEADDRNOTAVAIL:
4681                 return("The requested address is not valid in this context");
4682                 break;
4683         case WSAENETDOWN:
4684                 return("Network subsystem is down");
4685                 break;
4686         case WSAENETUNREACH:
4687                 return("Network is unreachable");
4688                 break;
4689         case WSAENETRESET:
4690                 return("Connection broken, keep-alive detected a problem");
4691                 break;
4692         case WSAECONNABORTED:
4693                 return("An established connection was aborted in your host machine.");
4694                 break;
4695         case WSAECONNRESET:
4696                 return("Connection reset by peer");
4697                 break;
4698         case WSAENOBUFS:
4699                 return("Not enough buffer space is available");
4700                 break;
4701         case WSAEISCONN:
4702                 return("Socket is already connected");
4703                 break;
4704         case WSAENOTCONN:
4705                 return("The socket is not connected");
4706                 break;
4707         case WSAESHUTDOWN:
4708                 return("The socket has been shut down");
4709                 break;
4710         case WSAETOOMANYREFS:
4711                 return("Too many references: cannot splice");
4712                 break;
4713         case WSAETIMEDOUT:
4714                 return("Connection timed out");
4715                 break;
4716         case WSAECONNREFUSED:
4717                 return("Connection refused");
4718                 break;
4719         case WSAELOOP:
4720                 return("Too many symbolic links encountered");
4721                 break;
4722         case WSAENAMETOOLONG:
4723                 return("File name too long");
4724                 break;
4725         case WSAEHOSTDOWN:
4726                 return("Host is down");
4727                 break;
4728         case WSAEHOSTUNREACH:
4729                 return("No route to host");
4730                 break;
4731         case WSAENOTEMPTY:
4732                 return("Directory not empty");
4733                 break;
4734         case WSAEPROCLIM:
4735                 return("EPROCLIM");
4736                 break;
4737         case WSAEUSERS:
4738                 return("Too many users");
4739                 break;
4740         case WSAEDQUOT:
4741                 return("Quota exceeded");
4742                 break;
4743         case WSAESTALE:
4744                 return("Stale NFS file handle");
4745                 break;
4746         case WSAEREMOTE:
4747                 return("Object is remote");
4748                 break;
4749         case WSASYSNOTREADY:
4750                 return("SYSNOTREADY");
4751                 break;
4752         case WSAVERNOTSUPPORTED:
4753                 return("VERNOTSUPPORTED");
4754                 break;
4755         case WSANOTINITIALISED:
4756                 return("Winsock not initialised");
4757                 break;
4758         case WSAEDISCON:
4759                 return("EDISCON");
4760                 break;
4761         case WSAENOMORE:
4762                 return("ENOMORE");
4763                 break;
4764         case WSAECANCELLED:
4765                 return("Operation canceled");
4766                 break;
4767         case WSAEINVALIDPROCTABLE:
4768                 return("EINVALIDPROCTABLE");
4769                 break;
4770         case WSAEINVALIDPROVIDER:
4771                 return("EINVALIDPROVIDER");
4772                 break;
4773         case WSAEPROVIDERFAILEDINIT:
4774                 return("EPROVIDERFAILEDINIT");
4775                 break;
4776         case WSASYSCALLFAILURE:
4777                 return("System call failed");
4778                 break;
4779         case WSASERVICE_NOT_FOUND:
4780                 return("SERVICE_NOT_FOUND");
4781                 break;
4782         case WSATYPE_NOT_FOUND:
4783                 return("TYPE_NOT_FOUND");
4784                 break;
4785         case WSA_E_NO_MORE:
4786                 return("E_NO_MORE");
4787                 break;
4788         case WSA_E_CANCELLED:
4789                 return("E_CANCELLED");
4790                 break;
4791         case WSAEREFUSED:
4792                 return("EREFUSED");
4793                 break;
4794         case WSAHOST_NOT_FOUND:
4795                 return("No such host is known");
4796                 break;
4797         case WSATRY_AGAIN:
4798                 return("A temporary error occurred on an authoritative name server.  Try again later.");
4799                 break;
4800         case WSANO_RECOVERY:
4801                 return("No recovery");
4802                 break;
4803         case WSANO_DATA:
4804                 return("No data");
4805                 break;
4806         case WSA_QOS_RECEIVERS:
4807                 return("QOS receivers");
4808                 break;
4809         case WSA_QOS_SENDERS:
4810                 return("QOS senders");
4811                 break;
4812         case WSA_QOS_NO_SENDERS:
4813                 return("QOS no senders");
4814                 break;
4815         case WSA_QOS_NO_RECEIVERS:
4816                 return("QOS no receivers");
4817                 break;
4818         case WSA_QOS_REQUEST_CONFIRMED:
4819                 return("QOS request confirmed");
4820                 break;
4821         case WSA_QOS_ADMISSION_FAILURE:
4822                 return("QOS admission failure");
4823                 break;
4824         case WSA_QOS_POLICY_FAILURE:
4825                 return("QOS policy failure");
4826                 break;
4827         case WSA_QOS_BAD_STYLE:
4828                 return("QOS bad style");
4829                 break;
4830         case WSA_QOS_BAD_OBJECT:
4831                 return("QOS bad object");
4832                 break;
4833         case WSA_QOS_TRAFFIC_CTRL_ERROR:
4834                 return("QOS traffic ctrl error");
4835                 break;
4836         case WSA_QOS_GENERIC_ERROR:
4837                 return("QOS generic error");
4838                 break;
4839         case WSA_QOS_ESERVICETYPE:
4840                 return("QOS eservicetype");
4841                 break;
4842         case WSA_QOS_EFLOWSPEC:
4843                 return("QOS eflowspec");
4844                 break;
4845         case WSA_QOS_EPROVSPECBUF:
4846                 return("QOS eprovspecbuf");
4847                 break;
4848         case WSA_QOS_EFILTERSTYLE:
4849                 return("QOS efilterstyle");
4850                 break;
4851         case WSA_QOS_EFILTERTYPE:
4852                 return("QOS efiltertype");
4853                 break;
4854         case WSA_QOS_EFILTERCOUNT:
4855                 return("QOS efiltercount");
4856                 break;
4857         case WSA_QOS_EOBJLENGTH:
4858                 return("QOS eobjlength");
4859                 break;
4860         case WSA_QOS_EFLOWCOUNT:
4861                 return("QOS eflowcount");
4862                 break;
4863         case WSA_QOS_EUNKNOWNPSOBJ:
4864                 return("QOS eunknownpsobj");
4865                 break;
4866         case WSA_QOS_EPOLICYOBJ:
4867                 return("QOS epolicyobj");
4868                 break;
4869         case WSA_QOS_EFLOWDESC:
4870                 return("QOS eflowdesc");
4871                 break;
4872         case WSA_QOS_EPSFLOWSPEC:
4873                 return("QOS epsflowspec");
4874                 break;
4875         case WSA_QOS_EPSFILTERSPEC:
4876                 return("QOS epsfilterspec");
4877                 break;
4878         case WSA_QOS_ESDMODEOBJ:
4879                 return("QOS esdmodeobj");
4880                 break;
4881         case WSA_QOS_ESHAPERATEOBJ:
4882                 return("QOS eshaperateobj");
4883                 break;
4884         case WSA_QOS_RESERVED_PETYPE:
4885                 return("QOS reserved petype");
4886                 break;
4887         case ERROR_IPSEC_QM_POLICY_EXISTS:
4888                 return("IPSEC qm policy exists");
4889                 break;
4890         case ERROR_IPSEC_QM_POLICY_NOT_FOUND:
4891                 return("IPSEC qm policy not found");
4892                 break;
4893         case ERROR_IPSEC_QM_POLICY_IN_USE:
4894                 return("IPSEC qm policy in use");
4895                 break;
4896         case ERROR_IPSEC_MM_POLICY_EXISTS:
4897                 return("IPSEC mm policy exists");
4898                 break;
4899         case ERROR_IPSEC_MM_POLICY_NOT_FOUND:
4900                 return("IPSEC mm policy not found");
4901                 break;
4902         case ERROR_IPSEC_MM_POLICY_IN_USE:
4903                 return("IPSEC mm policy in use");
4904                 break;
4905         case ERROR_IPSEC_MM_FILTER_EXISTS:
4906                 return("IPSEC mm filter exists");
4907                 break;
4908         case ERROR_IPSEC_MM_FILTER_NOT_FOUND:
4909                 return("IPSEC mm filter not found");
4910                 break;
4911         case ERROR_IPSEC_TRANSPORT_FILTER_EXISTS:
4912                 return("IPSEC transport filter exists");
4913                 break;
4914         case ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND:
4915                 return("IPSEC transport filter not found");
4916                 break;
4917         case ERROR_IPSEC_MM_AUTH_EXISTS:
4918                 return("IPSEC mm auth exists");
4919                 break;
4920         case ERROR_IPSEC_MM_AUTH_NOT_FOUND:
4921                 return("IPSEC mm auth not found");
4922                 break;
4923         case ERROR_IPSEC_MM_AUTH_IN_USE:
4924                 return("IPSEC mm auth in use");
4925                 break;
4926         case ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND:
4927                 return("IPSEC default mm policy not found");
4928                 break;
4929         case ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND:
4930                 return("IPSEC default mm auth not found");
4931                 break;
4932         case ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND:
4933                 return("IPSEC default qm policy not found");
4934                 break;
4935         case ERROR_IPSEC_TUNNEL_FILTER_EXISTS:
4936                 return("IPSEC tunnel filter exists");
4937                 break;
4938         case ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND:
4939                 return("IPSEC tunnel filter not found");
4940                 break;
4941         case ERROR_IPSEC_MM_FILTER_PENDING_DELETION:
4942                 return("IPSEC mm filter pending deletion");
4943                 break;
4944         case ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION:
4945                 return("IPSEC transport filter pending deletion");
4946                 break;
4947         case ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION:
4948                 return("IPSEC tunnel filter pending deletion");
4949                 break;
4950         case ERROR_IPSEC_MM_POLICY_PENDING_DELETION:
4951                 return("IPSEC mm policy pending deletion");
4952                 break;
4953         case ERROR_IPSEC_MM_AUTH_PENDING_DELETION:
4954                 return("IPSEC mm auth pending deletion");
4955                 break;
4956         case ERROR_IPSEC_QM_POLICY_PENDING_DELETION:
4957                 return("IPSEC qm policy pending deletion");
4958                 break;
4959         case ERROR_IPSEC_IKE_AUTH_FAIL:
4960                 return("IPSEC IKE auth fail");
4961                 break;
4962         case ERROR_IPSEC_IKE_ATTRIB_FAIL:
4963                 return("IPSEC IKE attrib fail");
4964                 break;
4965         case ERROR_IPSEC_IKE_NEGOTIATION_PENDING:
4966                 return("IPSEC IKE negotiation pending");
4967                 break;
4968         case ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR:
4969                 return("IPSEC IKE general processing error");
4970                 break;
4971         case ERROR_IPSEC_IKE_TIMED_OUT:
4972                 return("IPSEC IKE timed out");
4973                 break;
4974         case ERROR_IPSEC_IKE_NO_CERT:
4975                 return("IPSEC IKE no cert");
4976                 break;
4977         case ERROR_IPSEC_IKE_SA_DELETED:
4978                 return("IPSEC IKE sa deleted");
4979                 break;
4980         case ERROR_IPSEC_IKE_SA_REAPED:
4981                 return("IPSEC IKE sa reaped");
4982                 break;
4983         case ERROR_IPSEC_IKE_MM_ACQUIRE_DROP:
4984                 return("IPSEC IKE mm acquire drop");
4985                 break;
4986         case ERROR_IPSEC_IKE_QM_ACQUIRE_DROP:
4987                 return("IPSEC IKE qm acquire drop");
4988                 break;
4989         case ERROR_IPSEC_IKE_QUEUE_DROP_MM:
4990                 return("IPSEC IKE queue drop mm");
4991                 break;
4992         case ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM:
4993                 return("IPSEC IKE queue drop no mm");
4994                 break;
4995         case ERROR_IPSEC_IKE_DROP_NO_RESPONSE:
4996                 return("IPSEC IKE drop no response");
4997                 break;
4998         case ERROR_IPSEC_IKE_MM_DELAY_DROP:
4999                 return("IPSEC IKE mm delay drop");
5000                 break;
5001         case ERROR_IPSEC_IKE_QM_DELAY_DROP:
5002                 return("IPSEC IKE qm delay drop");
5003                 break;
5004         case ERROR_IPSEC_IKE_ERROR:
5005                 return("IPSEC IKE error");
5006                 break;
5007         case ERROR_IPSEC_IKE_CRL_FAILED:
5008                 return("IPSEC IKE crl failed");
5009                 break;
5010         case ERROR_IPSEC_IKE_INVALID_KEY_USAGE:
5011                 return("IPSEC IKE invalid key usage");
5012                 break;
5013         case ERROR_IPSEC_IKE_INVALID_CERT_TYPE:
5014                 return("IPSEC IKE invalid cert type");
5015                 break;
5016         case ERROR_IPSEC_IKE_NO_PRIVATE_KEY:
5017                 return("IPSEC IKE no private key");
5018                 break;
5019         case ERROR_IPSEC_IKE_DH_FAIL:
5020                 return("IPSEC IKE dh fail");
5021                 break;
5022         case ERROR_IPSEC_IKE_INVALID_HEADER:
5023                 return("IPSEC IKE invalid header");
5024                 break;
5025         case ERROR_IPSEC_IKE_NO_POLICY:
5026                 return("IPSEC IKE no policy");
5027                 break;
5028         case ERROR_IPSEC_IKE_INVALID_SIGNATURE:
5029                 return("IPSEC IKE invalid signature");
5030                 break;
5031         case ERROR_IPSEC_IKE_KERBEROS_ERROR:
5032                 return("IPSEC IKE kerberos error");
5033                 break;
5034         case ERROR_IPSEC_IKE_NO_PUBLIC_KEY:
5035                 return("IPSEC IKE no public key");
5036                 break;
5037         case ERROR_IPSEC_IKE_PROCESS_ERR:
5038                 return("IPSEC IKE process err");
5039                 break;
5040         case ERROR_IPSEC_IKE_PROCESS_ERR_SA:
5041                 return("IPSEC IKE process err sa");
5042                 break;
5043         case ERROR_IPSEC_IKE_PROCESS_ERR_PROP:
5044                 return("IPSEC IKE process err prop");
5045                 break;
5046         case ERROR_IPSEC_IKE_PROCESS_ERR_TRANS:
5047                 return("IPSEC IKE process err trans");
5048                 break;
5049         case ERROR_IPSEC_IKE_PROCESS_ERR_KE:
5050                 return("IPSEC IKE process err ke");
5051                 break;
5052         case ERROR_IPSEC_IKE_PROCESS_ERR_ID:
5053                 return("IPSEC IKE process err ID");
5054                 break;
5055         case ERROR_IPSEC_IKE_PROCESS_ERR_CERT:
5056                 return("IPSEC IKE process err cert");
5057                 break;
5058         case ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ:
5059                 return("IPSEC IKE process err cert req");
5060                 break;
5061         case ERROR_IPSEC_IKE_PROCESS_ERR_HASH:
5062                 return("IPSEC IKE process err hash");
5063                 break;
5064         case ERROR_IPSEC_IKE_PROCESS_ERR_SIG:
5065                 return("IPSEC IKE process err sig");
5066                 break;
5067         case ERROR_IPSEC_IKE_PROCESS_ERR_NONCE:
5068                 return("IPSEC IKE process err nonce");
5069                 break;
5070         case ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY:
5071                 return("IPSEC IKE process err notify");
5072                 break;
5073         case ERROR_IPSEC_IKE_PROCESS_ERR_DELETE:
5074                 return("IPSEC IKE process err delete");
5075                 break;
5076         case ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR:
5077                 return("IPSEC IKE process err vendor");
5078                 break;
5079         case ERROR_IPSEC_IKE_INVALID_PAYLOAD:
5080                 return("IPSEC IKE invalid payload");
5081                 break;
5082         case ERROR_IPSEC_IKE_LOAD_SOFT_SA:
5083                 return("IPSEC IKE load soft sa");
5084                 break;
5085         case ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN:
5086                 return("IPSEC IKE soft sa torn down");
5087                 break;
5088         case ERROR_IPSEC_IKE_INVALID_COOKIE:
5089                 return("IPSEC IKE invalid cookie");
5090                 break;
5091         case ERROR_IPSEC_IKE_NO_PEER_CERT:
5092                 return("IPSEC IKE no peer cert");
5093                 break;
5094         case ERROR_IPSEC_IKE_PEER_CRL_FAILED:
5095                 return("IPSEC IKE peer CRL failed");
5096                 break;
5097         case ERROR_IPSEC_IKE_POLICY_CHANGE:
5098                 return("IPSEC IKE policy change");
5099                 break;
5100         case ERROR_IPSEC_IKE_NO_MM_POLICY:
5101                 return("IPSEC IKE no mm policy");
5102                 break;
5103         case ERROR_IPSEC_IKE_NOTCBPRIV:
5104                 return("IPSEC IKE notcbpriv");
5105                 break;
5106         case ERROR_IPSEC_IKE_SECLOADFAIL:
5107                 return("IPSEC IKE secloadfail");
5108                 break;
5109         case ERROR_IPSEC_IKE_FAILSSPINIT:
5110                 return("IPSEC IKE failsspinit");
5111                 break;
5112         case ERROR_IPSEC_IKE_FAILQUERYSSP:
5113                 return("IPSEC IKE failqueryssp");
5114                 break;
5115         case ERROR_IPSEC_IKE_SRVACQFAIL:
5116                 return("IPSEC IKE srvacqfail");
5117                 break;
5118         case ERROR_IPSEC_IKE_SRVQUERYCRED:
5119                 return("IPSEC IKE srvquerycred");
5120                 break;
5121         case ERROR_IPSEC_IKE_GETSPIFAIL:
5122                 return("IPSEC IKE getspifail");
5123                 break;
5124         case ERROR_IPSEC_IKE_INVALID_FILTER:
5125                 return("IPSEC IKE invalid filter");
5126                 break;
5127         case ERROR_IPSEC_IKE_OUT_OF_MEMORY:
5128                 return("IPSEC IKE out of memory");
5129                 break;
5130         case ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED:
5131                 return("IPSEC IKE add update key failed");
5132                 break;
5133         case ERROR_IPSEC_IKE_INVALID_POLICY:
5134                 return("IPSEC IKE invalid policy");
5135                 break;
5136         case ERROR_IPSEC_IKE_UNKNOWN_DOI:
5137                 return("IPSEC IKE unknown doi");
5138                 break;
5139         case ERROR_IPSEC_IKE_INVALID_SITUATION:
5140                 return("IPSEC IKE invalid situation");
5141                 break;
5142         case ERROR_IPSEC_IKE_DH_FAILURE:
5143                 return("IPSEC IKE dh failure");
5144                 break;
5145         case ERROR_IPSEC_IKE_INVALID_GROUP:
5146                 return("IPSEC IKE invalid group");
5147                 break;
5148         case ERROR_IPSEC_IKE_ENCRYPT:
5149                 return("IPSEC IKE encrypt");
5150                 break;
5151         case ERROR_IPSEC_IKE_DECRYPT:
5152                 return("IPSEC IKE decrypt");
5153                 break;
5154         case ERROR_IPSEC_IKE_POLICY_MATCH:
5155                 return("IPSEC IKE policy match");
5156                 break;
5157         case ERROR_IPSEC_IKE_UNSUPPORTED_ID:
5158                 return("IPSEC IKE unsupported ID");
5159                 break;
5160         case ERROR_IPSEC_IKE_INVALID_HASH:
5161                 return("IPSEC IKE invalid hash");
5162                 break;
5163         case ERROR_IPSEC_IKE_INVALID_HASH_ALG:
5164                 return("IPSEC IKE invalid hash alg");
5165                 break;
5166         case ERROR_IPSEC_IKE_INVALID_HASH_SIZE:
5167                 return("IPSEC IKE invalid hash size");
5168                 break;
5169         case ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG:
5170                 return("IPSEC IKE invalid encrypt alg");
5171                 break;
5172         case ERROR_IPSEC_IKE_INVALID_AUTH_ALG:
5173                 return("IPSEC IKE invalid auth alg");
5174                 break;
5175         case ERROR_IPSEC_IKE_INVALID_SIG:
5176                 return("IPSEC IKE invalid sig");
5177                 break;
5178         case ERROR_IPSEC_IKE_LOAD_FAILED:
5179                 return("IPSEC IKE load failed");
5180                 break;
5181         case ERROR_IPSEC_IKE_RPC_DELETE:
5182                 return("IPSEC IKE rpc delete");
5183                 break;
5184         case ERROR_IPSEC_IKE_BENIGN_REINIT:
5185                 return("IPSEC IKE benign reinit");
5186                 break;
5187         case ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY:
5188                 return("IPSEC IKE invalid responder lifetime notify");
5189                 break;
5190         case ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN:
5191                 return("IPSEC IKE invalid cert keylen");
5192                 break;
5193         case ERROR_IPSEC_IKE_MM_LIMIT:
5194                 return("IPSEC IKE mm limit");
5195                 break;
5196         case ERROR_IPSEC_IKE_NEGOTIATION_DISABLED:
5197                 return("IPSEC IKE negotiation disabled");
5198                 break;
5199         case ERROR_IPSEC_IKE_NEG_STATUS_END:
5200                 return("IPSEC IKE neg status end");
5201                 break;
5202         case ERROR_SXS_SECTION_NOT_FOUND:
5203                 return("Sxs section not found");
5204                 break;
5205         case ERROR_SXS_CANT_GEN_ACTCTX:
5206                 return("Sxs can't gen actctx");
5207                 break;
5208         case ERROR_SXS_INVALID_ACTCTXDATA_FORMAT:
5209                 return("Sxs invalid actctxdata format");
5210                 break;
5211         case ERROR_SXS_ASSEMBLY_NOT_FOUND:
5212                 return("Sxs assembly not found");
5213                 break;
5214         case ERROR_SXS_MANIFEST_FORMAT_ERROR:
5215                 return("Sxs manifest format error");
5216                 break;
5217         case ERROR_SXS_MANIFEST_PARSE_ERROR:
5218                 return("Sxs manifest parse error");
5219                 break;
5220         case ERROR_SXS_ACTIVATION_CONTEXT_DISABLED:
5221                 return("Sxs activation context disabled");
5222                 break;
5223         case ERROR_SXS_KEY_NOT_FOUND:
5224                 return("Sxs key not found");
5225                 break;
5226         case ERROR_SXS_VERSION_CONFLICT:
5227                 return("Sxs version conflict");
5228                 break;
5229         case ERROR_SXS_WRONG_SECTION_TYPE:
5230                 return("Sxs wrong section type");
5231                 break;
5232         case ERROR_SXS_THREAD_QUERIES_DISABLED:
5233                 return("Sxs thread queries disabled");
5234                 break;
5235         case ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET:
5236                 return("Sxs process default already set");
5237                 break;
5238         case ERROR_SXS_UNKNOWN_ENCODING_GROUP:
5239                 return("Sxs unknown encoding group");
5240                 break;
5241         case ERROR_SXS_UNKNOWN_ENCODING:
5242                 return("Sxs unknown encoding");
5243                 break;
5244         case ERROR_SXS_INVALID_XML_NAMESPACE_URI:
5245                 return("Sxs invalid XML namespace URI");
5246                 break;
5247         case ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED:
5248                 return("Sxs root manifest dependency not installed");
5249                 break;
5250         case ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED:
5251                 return("Sxs leaf manifest dependency not installed");
5252                 break;
5253         case ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE:
5254                 return("Sxs invalid assembly indentity attribute");
5255                 break;
5256         case ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE:
5257                 return("Sxs manifest missing required default namespace");
5258                 break;
5259         case ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE:
5260                 return("Sxs manifest invalid required default namespace");
5261                 break;
5262         case ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT:
5263                 return("Sxs private manifest cross path with reparse point");
5264                 break;
5265         case ERROR_SXS_DUPLICATE_DLL_NAME:
5266                 return("Sxs duplicate dll name");
5267                 break;
5268         case ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME:
5269                 return("Sxs duplicate windowclass name");
5270                 break;
5271         case ERROR_SXS_DUPLICATE_CLSID:
5272                 return("Sxs duplicate clsid");
5273                 break;
5274         case ERROR_SXS_DUPLICATE_IID:
5275                 return("Sxs duplicate iid");
5276                 break;
5277         case ERROR_SXS_DUPLICATE_TLBID:
5278                 return("Sxs duplicate tlbid");
5279                 break;
5280         case ERROR_SXS_DUPLICATE_PROGID:
5281                 return("Sxs duplicate progid");
5282                 break;
5283         case ERROR_SXS_DUPLICATE_ASSEMBLY_NAME:
5284                 return("Sxs duplicate assembly name");
5285                 break;
5286         case ERROR_SXS_FILE_HASH_MISMATCH:
5287                 return("Sxs file hash mismatch");
5288                 break;
5289         case ERROR_SXS_POLICY_PARSE_ERROR:
5290                 return("Sxs policy parse error");
5291                 break;
5292         case ERROR_SXS_XML_E_MISSINGQUOTE:
5293                 return("Sxs XML e missingquote");
5294                 break;
5295         case ERROR_SXS_XML_E_COMMENTSYNTAX:
5296                 return("Sxs XML e commentsyntax");
5297                 break;
5298         case ERROR_SXS_XML_E_BADSTARTNAMECHAR:
5299                 return("Sxs XML e badstartnamechar");
5300                 break;
5301         case ERROR_SXS_XML_E_BADNAMECHAR:
5302                 return("Sxs XML e badnamechar");
5303                 break;
5304         case ERROR_SXS_XML_E_BADCHARINSTRING:
5305                 return("Sxs XML e badcharinstring");
5306                 break;
5307         case ERROR_SXS_XML_E_XMLDECLSYNTAX:
5308                 return("Sxs XML e xmldeclsyntax");
5309                 break;
5310         case ERROR_SXS_XML_E_BADCHARDATA:
5311                 return("Sxs XML e badchardata");
5312                 break;
5313         case ERROR_SXS_XML_E_MISSINGWHITESPACE:
5314                 return("Sxs XML e missingwhitespace");
5315                 break;
5316         case ERROR_SXS_XML_E_EXPECTINGTAGEND:
5317                 return("Sxs XML e expectingtagend");
5318                 break;
5319         case ERROR_SXS_XML_E_MISSINGSEMICOLON:
5320                 return("Sxs XML e missingsemicolon");
5321                 break;
5322         case ERROR_SXS_XML_E_UNBALANCEDPAREN:
5323                 return("Sxs XML e unbalancedparen");
5324                 break;
5325         case ERROR_SXS_XML_E_INTERNALERROR:
5326                 return("Sxs XML e internalerror");
5327                 break;
5328         case ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE:
5329                 return("Sxs XML e unexpected whitespace");
5330                 break;
5331         case ERROR_SXS_XML_E_INCOMPLETE_ENCODING:
5332                 return("Sxs XML e incomplete encoding");
5333                 break;
5334         case ERROR_SXS_XML_E_MISSING_PAREN:
5335                 return("Sxs XML e missing paren");
5336                 break;
5337         case ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE:
5338                 return("Sxs XML e expectingclosequote");
5339                 break;
5340         case ERROR_SXS_XML_E_MULTIPLE_COLONS:
5341                 return("Sxs XML e multiple colons");
5342                 break;
5343         case ERROR_SXS_XML_E_INVALID_DECIMAL:
5344                 return("Sxs XML e invalid decimal");
5345                 break;
5346         case ERROR_SXS_XML_E_INVALID_HEXIDECIMAL:
5347                 return("Sxs XML e invalid hexidecimal");
5348                 break;
5349         case ERROR_SXS_XML_E_INVALID_UNICODE:
5350                 return("Sxs XML e invalid unicode");
5351                 break;
5352         case ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK:
5353                 return("Sxs XML e whitespaceorquestionmark");
5354                 break;
5355         case ERROR_SXS_XML_E_UNEXPECTEDENDTAG:
5356                 return("Sxs XML e unexpectedendtag");
5357                 break;
5358         case ERROR_SXS_XML_E_UNCLOSEDTAG:
5359                 return("Sxs XML e unclosedtag");
5360                 break;
5361         case ERROR_SXS_XML_E_DUPLICATEATTRIBUTE:
5362                 return("Sxs XML e duplicateattribute");
5363                 break;
5364         case ERROR_SXS_XML_E_MULTIPLEROOTS:
5365                 return("Sxs XML e multipleroots");
5366                 break;
5367         case ERROR_SXS_XML_E_INVALIDATROOTLEVEL:
5368                 return("Sxs XML e invalidatrootlevel");
5369                 break;
5370         case ERROR_SXS_XML_E_BADXMLDECL:
5371                 return("Sxs XML e badxmldecl");
5372                 break;
5373         case ERROR_SXS_XML_E_MISSINGROOT:
5374                 return("Sxs XML e missingroot");
5375                 break;
5376         case ERROR_SXS_XML_E_UNEXPECTEDEOF:
5377                 return("Sxs XML e unexpectedeof");
5378                 break;
5379         case ERROR_SXS_XML_E_BADPEREFINSUBSET:
5380                 return("Sxs XML e badperefinsubset");
5381                 break;
5382         case ERROR_SXS_XML_E_UNCLOSEDSTARTTAG:
5383                 return("Sxs XML e unclosedstarttag");
5384                 break;
5385         case ERROR_SXS_XML_E_UNCLOSEDENDTAG:
5386                 return("Sxs XML e unclosedendtag");
5387                 break;
5388         case ERROR_SXS_XML_E_UNCLOSEDSTRING:
5389                 return("Sxs XML e unclosedstring");
5390                 break;
5391         case ERROR_SXS_XML_E_UNCLOSEDCOMMENT:
5392                 return("Sxs XML e unclosedcomment");
5393                 break;
5394         case ERROR_SXS_XML_E_UNCLOSEDDECL:
5395                 return("Sxs XML e uncloseddecl");
5396                 break;
5397         case ERROR_SXS_XML_E_UNCLOSEDCDATA:
5398                 return("Sxs XML e unclosedcdata");
5399                 break;
5400         case ERROR_SXS_XML_E_RESERVEDNAMESPACE:
5401                 return("Sxs XML e reservednamespace");
5402                 break;
5403         case ERROR_SXS_XML_E_INVALIDENCODING:
5404                 return("Sxs XML e invalidencoding");
5405                 break;
5406         case ERROR_SXS_XML_E_INVALIDSWITCH:
5407                 return("Sxs XML e invalidswitch");
5408                 break;
5409         case ERROR_SXS_XML_E_BADXMLCASE:
5410                 return("Sxs XML e badxmlcase");
5411                 break;
5412         case ERROR_SXS_XML_E_INVALID_STANDALONE:
5413                 return("Sxs XML e invalid standalone");
5414                 break;
5415         case ERROR_SXS_XML_E_UNEXPECTED_STANDALONE:
5416                 return("Sxs XML e unexpected standalone");
5417                 break;
5418         case ERROR_SXS_XML_E_INVALID_VERSION:
5419                 return("Sxs XML e invalid version");
5420                 break;
5421         case ERROR_SXS_XML_E_MISSINGEQUALS:
5422                 return("Sxs XML e missingequals");
5423                 break;
5424         case ERROR_SXS_PROTECTION_RECOVERY_FAILED:
5425                 return("Sxs protection recovery failed");
5426                 break;
5427         case ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT:
5428                 return("Sxs protection public key too short");
5429                 break;
5430         case ERROR_SXS_PROTECTION_CATALOG_NOT_VALID:
5431                 return("Sxs protection catalog not valid");
5432                 break;
5433         case ERROR_SXS_UNTRANSLATABLE_HRESULT:
5434                 return("Sxs untranslatable hresult");
5435                 break;
5436         case ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING:
5437                 return("Sxs protection catalog file missing");
5438                 break;
5439         case ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE:
5440                 return("Sxs missing assembly identity attribute");
5441                 break;
5442         case ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME:
5443                 return("Sxs invalid assembly identity attribute name");
5444                 break;
5445         default:
5446                 return("Unknown error");
5447         }
5448 }
5449