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