1/*
2    Title:      Error Messages.
3    Copyright (c) 2012, 2017, 2019 David C. J. Matthews
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License version 2.1 as published by the Free Software Foundation.
8
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with this library; if not, write to the Free Software
16    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18*/
19
20#ifdef HAVE_CONFIG_H
21#include "config.h"
22#elif defined(_WIN32)
23#include "winconfig.h"
24#else
25#error "No configuration file"
26#endif
27
28#if (defined(_WIN32))
29#include <winsock2.h>
30#endif
31
32#ifdef HAVE_WINDOWS_H
33#include <windows.h>
34#endif
35
36#ifdef HAVE_ERRNO_H
37#include <errno.h>
38#endif
39
40#ifdef HAVE_STRING_H
41#include <string.h>
42#endif
43
44#include "errors.h"
45
46static struct {
47    int           errorNum;
48    const char*   errorString;
49} errortable[] =
50{
51#if (!defined(_WIN32))
52#ifdef EPERM
53    { EPERM,    "EPERM" },
54#endif
55#ifdef ENOENT
56    { ENOENT,   "ENOENT" },
57#endif
58#ifdef ESRCH
59    { ESRCH,    "ESRCH" },
60#endif
61#ifdef EINTR
62    { EINTR, "EINTR"},
63#endif
64#ifdef EIO
65    { EIO, "EIO"},
66#endif
67#ifdef ENXIO
68    { ENXIO, "ENXIO"},
69#endif
70#ifdef E2BIG
71    { E2BIG, "E2BIG"},
72#endif
73#ifdef ENOEXEC
74    { ENOEXEC, "ENOEXEC"},
75#endif
76#ifdef EBADF
77    { EBADF, "EBADF"},
78#endif
79#ifdef ECHILD
80    { ECHILD, "ECHILD"},
81#endif
82#ifdef EAGAIN
83    { EAGAIN, "EAGAIN"},
84#endif
85#ifdef EDEADLK
86    { EDEADLK, "EDEADLK"},
87#endif
88#ifdef ENOMEM
89    { ENOMEM, "ENOMEM"},
90#endif
91#ifdef EACCES
92    { EACCES, "EACCES"},
93#endif
94#ifdef EFAULT
95    { EFAULT, "EFAULT"},
96#endif
97#ifdef ENOTBLK
98    { ENOTBLK, "ENOTBLK"},
99#endif
100#ifdef EBUSY
101    { EBUSY, "EBUSY"},
102#endif
103#ifdef EEXIST
104    { EEXIST, "EEXIST"},
105#endif
106#ifdef EXDEV
107    { EXDEV, "EXDEV"},
108#endif
109#ifdef ENODEV
110    { ENODEV, "ENODEV"},
111#endif
112#ifdef ENOTDIR
113    { ENOTDIR, "ENOTDIR"},
114#endif
115#ifdef EISDIR
116    { EISDIR, "EISDIR"},
117#endif
118#ifdef EINVAL
119    { EINVAL, "EINVAL"},
120#endif
121#ifdef ENFILE
122    { ENFILE, "ENFILE"},
123#endif
124#ifdef EMFILE
125    { EMFILE, "EMFILE"},
126#endif
127#ifdef ENOTTY
128    { ENOTTY, "ENOTTY"},
129#endif
130#ifdef ETXTBSY
131    { ETXTBSY, "ETXTBSY"},
132#endif
133#ifdef EFBIG
134    { EFBIG, "EFBIG"},
135#endif
136#ifdef ENOSPC
137    { ENOSPC, "ENOSPC"},
138#endif
139#ifdef ESPIPE
140    { ESPIPE, "ESPIPE"},
141#endif
142#ifdef EROFS
143    { EROFS, "EROFS"},
144#endif
145#ifdef EMLINK
146    { EMLINK, "EMLINK"},
147#endif
148#ifdef EPIPE
149    { EPIPE, "EPIPE"},
150#endif
151#ifdef EDOM
152    { EDOM, "EDOM"},
153#endif
154#ifdef ERANGE
155    { ERANGE, "ERANGE"},
156#endif
157#ifdef ENOMSG
158    { ENOMSG, "ENOMSG"},
159#endif
160#ifdef EUCLEAN
161    { EUCLEAN, "EUCLEAN"},
162#endif
163#ifdef EWOULDBLOCK
164    { EWOULDBLOCK, "EWOULDBLOCK"},
165#endif
166#ifdef EIDRM
167    { EIDRM, "EIDRM"},
168#endif
169#ifdef EINPROGRESS
170    { EINPROGRESS, "EINPROGRESS"},
171#endif
172#ifdef ECHRNG
173    { ECHRNG, "ECHRNG"},
174#endif
175#ifdef EALREADY
176    { EALREADY, "EALREADY"},
177#endif
178#ifdef EL2NSYNC
179    { EL2NSYNC, "EL2NSYNC"},
180#endif
181#ifdef ENAMETOOLONG
182    { ENAMETOOLONG, "ENAMETOOLONG"},
183#endif
184#ifdef ENOTSOCK
185    { ENOTSOCK, "ENOTSOCK"},
186#endif
187#ifdef EL3HLT
188    { EL3HLT, "EL3HLT"},
189#endif
190#ifdef ENOLCK
191    { ENOLCK, "ENOLCK"},
192#endif
193#ifdef EDESTADDRREQ
194    { EDESTADDRREQ, "EDESTADDRREQ"},
195#endif
196#ifdef EL3RST
197    { EL3RST, "EL3RST"},
198#endif
199#ifdef ENOSYS
200    { ENOSYS, "ENOSYS"},
201#endif
202#ifdef EMSGSIZE
203    { EMSGSIZE, "EMSGSIZE"},
204#endif
205#ifdef ELNRNG
206    { ELNRNG, "ELNRNG"},
207#endif
208#ifdef ENOTEMPTY
209    { ENOTEMPTY, "ENOTEMPTY"},
210#endif
211#ifdef EPROTOTYPE
212    { EPROTOTYPE, "EPROTOTYPE"},
213#endif
214#ifdef EUNATCH
215    { EUNATCH, "EUNATCH"},
216#endif
217#ifdef EILSEQ
218    { EILSEQ, "EILSEQ"},
219#endif
220#ifdef ENOPROTOOPT
221    { ENOPROTOOPT, "ENOPROTOOPT"},
222#endif
223#ifdef ENOCSI
224    { ENOCSI, "ENOCSI"},
225#endif
226#ifdef EPROTONOSUPPORT
227    { EPROTONOSUPPORT, "EPROTONOSUPPORT"},
228#endif
229#ifdef EL2HLT
230    { EL2HLT, "EL2HLT"},
231#endif
232#ifdef ESOCKTNOSUPPORT
233    { ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT"},
234#endif
235#ifdef EOPNOTSUPP
236    { EOPNOTSUPP, "EOPNOTSUPP"},
237#endif
238#ifdef ENOTREADY
239    { ENOTREADY, "ENOTREADY"},
240#endif
241#ifdef EPFNOSUPPORT
242    { EPFNOSUPPORT, "EPFNOSUPPORT"},
243#endif
244#ifdef EWRPROTECT
245    { EWRPROTECT, "EWRPROTECT"},
246#endif
247#ifdef EAFNOSUPPORT
248    { EAFNOSUPPORT, "EAFNOSUPPORT"},
249#endif
250#ifdef EFORMAT
251    { EFORMAT, "EFORMAT"},
252#endif
253#ifdef EADDRINUSE
254    { EADDRINUSE, "EADDRINUSE"},
255#endif
256#ifdef EADDRNOTAVAIL
257    { EADDRNOTAVAIL, "EADDRNOTAVAIL"},
258#endif
259#ifdef ENOCONNECT
260    { ENOCONNECT, "ENOCONNECT"},
261#endif
262#ifdef ENETDOWN
263    { ENETDOWN, "ENETDOWN"},
264#endif
265#ifdef ESTALE
266    { ESTALE, "ESTALE"},
267#endif
268#ifdef ENETUNREACH
269    { ENETUNREACH, "ENETUNREACH"},
270#endif
271#ifdef EDIST
272    { EDIST, "EDIST"},
273#endif
274#ifdef ENETRESET
275    { ENETRESET, "ENETRESET"},
276#endif
277#ifdef ECONNABORTED
278    { ECONNABORTED, "ECONNABORTED"},
279#endif
280#ifdef ECONNRESET
281    { ECONNRESET, "ECONNRESET"},
282#endif
283#ifdef ENOBUFS
284    { ENOBUFS, "ENOBUFS"},
285#endif
286#ifdef EISCONN
287    { EISCONN, "EISCONN"},
288#endif
289#ifdef ENOTCONN
290    { ENOTCONN, "ENOTCONN"},
291#endif
292#ifdef ESHUTDOWN
293    { ESHUTDOWN, "ESHUTDOWN"},
294#endif
295#ifdef ETOOMANYREFS
296    { ETOOMANYREFS, "ETOOMANYREFS"},
297#endif
298#ifdef ETIMEDOUT
299    { ETIMEDOUT, "ETIMEDOUT"},
300#endif
301#ifdef ECONNREFUSED
302    { ECONNREFUSED, "ECONNREFUSED"},
303#endif
304#ifdef ELOOP
305    { ELOOP, "ELOOP"},
306#endif
307#ifdef EHOSTDOWN
308    { EHOSTDOWN, "EHOSTDOWN"},
309#endif
310#ifdef EHOSTUNREACH
311    { EHOSTUNREACH, "EHOSTUNREACH"},
312#endif
313#ifdef EPROCLIM
314    { EPROCLIM, "EPROCLIM"},
315#endif
316#ifdef EUSERS
317    { EUSERS, "EUSERS"},
318#endif
319#ifdef EDQUOT
320    { EDQUOT, "EDQUOT"},
321#endif
322#ifdef EREMOTE
323    { EREMOTE, "EREMOTE"},
324#endif
325#ifdef ENOSTR
326    { ENOSTR, "ENOSTR"},
327#endif
328#ifdef EBADRPC
329    { EBADRPC, "EBADRPC"},
330#endif
331#ifdef ETIME
332    { ETIME, "ETIME"},
333#endif
334#ifdef ERPCMISMATCH
335    { ERPCMISMATCH, "ERPCMISMATCH"},
336#endif
337#ifdef ENOSR
338    { ENOSR, "ENOSR"},
339#endif
340#ifdef EPROGUNAVAIL
341    { EPROGUNAVAIL, "EPROGUNAVAIL"},
342#endif
343#ifdef EPROGMISMATCH
344    { EPROGMISMATCH, "EPROGMISMATCH"},
345#endif
346#ifdef EBADMSG
347    { EBADMSG, "EBADMSG"},
348#endif
349#ifdef EPROCUNAVAIL
350    { EPROCUNAVAIL, "EPROCUNAVAIL"},
351#endif
352#ifdef EFTYPE
353    { EFTYPE, "EFTYPE"},
354#endif
355#ifdef ENONET
356    { ENONET, "ENONET"},
357#endif
358#ifdef EAUTH
359    { EAUTH, "EAUTH"},
360#endif
361#ifdef ERESTART
362    { ERESTART, "ERESTART"},
363#endif
364#ifdef ERREMOTE
365    { ERREMOTE, "ERREMOTE"},
366#endif
367#ifdef ENEEDAUTH
368    { ENEEDAUTH, "ENEEDAUTH"},
369#endif
370#ifdef ENOLINK
371    { ENOLINK, "ENOLINK"},
372#endif
373#ifdef EADV
374    { EADV, "EADV"},
375#endif
376#ifdef ESRMNT
377    { ESRMNT, "ESRMNT"},
378#endif
379#ifdef ECOMM
380    { ECOMM, "ECOMM"},
381#endif
382#ifdef EPROTO
383    { EPROTO, "EPROTO"},
384#endif
385#ifdef EMULTIHOP
386    { EMULTIHOP, "EMULTIHOP"},
387#endif
388#ifdef EDOTDOT
389    { EDOTDOT, "EDOTDOT"},
390#endif
391#ifdef EREMCHG
392    { EREMCHG, "EREMCHG"},
393#endif
394#ifdef EMEDIA
395    { EMEDIA, "EMEDIA"},
396#endif
397#ifdef ESOFT
398    { ESOFT, "ESOFT"},
399#endif
400#ifdef ENOATTR
401    { ENOATTR, "ENOATTR"},
402#endif
403#ifdef ESAD
404    { ESAD, "ESAD"},
405#endif
406#ifdef ENOTRUST
407    { ENOTRUST, "ENOTRUST"},
408#endif
409#ifdef ECANCELED
410    { ECANCELED, "ECANCELED"},
411#endif
412#ifdef ENODATA
413    { ENODATA, "ENODATA"},
414#endif
415#ifdef EBADE
416    { EBADE, "EBADE"},
417#endif
418#ifdef EBADR
419    { EBADR, "EBADR"},
420#endif
421#ifdef EXFULL
422    { EXFULL, "EXFULL"},
423#endif
424#ifdef ENOANO
425    { ENOANO, "ENOANO"},
426#endif
427#ifdef EBADRQC
428    { EBADRQC, "EBADRQC"},
429#endif
430#ifdef EBADSLT
431    { EBADSLT, "EBADSLT"},
432#endif
433#ifdef EDEADLOCK
434    { EDEADLOCK, "EDEADLOCK"},
435#endif
436#ifdef EBFONT
437    { EBFONT, "EBFONT"},
438#endif
439#ifdef EBFONT
440    { EBFONT, "EBFONT"},
441#endif
442#ifdef ENOPKG
443    { ENOPKG, "ENOPKG"},
444#endif
445#ifdef ELBIN
446    { ELBIN, "ELBIN"},
447#endif
448#ifdef ENOTUNIQ
449    { ENOTUNIQ, "ENOTUNIQ"},
450#endif
451#ifdef EBADFD
452    { EBADFD, "EBADFD"},
453#endif
454#ifdef ELIBACC
455    { ELIBACC, "ELIBACC"},
456#endif
457#ifdef ELIBBAD
458    { ELIBBAD, "ELIBBAD"},
459#endif
460#ifdef ELIBSCN
461    { ELIBSCN, "ELIBSCN"},
462#endif
463#ifdef ELIBMAX
464    { ELIBMAX, "ELIBMAX"},
465#endif
466#ifdef ESTRPIPE
467    { ESTRPIPE, "ESTRPIPE"},
468#endif
469#ifdef ELIBEXEC
470    { ELIBEXEC, "ELIBEXEC"},
471#endif
472#ifdef ENMFILE
473    { ENMFILE, "ENMFILE"},
474#endif
475#ifdef ENOTNAM
476    { ENOTNAM, "ENOTNAM"},
477#endif
478#ifdef ENAVAIL
479    { ENAVAIL, "ENAVAIL"},
480#endif
481#ifdef EISNAM
482    { EISNAM, "EISNAM"},
483#endif
484#ifdef EREMOTEIO
485    { EREMOTEIO, "EREMOTEIO"},
486#endif
487#ifdef ENOMEDIUM
488    { ENOMEDIUM, "ENOMEDIUM"},
489#endif
490#ifdef EMEDIUMTYPE
491    { EMEDIUMTYPE, "EMEDIUMTYPE"},
492#endif
493#ifdef ENOKEY
494    { ENOKEY, "ENOKEY"},
495#endif
496#ifdef EKEYEXPIRED
497    { EKEYEXPIRED, "EKEYEXPIRED"},
498#endif
499#ifdef EKEYREVOKED
500    { EKEYREVOKED, "EKEYREVOKED"},
501#endif
502#ifdef EKEYREJECTED
503    { EKEYREJECTED, "EKEYREJECTED"},
504#endif
505#ifdef EOWNERDEAD
506    { EOWNERDEAD, "EOWNERDEAD"},
507#endif
508#ifdef ENOTRECOVERABLE
509    { ENOTRECOVERABLE, "ENOTRECOVERABLE"},
510#endif
511#ifdef ENOTSUP
512    { ENOTSUP, "ENOTSUP"},
513#endif
514#ifdef ENOMEDIUM
515    { ENOMEDIUM, "ENOMEDIUM"},
516#endif
517#ifdef ENOSHARE
518    { ENOSHARE, "ENOSHARE"},
519#endif
520#ifdef ECASECLASH
521    { ECASECLASH, "ECASECLASH"},
522#endif
523#ifdef EOVERFLOW
524    { EOVERFLOW, "EOVERFLOW"},
525#endif
526
527#else
528    { ERROR_INVALID_FUNCTION,  "ERROR_INVALID_FUNCTION" },
529    { ERROR_FILE_NOT_FOUND,    "ERROR_FILE_NOT_FOUND" },
530    { ERROR_PATH_NOT_FOUND,    "ERROR_PATH_NOT_FOUND" },
531    { ERROR_TOO_MANY_OPEN_FILES,   "ERROR_TOO_MANY_OPEN_FILES" },
532    { ERROR_ACCESS_DENIED, "ERROR_ACCESS_DENIED" },
533    { ERROR_INVALID_HANDLE,    "ERROR_INVALID_HANDLE" },
534    { ERROR_ARENA_TRASHED, "ERROR_ARENA_TRASHED" },
535    { ERROR_NOT_ENOUGH_MEMORY, "ERROR_NOT_ENOUGH_MEMORY" },
536    { ERROR_INVALID_BLOCK, "ERROR_INVALID_BLOCK" },
537    { ERROR_BAD_ENVIRONMENT,   "ERROR_BAD_ENVIRONMENT" },
538    { ERROR_BAD_FORMAT,    "ERROR_BAD_FORMAT" },
539    { ERROR_INVALID_ACCESS,    "ERROR_INVALID_ACCESS" },
540    { ERROR_INVALID_DATA,  "ERROR_INVALID_DATA" },
541    { ERROR_OUTOFMEMORY,   "ERROR_OUTOFMEMORY" },
542    { ERROR_INVALID_DRIVE, "ERROR_INVALID_DRIVE" },
543    { ERROR_CURRENT_DIRECTORY, "ERROR_CURRENT_DIRECTORY" },
544    { ERROR_NOT_SAME_DEVICE,   "ERROR_NOT_SAME_DEVICE" },
545    { ERROR_NO_MORE_FILES, "ERROR_NO_MORE_FILES" },
546    { ERROR_WRITE_PROTECT, "ERROR_WRITE_PROTECT" },
547    { ERROR_BAD_UNIT,  "ERROR_BAD_UNIT" },
548    { ERROR_NOT_READY, "ERROR_NOT_READY" },
549    { ERROR_BAD_COMMAND,   "ERROR_BAD_COMMAND" },
550    { ERROR_CRC,   "ERROR_CRC" },
551    { ERROR_BAD_LENGTH,    "ERROR_BAD_LENGTH" },
552    { ERROR_SEEK,  "ERROR_SEEK" },
553    { ERROR_NOT_DOS_DISK,  "ERROR_NOT_DOS_DISK" },
554    { ERROR_SECTOR_NOT_FOUND,  "ERROR_SECTOR_NOT_FOUND" },
555    { ERROR_OUT_OF_PAPER,  "ERROR_OUT_OF_PAPER" },
556    { ERROR_WRITE_FAULT,   "ERROR_WRITE_FAULT" },
557    { ERROR_READ_FAULT,    "ERROR_READ_FAULT" },
558    { ERROR_GEN_FAILURE,   "ERROR_GEN_FAILURE" },
559    { ERROR_SHARING_VIOLATION, "ERROR_SHARING_VIOLATION" },
560    { ERROR_LOCK_VIOLATION,    "ERROR_LOCK_VIOLATION" },
561    { ERROR_WRONG_DISK,    "ERROR_WRONG_DISK" },
562    { ERROR_SHARING_BUFFER_EXCEEDED,   "ERROR_SHARING_BUFFER_EXCEEDED" },
563    { ERROR_HANDLE_EOF,    "ERROR_HANDLE_EOF" },
564    { ERROR_HANDLE_DISK_FULL,  "ERROR_HANDLE_DISK_FULL" },
565    { ERROR_NOT_SUPPORTED, "ERROR_NOT_SUPPORTED" },
566    { ERROR_REM_NOT_LIST,  "ERROR_REM_NOT_LIST" },
567    { ERROR_DUP_NAME,  "ERROR_DUP_NAME" },
568    { ERROR_BAD_NETPATH,   "ERROR_BAD_NETPATH" },
569    { ERROR_NETWORK_BUSY,  "ERROR_NETWORK_BUSY" },
570    { ERROR_DEV_NOT_EXIST, "ERROR_DEV_NOT_EXIST" },
571    { ERROR_TOO_MANY_CMDS, "ERROR_TOO_MANY_CMDS" },
572    { ERROR_ADAP_HDW_ERR,  "ERROR_ADAP_HDW_ERR" },
573    { ERROR_BAD_NET_RESP,  "ERROR_BAD_NET_RESP" },
574    { ERROR_UNEXP_NET_ERR, "ERROR_UNEXP_NET_ERR" },
575    { ERROR_BAD_REM_ADAP,  "ERROR_BAD_REM_ADAP" },
576    { ERROR_PRINTQ_FULL,   "ERROR_PRINTQ_FULL" },
577    { ERROR_NO_SPOOL_SPACE,    "ERROR_NO_SPOOL_SPACE" },
578    { ERROR_PRINT_CANCELLED,   "ERROR_PRINT_CANCELLED" },
579    { ERROR_NETNAME_DELETED,   "ERROR_NETNAME_DELETED" },
580    { ERROR_NETWORK_ACCESS_DENIED, "ERROR_NETWORK_ACCESS_DENIED" },
581    { ERROR_BAD_DEV_TYPE,  "ERROR_BAD_DEV_TYPE" },
582    { ERROR_BAD_NET_NAME,  "ERROR_BAD_NET_NAME" },
583    { ERROR_TOO_MANY_NAMES,    "ERROR_TOO_MANY_NAMES" },
584    { ERROR_TOO_MANY_SESS, "ERROR_TOO_MANY_SESS" },
585    { ERROR_SHARING_PAUSED,    "ERROR_SHARING_PAUSED" },
586    { ERROR_REQ_NOT_ACCEP, "ERROR_REQ_NOT_ACCEP" },
587    { ERROR_REDIR_PAUSED,  "ERROR_REDIR_PAUSED" },
588    { ERROR_FILE_EXISTS,   "ERROR_FILE_EXISTS" },
589    { ERROR_CANNOT_MAKE,   "ERROR_CANNOT_MAKE" },
590    { ERROR_FAIL_I24,  "ERROR_FAIL_I24" },
591    { ERROR_OUT_OF_STRUCTURES, "ERROR_OUT_OF_STRUCTURES" },
592    { ERROR_ALREADY_ASSIGNED,  "ERROR_ALREADY_ASSIGNED" },
593    { ERROR_INVALID_PASSWORD,  "ERROR_INVALID_PASSWORD" },
594    { ERROR_INVALID_PARAMETER, "ERROR_INVALID_PARAMETER" },
595    { ERROR_NET_WRITE_FAULT,   "ERROR_NET_WRITE_FAULT" },
596    { ERROR_NO_PROC_SLOTS, "ERROR_NO_PROC_SLOTS" },
597    { ERROR_TOO_MANY_SEMAPHORES,   "ERROR_TOO_MANY_SEMAPHORES" },
598    { ERROR_EXCL_SEM_ALREADY_OWNED,    "ERROR_EXCL_SEM_ALREADY_OWNED" },
599    { ERROR_SEM_IS_SET,    "ERROR_SEM_IS_SET" },
600    { ERROR_TOO_MANY_SEM_REQUESTS, "ERROR_TOO_MANY_SEM_REQUESTS" },
601    { ERROR_INVALID_AT_INTERRUPT_TIME, "ERROR_INVALID_AT_INTERRUPT_TIME" },
602    { ERROR_SEM_OWNER_DIED,    "ERROR_SEM_OWNER_DIED" },
603    { ERROR_SEM_USER_LIMIT,    "ERROR_SEM_USER_LIMIT" },
604    { ERROR_DISK_CHANGE,   "ERROR_DISK_CHANGE" },
605    { ERROR_DRIVE_LOCKED,  "ERROR_DRIVE_LOCKED" },
606    { ERROR_BROKEN_PIPE,   "ERROR_BROKEN_PIPE" },
607    { ERROR_OPEN_FAILED,   "ERROR_OPEN_FAILED" },
608    { ERROR_BUFFER_OVERFLOW,   "ERROR_BUFFER_OVERFLOW" },
609    { ERROR_DISK_FULL, "ERROR_DISK_FULL" },
610    { ERROR_NO_MORE_SEARCH_HANDLES,    "ERROR_NO_MORE_SEARCH_HANDLES" },
611    { ERROR_INVALID_TARGET_HANDLE, "ERROR_INVALID_TARGET_HANDLE" },
612    { ERROR_INVALID_CATEGORY,  "ERROR_INVALID_CATEGORY" },
613    { ERROR_INVALID_VERIFY_SWITCH, "ERROR_INVALID_VERIFY_SWITCH" },
614    { ERROR_BAD_DRIVER_LEVEL,  "ERROR_BAD_DRIVER_LEVEL" },
615    { ERROR_CALL_NOT_IMPLEMENTED,  "ERROR_CALL_NOT_IMPLEMENTED" },
616    { ERROR_SEM_TIMEOUT,   "ERROR_SEM_TIMEOUT" },
617    { ERROR_INSUFFICIENT_BUFFER,   "ERROR_INSUFFICIENT_BUFFER" },
618    { ERROR_INVALID_NAME,  "ERROR_INVALID_NAME" },
619    { ERROR_INVALID_LEVEL, "ERROR_INVALID_LEVEL" },
620    { ERROR_NO_VOLUME_LABEL,   "ERROR_NO_VOLUME_LABEL" },
621    { ERROR_MOD_NOT_FOUND, "ERROR_MOD_NOT_FOUND" },
622    { ERROR_PROC_NOT_FOUND,    "ERROR_PROC_NOT_FOUND" },
623    { ERROR_WAIT_NO_CHILDREN,  "ERROR_WAIT_NO_CHILDREN" },
624    { ERROR_CHILD_NOT_COMPLETE,    "ERROR_CHILD_NOT_COMPLETE" },
625    { ERROR_DIRECT_ACCESS_HANDLE,  "ERROR_DIRECT_ACCESS_HANDLE" },
626    { ERROR_NEGATIVE_SEEK, "ERROR_NEGATIVE_SEEK" },
627    { ERROR_SEEK_ON_DEVICE,    "ERROR_SEEK_ON_DEVICE" },
628    { ERROR_IS_JOIN_TARGET,    "ERROR_IS_JOIN_TARGET" },
629    { ERROR_IS_JOINED, "ERROR_IS_JOINED" },
630    { ERROR_IS_SUBSTED,    "ERROR_IS_SUBSTED" },
631    { ERROR_NOT_JOINED,    "ERROR_NOT_JOINED" },
632    { ERROR_NOT_SUBSTED,   "ERROR_NOT_SUBSTED" },
633    { ERROR_JOIN_TO_JOIN,  "ERROR_JOIN_TO_JOIN" },
634    { ERROR_SUBST_TO_SUBST,    "ERROR_SUBST_TO_SUBST" },
635    { ERROR_JOIN_TO_SUBST, "ERROR_JOIN_TO_SUBST" },
636    { ERROR_SUBST_TO_JOIN, "ERROR_SUBST_TO_JOIN" },
637    { ERROR_BUSY_DRIVE,    "ERROR_BUSY_DRIVE" },
638    { ERROR_SAME_DRIVE,    "ERROR_SAME_DRIVE" },
639    { ERROR_DIR_NOT_ROOT,  "ERROR_DIR_NOT_ROOT" },
640    { ERROR_DIR_NOT_EMPTY, "ERROR_DIR_NOT_EMPTY" },
641    { ERROR_IS_SUBST_PATH, "ERROR_IS_SUBST_PATH" },
642    { ERROR_IS_JOIN_PATH,  "ERROR_IS_JOIN_PATH" },
643    { ERROR_PATH_BUSY, "ERROR_PATH_BUSY" },
644    { ERROR_IS_SUBST_TARGET,   "ERROR_IS_SUBST_TARGET" },
645    { ERROR_SYSTEM_TRACE,  "ERROR_SYSTEM_TRACE" },
646    { ERROR_INVALID_EVENT_COUNT,   "ERROR_INVALID_EVENT_COUNT" },
647    { ERROR_TOO_MANY_MUXWAITERS,   "ERROR_TOO_MANY_MUXWAITERS" },
648    { ERROR_INVALID_LIST_FORMAT,   "ERROR_INVALID_LIST_FORMAT" },
649    { ERROR_LABEL_TOO_LONG,    "ERROR_LABEL_TOO_LONG" },
650    { ERROR_TOO_MANY_TCBS, "ERROR_TOO_MANY_TCBS" },
651    { ERROR_SIGNAL_REFUSED,    "ERROR_SIGNAL_REFUSED" },
652    { ERROR_DISCARDED, "ERROR_DISCARDED" },
653    { ERROR_NOT_LOCKED,    "ERROR_NOT_LOCKED" },
654    { ERROR_BAD_THREADID_ADDR, "ERROR_BAD_THREADID_ADDR" },
655    { ERROR_BAD_ARGUMENTS, "ERROR_BAD_ARGUMENTS" },
656    { ERROR_BAD_PATHNAME,  "ERROR_BAD_PATHNAME" },
657    { ERROR_SIGNAL_PENDING,    "ERROR_SIGNAL_PENDING" },
658    { ERROR_MAX_THRDS_REACHED, "ERROR_MAX_THRDS_REACHED" },
659    { ERROR_LOCK_FAILED,   "ERROR_LOCK_FAILED" },
660    { ERROR_BUSY,  "ERROR_BUSY" },
661    { ERROR_CANCEL_VIOLATION,  "ERROR_CANCEL_VIOLATION" },
662    { ERROR_ATOMIC_LOCKS_NOT_SUPPORTED,    "ERROR_ATOMIC_LOCKS_NOT_SUPPORTED" },
663    { ERROR_INVALID_SEGMENT_NUMBER,    "ERROR_INVALID_SEGMENT_NUMBER" },
664    { ERROR_INVALID_ORDINAL,   "ERROR_INVALID_ORDINAL" },
665    { ERROR_ALREADY_EXISTS,    "ERROR_ALREADY_EXISTS" },
666    { ERROR_INVALID_FLAG_NUMBER,   "ERROR_INVALID_FLAG_NUMBER" },
667    { ERROR_SEM_NOT_FOUND, "ERROR_SEM_NOT_FOUND" },
668    { ERROR_INVALID_STARTING_CODESEG,  "ERROR_INVALID_STARTING_CODESEG" },
669    { ERROR_INVALID_STACKSEG,  "ERROR_INVALID_STACKSEG" },
670    { ERROR_INVALID_MODULETYPE,    "ERROR_INVALID_MODULETYPE" },
671    { ERROR_INVALID_EXE_SIGNATURE, "ERROR_INVALID_EXE_SIGNATURE" },
672    { ERROR_EXE_MARKED_INVALID,    "ERROR_EXE_MARKED_INVALID" },
673    { ERROR_BAD_EXE_FORMAT,    "ERROR_BAD_EXE_FORMAT" },
674    { ERROR_ITERATED_DATA_EXCEEDS_64k, "ERROR_ITERATED_DATA_EXCEEDS_64k" },
675    { ERROR_INVALID_MINALLOCSIZE,  "ERROR_INVALID_MINALLOCSIZE" },
676    { ERROR_DYNLINK_FROM_INVALID_RING, "ERROR_DYNLINK_FROM_INVALID_RING" },
677    { ERROR_IOPL_NOT_ENABLED,  "ERROR_IOPL_NOT_ENABLED" },
678    { ERROR_INVALID_SEGDPL,    "ERROR_INVALID_SEGDPL" },
679    { ERROR_AUTODATASEG_EXCEEDS_64k,   "ERROR_AUTODATASEG_EXCEEDS_64k" },
680    { ERROR_RING2SEG_MUST_BE_MOVABLE,  "ERROR_RING2SEG_MUST_BE_MOVABLE" },
681    { ERROR_RELOC_CHAIN_XEEDS_SEGLIM,  "ERROR_RELOC_CHAIN_XEEDS_SEGLIM" },
682    { ERROR_INFLOOP_IN_RELOC_CHAIN,    "ERROR_INFLOOP_IN_RELOC_CHAIN" },
683    { ERROR_ENVVAR_NOT_FOUND,  "ERROR_ENVVAR_NOT_FOUND" },
684    { ERROR_NO_SIGNAL_SENT,    "ERROR_NO_SIGNAL_SENT" },
685    { ERROR_FILENAME_EXCED_RANGE,  "ERROR_FILENAME_EXCED_RANGE" },
686    { ERROR_RING2_STACK_IN_USE,    "ERROR_RING2_STACK_IN_USE" },
687    { ERROR_META_EXPANSION_TOO_LONG,   "ERROR_META_EXPANSION_TOO_LONG" },
688    { ERROR_INVALID_SIGNAL_NUMBER, "ERROR_INVALID_SIGNAL_NUMBER" },
689    { ERROR_THREAD_1_INACTIVE, "ERROR_THREAD_1_INACTIVE" },
690    { ERROR_LOCKED,    "ERROR_LOCKED" },
691    { ERROR_TOO_MANY_MODULES,  "ERROR_TOO_MANY_MODULES" },
692    { ERROR_NESTING_NOT_ALLOWED,   "ERROR_NESTING_NOT_ALLOWED" },
693#ifdef ERROR_EXE_MACHINE_TYPE_MISMATCH
694    { ERROR_EXE_MACHINE_TYPE_MISMATCH, "ERROR_EXE_MACHINE_TYPE_MISMATCH" },
695#endif
696    { ERROR_BAD_PIPE,  "ERROR_BAD_PIPE" },
697    { ERROR_PIPE_BUSY, "ERROR_PIPE_BUSY" },
698    { ERROR_NO_DATA,   "ERROR_NO_DATA" },
699    { ERROR_PIPE_NOT_CONNECTED,    "ERROR_PIPE_NOT_CONNECTED" },
700    { ERROR_MORE_DATA, "ERROR_MORE_DATA" },
701    { ERROR_VC_DISCONNECTED,   "ERROR_VC_DISCONNECTED" },
702    { ERROR_INVALID_EA_NAME,   "ERROR_INVALID_EA_NAME" },
703    { ERROR_EA_LIST_INCONSISTENT,  "ERROR_EA_LIST_INCONSISTENT" },
704    { ERROR_NO_MORE_ITEMS, "ERROR_NO_MORE_ITEMS" },
705    { ERROR_CANNOT_COPY,   "ERROR_CANNOT_COPY" },
706    { ERROR_DIRECTORY, "ERROR_DIRECTORY" },
707    { ERROR_EAS_DIDNT_FIT, "ERROR_EAS_DIDNT_FIT" },
708    { ERROR_EA_FILE_CORRUPT,   "ERROR_EA_FILE_CORRUPT" },
709    { ERROR_EA_TABLE_FULL, "ERROR_EA_TABLE_FULL" },
710    { ERROR_INVALID_EA_HANDLE, "ERROR_INVALID_EA_HANDLE" },
711    { ERROR_EAS_NOT_SUPPORTED, "ERROR_EAS_NOT_SUPPORTED" },
712    { ERROR_NOT_OWNER, "ERROR_NOT_OWNER" },
713    { ERROR_TOO_MANY_POSTS,    "ERROR_TOO_MANY_POSTS" },
714    { ERROR_PARTIAL_COPY,  "ERROR_PARTIAL_COPY" },
715    { ERROR_MR_MID_NOT_FOUND,  "ERROR_MR_MID_NOT_FOUND" },
716    { ERROR_INVALID_ADDRESS,   "ERROR_INVALID_ADDRESS" },
717    { ERROR_ARITHMETIC_OVERFLOW,   "ERROR_ARITHMETIC_OVERFLOW" },
718    { ERROR_PIPE_CONNECTED,    "ERROR_PIPE_CONNECTED" },
719    { ERROR_PIPE_LISTENING,    "ERROR_PIPE_LISTENING" },
720    { ERROR_EA_ACCESS_DENIED,  "ERROR_EA_ACCESS_DENIED" },
721    { ERROR_OPERATION_ABORTED, "ERROR_OPERATION_ABORTED" },
722    { ERROR_IO_INCOMPLETE, "ERROR_IO_INCOMPLETE" },
723    { ERROR_IO_PENDING,    "ERROR_IO_PENDING" },
724    { ERROR_NOACCESS,  "ERROR_NOACCESS" },
725    { ERROR_SWAPERROR, "ERROR_SWAPERROR" },
726    { ERROR_STACK_OVERFLOW,    "ERROR_STACK_OVERFLOW" },
727    { ERROR_INVALID_MESSAGE,   "ERROR_INVALID_MESSAGE" },
728    { ERROR_CAN_NOT_COMPLETE,  "ERROR_CAN_NOT_COMPLETE" },
729    { ERROR_INVALID_FLAGS, "ERROR_INVALID_FLAGS" },
730    { ERROR_UNRECOGNIZED_VOLUME,   "ERROR_UNRECOGNIZED_VOLUME" },
731    { ERROR_FILE_INVALID,  "ERROR_FILE_INVALID" },
732    { ERROR_FULLSCREEN_MODE,   "ERROR_FULLSCREEN_MODE" },
733    { ERROR_NO_TOKEN,  "ERROR_NO_TOKEN" },
734    { ERROR_BADDB, "ERROR_BADDB" },
735    { ERROR_BADKEY,    "ERROR_BADKEY" },
736    { ERROR_CANTOPEN,  "ERROR_CANTOPEN" },
737    { ERROR_CANTREAD,  "ERROR_CANTREAD" },
738    { ERROR_CANTWRITE, "ERROR_CANTWRITE" },
739    { ERROR_REGISTRY_RECOVERED,    "ERROR_REGISTRY_RECOVERED" },
740    { ERROR_REGISTRY_CORRUPT,  "ERROR_REGISTRY_CORRUPT" },
741    { ERROR_REGISTRY_IO_FAILED,    "ERROR_REGISTRY_IO_FAILED" },
742    { ERROR_NOT_REGISTRY_FILE, "ERROR_NOT_REGISTRY_FILE" },
743    { ERROR_KEY_DELETED,   "ERROR_KEY_DELETED" },
744    { ERROR_NO_LOG_SPACE,  "ERROR_NO_LOG_SPACE" },
745    { ERROR_KEY_HAS_CHILDREN,  "ERROR_KEY_HAS_CHILDREN" },
746    { ERROR_CHILD_MUST_BE_VOLATILE,    "ERROR_CHILD_MUST_BE_VOLATILE" },
747    { ERROR_NOTIFY_ENUM_DIR,   "ERROR_NOTIFY_ENUM_DIR" },
748    { ERROR_DEPENDENT_SERVICES_RUNNING,    "ERROR_DEPENDENT_SERVICES_RUNNING" },
749    { ERROR_INVALID_SERVICE_CONTROL,   "ERROR_INVALID_SERVICE_CONTROL" },
750    { ERROR_SERVICE_REQUEST_TIMEOUT,   "ERROR_SERVICE_REQUEST_TIMEOUT" },
751    { ERROR_SERVICE_NO_THREAD, "ERROR_SERVICE_NO_THREAD" },
752    { ERROR_SERVICE_DATABASE_LOCKED,   "ERROR_SERVICE_DATABASE_LOCKED" },
753    { ERROR_SERVICE_ALREADY_RUNNING,   "ERROR_SERVICE_ALREADY_RUNNING" },
754    { ERROR_INVALID_SERVICE_ACCOUNT,   "ERROR_INVALID_SERVICE_ACCOUNT" },
755    { ERROR_SERVICE_DISABLED,  "ERROR_SERVICE_DISABLED" },
756    { ERROR_CIRCULAR_DEPENDENCY,   "ERROR_CIRCULAR_DEPENDENCY" },
757    { ERROR_SERVICE_DOES_NOT_EXIST,    "ERROR_SERVICE_DOES_NOT_EXIST" },
758    { ERROR_SERVICE_CANNOT_ACCEPT_CTRL,    "ERROR_SERVICE_CANNOT_ACCEPT_CTRL" },
759    { ERROR_SERVICE_NOT_ACTIVE,    "ERROR_SERVICE_NOT_ACTIVE" },
760    { ERROR_FAILED_SERVICE_CONTROLLER_CONNECT, "ERROR_FAILED_SERVICE_CONTROLLER_CONNECT" },
761    { ERROR_EXCEPTION_IN_SERVICE,  "ERROR_EXCEPTION_IN_SERVICE" },
762    { ERROR_DATABASE_DOES_NOT_EXIST,   "ERROR_DATABASE_DOES_NOT_EXIST" },
763    { ERROR_SERVICE_SPECIFIC_ERROR,    "ERROR_SERVICE_SPECIFIC_ERROR" },
764    { ERROR_PROCESS_ABORTED,   "ERROR_PROCESS_ABORTED" },
765    { ERROR_SERVICE_DEPENDENCY_FAIL,   "ERROR_SERVICE_DEPENDENCY_FAIL" },
766    { ERROR_SERVICE_LOGON_FAILED,  "ERROR_SERVICE_LOGON_FAILED" },
767    { ERROR_SERVICE_START_HANG,    "ERROR_SERVICE_START_HANG" },
768    { ERROR_INVALID_SERVICE_LOCK,  "ERROR_INVALID_SERVICE_LOCK" },
769    { ERROR_SERVICE_MARKED_FOR_DELETE, "ERROR_SERVICE_MARKED_FOR_DELETE" },
770    { ERROR_SERVICE_EXISTS,    "ERROR_SERVICE_EXISTS" },
771    { ERROR_ALREADY_RUNNING_LKG,   "ERROR_ALREADY_RUNNING_LKG" },
772    { ERROR_SERVICE_DEPENDENCY_DELETED,    "ERROR_SERVICE_DEPENDENCY_DELETED" },
773    { ERROR_BOOT_ALREADY_ACCEPTED, "ERROR_BOOT_ALREADY_ACCEPTED" },
774    { ERROR_SERVICE_NEVER_STARTED, "ERROR_SERVICE_NEVER_STARTED" },
775    { ERROR_DUPLICATE_SERVICE_NAME,    "ERROR_DUPLICATE_SERVICE_NAME" },
776#ifdef ERROR_DIFFERENT_SERVICE_ACCOUNT
777    { ERROR_DIFFERENT_SERVICE_ACCOUNT, "ERROR_DIFFERENT_SERVICE_ACCOUNT" },
778#endif
779    { ERROR_END_OF_MEDIA,  "ERROR_END_OF_MEDIA" },
780    { ERROR_FILEMARK_DETECTED, "ERROR_FILEMARK_DETECTED" },
781    { ERROR_BEGINNING_OF_MEDIA,    "ERROR_BEGINNING_OF_MEDIA" },
782    { ERROR_SETMARK_DETECTED,  "ERROR_SETMARK_DETECTED" },
783    { ERROR_NO_DATA_DETECTED,  "ERROR_NO_DATA_DETECTED" },
784    { ERROR_PARTITION_FAILURE, "ERROR_PARTITION_FAILURE" },
785    { ERROR_INVALID_BLOCK_LENGTH,  "ERROR_INVALID_BLOCK_LENGTH" },
786    { ERROR_DEVICE_NOT_PARTITIONED,    "ERROR_DEVICE_NOT_PARTITIONED" },
787    { ERROR_UNABLE_TO_LOCK_MEDIA,  "ERROR_UNABLE_TO_LOCK_MEDIA" },
788    { ERROR_UNABLE_TO_UNLOAD_MEDIA,    "ERROR_UNABLE_TO_UNLOAD_MEDIA" },
789    { ERROR_MEDIA_CHANGED, "ERROR_MEDIA_CHANGED" },
790    { ERROR_BUS_RESET, "ERROR_BUS_RESET" },
791    { ERROR_NO_MEDIA_IN_DRIVE, "ERROR_NO_MEDIA_IN_DRIVE" },
792    { ERROR_NO_UNICODE_TRANSLATION,    "ERROR_NO_UNICODE_TRANSLATION" },
793    { ERROR_DLL_INIT_FAILED,   "ERROR_DLL_INIT_FAILED" },
794    { ERROR_SHUTDOWN_IN_PROGRESS,  "ERROR_SHUTDOWN_IN_PROGRESS" },
795    { ERROR_NO_SHUTDOWN_IN_PROGRESS,   "ERROR_NO_SHUTDOWN_IN_PROGRESS" },
796    { ERROR_IO_DEVICE, "ERROR_IO_DEVICE" },
797    { ERROR_SERIAL_NO_DEVICE,  "ERROR_SERIAL_NO_DEVICE" },
798    { ERROR_IRQ_BUSY,  "ERROR_IRQ_BUSY" },
799    { ERROR_MORE_WRITES,   "ERROR_MORE_WRITES" },
800    { ERROR_COUNTER_TIMEOUT,   "ERROR_COUNTER_TIMEOUT" },
801    { ERROR_FLOPPY_ID_MARK_NOT_FOUND,  "ERROR_FLOPPY_ID_MARK_NOT_FOUND" },
802    { ERROR_FLOPPY_WRONG_CYLINDER, "ERROR_FLOPPY_WRONG_CYLINDER" },
803    { ERROR_FLOPPY_UNKNOWN_ERROR,  "ERROR_FLOPPY_UNKNOWN_ERROR" },
804    { ERROR_FLOPPY_BAD_REGISTERS,  "ERROR_FLOPPY_BAD_REGISTERS" },
805    { ERROR_DISK_RECALIBRATE_FAILED,   "ERROR_DISK_RECALIBRATE_FAILED" },
806    { ERROR_DISK_OPERATION_FAILED, "ERROR_DISK_OPERATION_FAILED" },
807    { ERROR_DISK_RESET_FAILED, "ERROR_DISK_RESET_FAILED" },
808    { ERROR_EOM_OVERFLOW,  "ERROR_EOM_OVERFLOW" },
809    { ERROR_NOT_ENOUGH_SERVER_MEMORY,  "ERROR_NOT_ENOUGH_SERVER_MEMORY" },
810    { ERROR_POSSIBLE_DEADLOCK, "ERROR_POSSIBLE_DEADLOCK" },
811    { ERROR_MAPPED_ALIGNMENT,  "ERROR_MAPPED_ALIGNMENT" },
812    { ERROR_SET_POWER_STATE_VETOED,    "ERROR_SET_POWER_STATE_VETOED" },
813    { ERROR_SET_POWER_STATE_FAILED,    "ERROR_SET_POWER_STATE_FAILED" },
814#ifdef ERROR_TOO_MANY_LINKS
815    { ERROR_TOO_MANY_LINKS,    "ERROR_TOO_MANY_LINKS" },
816#endif
817    { ERROR_OLD_WIN_VERSION,   "ERROR_OLD_WIN_VERSION" },
818    { ERROR_APP_WRONG_OS,  "ERROR_APP_WRONG_OS" },
819    { ERROR_SINGLE_INSTANCE_APP,   "ERROR_SINGLE_INSTANCE_APP" },
820    { ERROR_RMODE_APP, "ERROR_RMODE_APP" },
821    { ERROR_INVALID_DLL,   "ERROR_INVALID_DLL" },
822    { ERROR_NO_ASSOCIATION,    "ERROR_NO_ASSOCIATION" },
823    { ERROR_DDE_FAIL,  "ERROR_DDE_FAIL" },
824    { ERROR_DLL_NOT_FOUND, "ERROR_DLL_NOT_FOUND" },
825    { ERROR_BAD_USERNAME,  "ERROR_BAD_USERNAME" },
826    { ERROR_NOT_CONNECTED, "ERROR_NOT_CONNECTED" },
827    { ERROR_OPEN_FILES,    "ERROR_OPEN_FILES" },
828    { ERROR_ACTIVE_CONNECTIONS,    "ERROR_ACTIVE_CONNECTIONS" },
829    { ERROR_DEVICE_IN_USE, "ERROR_DEVICE_IN_USE" },
830    { ERROR_BAD_DEVICE,    "ERROR_BAD_DEVICE" },
831    { ERROR_CONNECTION_UNAVAIL,    "ERROR_CONNECTION_UNAVAIL" },
832    { ERROR_DEVICE_ALREADY_REMEMBERED, "ERROR_DEVICE_ALREADY_REMEMBERED" },
833    { ERROR_NO_NET_OR_BAD_PATH,    "ERROR_NO_NET_OR_BAD_PATH" },
834    { ERROR_BAD_PROVIDER,  "ERROR_BAD_PROVIDER" },
835    { ERROR_CANNOT_OPEN_PROFILE,   "ERROR_CANNOT_OPEN_PROFILE" },
836    { ERROR_BAD_PROFILE,   "ERROR_BAD_PROFILE" },
837    { ERROR_NOT_CONTAINER, "ERROR_NOT_CONTAINER" },
838    { ERROR_EXTENDED_ERROR,    "ERROR_EXTENDED_ERROR" },
839    { ERROR_INVALID_GROUPNAME, "ERROR_INVALID_GROUPNAME" },
840    { ERROR_INVALID_COMPUTERNAME,  "ERROR_INVALID_COMPUTERNAME" },
841    { ERROR_INVALID_EVENTNAME, "ERROR_INVALID_EVENTNAME" },
842    { ERROR_INVALID_DOMAINNAME,    "ERROR_INVALID_DOMAINNAME" },
843    { ERROR_INVALID_SERVICENAME,   "ERROR_INVALID_SERVICENAME" },
844    { ERROR_INVALID_NETNAME,   "ERROR_INVALID_NETNAME" },
845    { ERROR_INVALID_SHARENAME, "ERROR_INVALID_SHARENAME" },
846    { ERROR_INVALID_PASSWORDNAME,  "ERROR_INVALID_PASSWORDNAME" },
847    { ERROR_INVALID_MESSAGENAME,   "ERROR_INVALID_MESSAGENAME" },
848    { ERROR_INVALID_MESSAGEDEST,   "ERROR_INVALID_MESSAGEDEST" },
849    { ERROR_SESSION_CREDENTIAL_CONFLICT,   "ERROR_SESSION_CREDENTIAL_CONFLICT" },
850    { ERROR_REMOTE_SESSION_LIMIT_EXCEEDED, "ERROR_REMOTE_SESSION_LIMIT_EXCEEDED" },
851    { ERROR_DUP_DOMAINNAME,    "ERROR_DUP_DOMAINNAME" },
852    { ERROR_NO_NETWORK,    "ERROR_NO_NETWORK" },
853    { ERROR_CANCELLED, "ERROR_CANCELLED" },
854    { ERROR_USER_MAPPED_FILE,  "ERROR_USER_MAPPED_FILE" },
855    { ERROR_CONNECTION_REFUSED,    "ERROR_CONNECTION_REFUSED" },
856    { ERROR_GRACEFUL_DISCONNECT,   "ERROR_GRACEFUL_DISCONNECT" },
857    { ERROR_ADDRESS_ALREADY_ASSOCIATED,    "ERROR_ADDRESS_ALREADY_ASSOCIATED" },
858    { ERROR_ADDRESS_NOT_ASSOCIATED,    "ERROR_ADDRESS_NOT_ASSOCIATED" },
859    { ERROR_CONNECTION_INVALID,    "ERROR_CONNECTION_INVALID" },
860    { ERROR_CONNECTION_ACTIVE, "ERROR_CONNECTION_ACTIVE" },
861    { ERROR_NETWORK_UNREACHABLE,   "ERROR_NETWORK_UNREACHABLE" },
862    { ERROR_HOST_UNREACHABLE,  "ERROR_HOST_UNREACHABLE" },
863    { ERROR_PROTOCOL_UNREACHABLE,  "ERROR_PROTOCOL_UNREACHABLE" },
864    { ERROR_PORT_UNREACHABLE,  "ERROR_PORT_UNREACHABLE" },
865    { ERROR_REQUEST_ABORTED,   "ERROR_REQUEST_ABORTED" },
866    { ERROR_CONNECTION_ABORTED,    "ERROR_CONNECTION_ABORTED" },
867    { ERROR_RETRY, "ERROR_RETRY" },
868    { ERROR_CONNECTION_COUNT_LIMIT,    "ERROR_CONNECTION_COUNT_LIMIT" },
869    { ERROR_LOGIN_TIME_RESTRICTION,    "ERROR_LOGIN_TIME_RESTRICTION" },
870    { ERROR_LOGIN_WKSTA_RESTRICTION,   "ERROR_LOGIN_WKSTA_RESTRICTION" },
871    { ERROR_INCORRECT_ADDRESS, "ERROR_INCORRECT_ADDRESS" },
872    { ERROR_ALREADY_REGISTERED,    "ERROR_ALREADY_REGISTERED" },
873    { ERROR_SERVICE_NOT_FOUND, "ERROR_SERVICE_NOT_FOUND" },
874    { ERROR_NOT_AUTHENTICATED, "ERROR_NOT_AUTHENTICATED" },
875    { ERROR_NOT_LOGGED_ON, "ERROR_NOT_LOGGED_ON" },
876    { ERROR_CONTINUE,  "ERROR_CONTINUE" },
877    { ERROR_ALREADY_INITIALIZED,   "ERROR_ALREADY_INITIALIZED" },
878    { ERROR_NO_MORE_DEVICES,   "ERROR_NO_MORE_DEVICES" },
879    { ERROR_NOT_ALL_ASSIGNED,  "ERROR_NOT_ALL_ASSIGNED" },
880    { ERROR_SOME_NOT_MAPPED,   "ERROR_SOME_NOT_MAPPED" },
881    { ERROR_NO_QUOTAS_FOR_ACCOUNT, "ERROR_NO_QUOTAS_FOR_ACCOUNT" },
882    { ERROR_LOCAL_USER_SESSION_KEY,    "ERROR_LOCAL_USER_SESSION_KEY" },
883    { ERROR_NULL_LM_PASSWORD,  "ERROR_NULL_LM_PASSWORD" },
884    { ERROR_UNKNOWN_REVISION,  "ERROR_UNKNOWN_REVISION" },
885    { ERROR_REVISION_MISMATCH, "ERROR_REVISION_MISMATCH" },
886    { ERROR_INVALID_OWNER, "ERROR_INVALID_OWNER" },
887    { ERROR_INVALID_PRIMARY_GROUP, "ERROR_INVALID_PRIMARY_GROUP" },
888    { ERROR_NO_IMPERSONATION_TOKEN,    "ERROR_NO_IMPERSONATION_TOKEN" },
889    { ERROR_CANT_DISABLE_MANDATORY,    "ERROR_CANT_DISABLE_MANDATORY" },
890    { ERROR_NO_LOGON_SERVERS,  "ERROR_NO_LOGON_SERVERS" },
891    { ERROR_NO_SUCH_LOGON_SESSION, "ERROR_NO_SUCH_LOGON_SESSION" },
892    { ERROR_NO_SUCH_PRIVILEGE, "ERROR_NO_SUCH_PRIVILEGE" },
893    { ERROR_PRIVILEGE_NOT_HELD,    "ERROR_PRIVILEGE_NOT_HELD" },
894    { ERROR_INVALID_ACCOUNT_NAME,  "ERROR_INVALID_ACCOUNT_NAME" },
895    { ERROR_USER_EXISTS,   "ERROR_USER_EXISTS" },
896    { ERROR_NO_SUCH_USER,  "ERROR_NO_SUCH_USER" },
897    { ERROR_GROUP_EXISTS,  "ERROR_GROUP_EXISTS" },
898    { ERROR_NO_SUCH_GROUP, "ERROR_NO_SUCH_GROUP" },
899    { ERROR_MEMBER_IN_GROUP,   "ERROR_MEMBER_IN_GROUP" },
900    { ERROR_MEMBER_NOT_IN_GROUP,   "ERROR_MEMBER_NOT_IN_GROUP" },
901    { ERROR_LAST_ADMIN,    "ERROR_LAST_ADMIN" },
902    { ERROR_WRONG_PASSWORD,    "ERROR_WRONG_PASSWORD" },
903    { ERROR_ILL_FORMED_PASSWORD,   "ERROR_ILL_FORMED_PASSWORD" },
904    { ERROR_PASSWORD_RESTRICTION,  "ERROR_PASSWORD_RESTRICTION" },
905    { ERROR_LOGON_FAILURE, "ERROR_LOGON_FAILURE" },
906    { ERROR_ACCOUNT_RESTRICTION,   "ERROR_ACCOUNT_RESTRICTION" },
907    { ERROR_INVALID_LOGON_HOURS,   "ERROR_INVALID_LOGON_HOURS" },
908    { ERROR_INVALID_WORKSTATION,   "ERROR_INVALID_WORKSTATION" },
909    { ERROR_PASSWORD_EXPIRED,  "ERROR_PASSWORD_EXPIRED" },
910    { ERROR_ACCOUNT_DISABLED,  "ERROR_ACCOUNT_DISABLED" },
911    { ERROR_NONE_MAPPED,   "ERROR_NONE_MAPPED" },
912    { ERROR_TOO_MANY_LUIDS_REQUESTED,  "ERROR_TOO_MANY_LUIDS_REQUESTED" },
913    { ERROR_LUIDS_EXHAUSTED,   "ERROR_LUIDS_EXHAUSTED" },
914    { ERROR_INVALID_SUB_AUTHORITY, "ERROR_INVALID_SUB_AUTHORITY" },
915    { ERROR_INVALID_ACL,   "ERROR_INVALID_ACL" },
916    { ERROR_INVALID_SID,   "ERROR_INVALID_SID" },
917    { ERROR_INVALID_SECURITY_DESCR,    "ERROR_INVALID_SECURITY_DESCR" },
918    { ERROR_BAD_INHERITANCE_ACL,   "ERROR_BAD_INHERITANCE_ACL" },
919    { ERROR_SERVER_DISABLED,   "ERROR_SERVER_DISABLED" },
920    { ERROR_SERVER_NOT_DISABLED,   "ERROR_SERVER_NOT_DISABLED" },
921    { ERROR_INVALID_ID_AUTHORITY,  "ERROR_INVALID_ID_AUTHORITY" },
922    { ERROR_ALLOTTED_SPACE_EXCEEDED,   "ERROR_ALLOTTED_SPACE_EXCEEDED" },
923    { ERROR_INVALID_GROUP_ATTRIBUTES,  "ERROR_INVALID_GROUP_ATTRIBUTES" },
924    { ERROR_BAD_IMPERSONATION_LEVEL,   "ERROR_BAD_IMPERSONATION_LEVEL" },
925    { ERROR_CANT_OPEN_ANONYMOUS,   "ERROR_CANT_OPEN_ANONYMOUS" },
926    { ERROR_BAD_VALIDATION_CLASS,  "ERROR_BAD_VALIDATION_CLASS" },
927    { ERROR_BAD_TOKEN_TYPE,    "ERROR_BAD_TOKEN_TYPE" },
928    { ERROR_NO_SECURITY_ON_OBJECT, "ERROR_NO_SECURITY_ON_OBJECT" },
929    { ERROR_CANT_ACCESS_DOMAIN_INFO,   "ERROR_CANT_ACCESS_DOMAIN_INFO" },
930    { ERROR_INVALID_SERVER_STATE,  "ERROR_INVALID_SERVER_STATE" },
931    { ERROR_INVALID_DOMAIN_STATE,  "ERROR_INVALID_DOMAIN_STATE" },
932    { ERROR_INVALID_DOMAIN_ROLE,   "ERROR_INVALID_DOMAIN_ROLE" },
933    { ERROR_NO_SUCH_DOMAIN,    "ERROR_NO_SUCH_DOMAIN" },
934    { ERROR_DOMAIN_EXISTS, "ERROR_DOMAIN_EXISTS" },
935    { ERROR_DOMAIN_LIMIT_EXCEEDED, "ERROR_DOMAIN_LIMIT_EXCEEDED" },
936    { ERROR_INTERNAL_DB_CORRUPTION,    "ERROR_INTERNAL_DB_CORRUPTION" },
937    { ERROR_INTERNAL_ERROR,    "ERROR_INTERNAL_ERROR" },
938    { ERROR_GENERIC_NOT_MAPPED,    "ERROR_GENERIC_NOT_MAPPED" },
939    { ERROR_BAD_DESCRIPTOR_FORMAT, "ERROR_BAD_DESCRIPTOR_FORMAT" },
940    { ERROR_NOT_LOGON_PROCESS, "ERROR_NOT_LOGON_PROCESS" },
941    { ERROR_LOGON_SESSION_EXISTS,  "ERROR_LOGON_SESSION_EXISTS" },
942    { ERROR_NO_SUCH_PACKAGE,   "ERROR_NO_SUCH_PACKAGE" },
943    { ERROR_BAD_LOGON_SESSION_STATE,   "ERROR_BAD_LOGON_SESSION_STATE" },
944    { ERROR_LOGON_SESSION_COLLISION,   "ERROR_LOGON_SESSION_COLLISION" },
945    { ERROR_INVALID_LOGON_TYPE,    "ERROR_INVALID_LOGON_TYPE" },
946    { ERROR_CANNOT_IMPERSONATE,    "ERROR_CANNOT_IMPERSONATE" },
947    { ERROR_RXACT_INVALID_STATE,   "ERROR_RXACT_INVALID_STATE" },
948    { ERROR_RXACT_COMMIT_FAILURE,  "ERROR_RXACT_COMMIT_FAILURE" },
949    { ERROR_SPECIAL_ACCOUNT,   "ERROR_SPECIAL_ACCOUNT" },
950    { ERROR_SPECIAL_GROUP, "ERROR_SPECIAL_GROUP" },
951    { ERROR_SPECIAL_USER,  "ERROR_SPECIAL_USER" },
952    { ERROR_MEMBERS_PRIMARY_GROUP, "ERROR_MEMBERS_PRIMARY_GROUP" },
953    { ERROR_TOKEN_ALREADY_IN_USE,  "ERROR_TOKEN_ALREADY_IN_USE" },
954    { ERROR_NO_SUCH_ALIAS, "ERROR_NO_SUCH_ALIAS" },
955    { ERROR_MEMBER_NOT_IN_ALIAS,   "ERROR_MEMBER_NOT_IN_ALIAS" },
956    { ERROR_MEMBER_IN_ALIAS,   "ERROR_MEMBER_IN_ALIAS" },
957    { ERROR_ALIAS_EXISTS,  "ERROR_ALIAS_EXISTS" },
958    { ERROR_LOGON_NOT_GRANTED, "ERROR_LOGON_NOT_GRANTED" },
959    { ERROR_TOO_MANY_SECRETS,  "ERROR_TOO_MANY_SECRETS" },
960    { ERROR_SECRET_TOO_LONG,   "ERROR_SECRET_TOO_LONG" },
961    { ERROR_INTERNAL_DB_ERROR, "ERROR_INTERNAL_DB_ERROR" },
962    { ERROR_TOO_MANY_CONTEXT_IDS,  "ERROR_TOO_MANY_CONTEXT_IDS" },
963    { ERROR_LOGON_TYPE_NOT_GRANTED,    "ERROR_LOGON_TYPE_NOT_GRANTED" },
964    { ERROR_NT_CROSS_ENCRYPTION_REQUIRED,  "ERROR_NT_CROSS_ENCRYPTION_REQUIRED" },
965    { ERROR_NO_SUCH_MEMBER,    "ERROR_NO_SUCH_MEMBER" },
966    { ERROR_INVALID_MEMBER,    "ERROR_INVALID_MEMBER" },
967    { ERROR_TOO_MANY_SIDS, "ERROR_TOO_MANY_SIDS" },
968    { ERROR_LM_CROSS_ENCRYPTION_REQUIRED,  "ERROR_LM_CROSS_ENCRYPTION_REQUIRED" },
969    { ERROR_NO_INHERITANCE,    "ERROR_NO_INHERITANCE" },
970    { ERROR_FILE_CORRUPT,  "ERROR_FILE_CORRUPT" },
971    { ERROR_DISK_CORRUPT,  "ERROR_DISK_CORRUPT" },
972    { ERROR_NO_USER_SESSION_KEY,   "ERROR_NO_USER_SESSION_KEY" },
973#ifdef ERROR_LICENSE_QUOTA_EXCEEDED
974    { ERROR_LICENSE_QUOTA_EXCEEDED,    "ERROR_LICENSE_QUOTA_EXCEEDED" },
975#endif
976    { ERROR_INVALID_WINDOW_HANDLE, "ERROR_INVALID_WINDOW_HANDLE" },
977    { ERROR_INVALID_MENU_HANDLE,   "ERROR_INVALID_MENU_HANDLE" },
978    { ERROR_INVALID_CURSOR_HANDLE, "ERROR_INVALID_CURSOR_HANDLE" },
979    { ERROR_INVALID_ACCEL_HANDLE,  "ERROR_INVALID_ACCEL_HANDLE" },
980    { ERROR_INVALID_HOOK_HANDLE,   "ERROR_INVALID_HOOK_HANDLE" },
981    { ERROR_INVALID_DWP_HANDLE,    "ERROR_INVALID_DWP_HANDLE" },
982    { ERROR_TLW_WITH_WSCHILD,  "ERROR_TLW_WITH_WSCHILD" },
983    { ERROR_CANNOT_FIND_WND_CLASS, "ERROR_CANNOT_FIND_WND_CLASS" },
984    { ERROR_WINDOW_OF_OTHER_THREAD,    "ERROR_WINDOW_OF_OTHER_THREAD" },
985    { ERROR_HOTKEY_ALREADY_REGISTERED, "ERROR_HOTKEY_ALREADY_REGISTERED" },
986    { ERROR_CLASS_ALREADY_EXISTS,  "ERROR_CLASS_ALREADY_EXISTS" },
987    { ERROR_CLASS_DOES_NOT_EXIST,  "ERROR_CLASS_DOES_NOT_EXIST" },
988    { ERROR_CLASS_HAS_WINDOWS, "ERROR_CLASS_HAS_WINDOWS" },
989    { ERROR_INVALID_INDEX, "ERROR_INVALID_INDEX" },
990    { ERROR_INVALID_ICON_HANDLE,   "ERROR_INVALID_ICON_HANDLE" },
991    { ERROR_PRIVATE_DIALOG_INDEX,  "ERROR_PRIVATE_DIALOG_INDEX" },
992    { ERROR_LISTBOX_ID_NOT_FOUND,  "ERROR_LISTBOX_ID_NOT_FOUND" },
993    { ERROR_NO_WILDCARD_CHARACTERS,    "ERROR_NO_WILDCARD_CHARACTERS" },
994    { ERROR_CLIPBOARD_NOT_OPEN,    "ERROR_CLIPBOARD_NOT_OPEN" },
995    { ERROR_HOTKEY_NOT_REGISTERED, "ERROR_HOTKEY_NOT_REGISTERED" },
996    { ERROR_WINDOW_NOT_DIALOG, "ERROR_WINDOW_NOT_DIALOG" },
997    { ERROR_CONTROL_ID_NOT_FOUND,  "ERROR_CONTROL_ID_NOT_FOUND" },
998    { ERROR_INVALID_COMBOBOX_MESSAGE,  "ERROR_INVALID_COMBOBOX_MESSAGE" },
999    { ERROR_WINDOW_NOT_COMBOBOX,   "ERROR_WINDOW_NOT_COMBOBOX" },
1000    { ERROR_INVALID_EDIT_HEIGHT,   "ERROR_INVALID_EDIT_HEIGHT" },
1001    { ERROR_DC_NOT_FOUND,  "ERROR_DC_NOT_FOUND" },
1002    { ERROR_INVALID_HOOK_FILTER,   "ERROR_INVALID_HOOK_FILTER" },
1003    { ERROR_INVALID_FILTER_PROC,   "ERROR_INVALID_FILTER_PROC" },
1004    { ERROR_HOOK_NEEDS_HMOD,   "ERROR_HOOK_NEEDS_HMOD" },
1005    { ERROR_GLOBAL_ONLY_HOOK,  "ERROR_GLOBAL_ONLY_HOOK" },
1006    { ERROR_JOURNAL_HOOK_SET,  "ERROR_JOURNAL_HOOK_SET" },
1007    { ERROR_HOOK_NOT_INSTALLED,    "ERROR_HOOK_NOT_INSTALLED" },
1008    { ERROR_INVALID_LB_MESSAGE,    "ERROR_INVALID_LB_MESSAGE" },
1009    { ERROR_SETCOUNT_ON_BAD_LB,    "ERROR_SETCOUNT_ON_BAD_LB" },
1010    { ERROR_LB_WITHOUT_TABSTOPS,   "ERROR_LB_WITHOUT_TABSTOPS" },
1011    { ERROR_DESTROY_OBJECT_OF_OTHER_THREAD,    "ERROR_DESTROY_OBJECT_OF_OTHER_THREAD" },
1012    { ERROR_CHILD_WINDOW_MENU, "ERROR_CHILD_WINDOW_MENU" },
1013    { ERROR_NO_SYSTEM_MENU,    "ERROR_NO_SYSTEM_MENU" },
1014    { ERROR_INVALID_MSGBOX_STYLE,  "ERROR_INVALID_MSGBOX_STYLE" },
1015    { ERROR_INVALID_SPI_VALUE, "ERROR_INVALID_SPI_VALUE" },
1016    { ERROR_SCREEN_ALREADY_LOCKED, "ERROR_SCREEN_ALREADY_LOCKED" },
1017    { ERROR_HWNDS_HAVE_DIFF_PARENT,    "ERROR_HWNDS_HAVE_DIFF_PARENT" },
1018    { ERROR_NOT_CHILD_WINDOW,  "ERROR_NOT_CHILD_WINDOW" },
1019    { ERROR_INVALID_GW_COMMAND,    "ERROR_INVALID_GW_COMMAND" },
1020    { ERROR_INVALID_THREAD_ID, "ERROR_INVALID_THREAD_ID" },
1021    { ERROR_NON_MDICHILD_WINDOW,   "ERROR_NON_MDICHILD_WINDOW" },
1022    { ERROR_POPUP_ALREADY_ACTIVE,  "ERROR_POPUP_ALREADY_ACTIVE" },
1023    { ERROR_NO_SCROLLBARS, "ERROR_NO_SCROLLBARS" },
1024    { ERROR_INVALID_SCROLLBAR_RANGE,   "ERROR_INVALID_SCROLLBAR_RANGE" },
1025    { ERROR_INVALID_SHOWWIN_COMMAND,   "ERROR_INVALID_SHOWWIN_COMMAND" },
1026#ifdef ERROR_NO_SYSTEM_RESOURCES
1027    { ERROR_NO_SYSTEM_RESOURCES,   "ERROR_NO_SYSTEM_RESOURCES" },
1028#endif
1029#ifdef ERROR_NONPAGED_SYSTEM_RESOURCES
1030    { ERROR_NONPAGED_SYSTEM_RESOURCES, "ERROR_NONPAGED_SYSTEM_RESOURCES" },
1031#endif
1032#ifdef ERROR_PAGED_SYSTEM_RESOURCES
1033    { ERROR_PAGED_SYSTEM_RESOURCES,    "ERROR_PAGED_SYSTEM_RESOURCES" },
1034#endif
1035#ifdef ERROR_WORKING_SET_QUOTA
1036    { ERROR_WORKING_SET_QUOTA, "ERROR_WORKING_SET_QUOTA" },
1037#endif
1038#ifdef ERROR_PAGEFILE_QUOTA
1039    { ERROR_PAGEFILE_QUOTA,    "ERROR_PAGEFILE_QUOTA" },
1040#endif
1041#ifdef ERROR_COMMITMENT_LIMIT
1042    { ERROR_COMMITMENT_LIMIT,  "ERROR_COMMITMENT_LIMIT" },
1043#endif
1044#ifdef ERROR_MENU_ITEM_NOT_FOUND
1045    { ERROR_MENU_ITEM_NOT_FOUND,   "ERROR_MENU_ITEM_NOT_FOUND" },
1046#endif
1047#ifdef ERROR_INVALID_KEYBOARD_HANDLE
1048    { ERROR_INVALID_KEYBOARD_HANDLE,   "ERROR_INVALID_KEYBOARD_HANDLE" },
1049#endif
1050#ifdef ERROR_HOOK_TYPE_NOT_ALLOWED
1051    { ERROR_HOOK_TYPE_NOT_ALLOWED, "ERROR_HOOK_TYPE_NOT_ALLOWED" },
1052#endif
1053#ifdef ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
1054    { ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION,    "ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION" },
1055#endif
1056#ifdef ERROR_TIMEOUT
1057    { ERROR_TIMEOUT,   "ERROR_TIMEOUT" },
1058#endif
1059    { ERROR_EVENTLOG_FILE_CORRUPT, "ERROR_EVENTLOG_FILE_CORRUPT" },
1060    { ERROR_EVENTLOG_CANT_START,   "ERROR_EVENTLOG_CANT_START" },
1061    { ERROR_LOG_FILE_FULL, "ERROR_LOG_FILE_FULL" },
1062    { ERROR_EVENTLOG_FILE_CHANGED, "ERROR_EVENTLOG_FILE_CHANGED" },
1063    { RPC_S_INVALID_STRING_BINDING,    "RPC_S_INVALID_STRING_BINDING" },
1064    { RPC_S_WRONG_KIND_OF_BINDING, "RPC_S_WRONG_KIND_OF_BINDING" },
1065    { RPC_S_INVALID_BINDING,   "RPC_S_INVALID_BINDING" },
1066    { RPC_S_PROTSEQ_NOT_SUPPORTED, "RPC_S_PROTSEQ_NOT_SUPPORTED" },
1067    { RPC_S_INVALID_RPC_PROTSEQ,   "RPC_S_INVALID_RPC_PROTSEQ" },
1068    { RPC_S_INVALID_STRING_UUID,   "RPC_S_INVALID_STRING_UUID" },
1069    { RPC_S_INVALID_ENDPOINT_FORMAT,   "RPC_S_INVALID_ENDPOINT_FORMAT" },
1070    { RPC_S_INVALID_NET_ADDR,  "RPC_S_INVALID_NET_ADDR" },
1071    { RPC_S_NO_ENDPOINT_FOUND, "RPC_S_NO_ENDPOINT_FOUND" },
1072    { RPC_S_INVALID_TIMEOUT,   "RPC_S_INVALID_TIMEOUT" },
1073    { RPC_S_OBJECT_NOT_FOUND,  "RPC_S_OBJECT_NOT_FOUND" },
1074    { RPC_S_ALREADY_REGISTERED,    "RPC_S_ALREADY_REGISTERED" },
1075    { RPC_S_TYPE_ALREADY_REGISTERED,   "RPC_S_TYPE_ALREADY_REGISTERED" },
1076    { RPC_S_ALREADY_LISTENING, "RPC_S_ALREADY_LISTENING" },
1077    { RPC_S_NO_PROTSEQS_REGISTERED,    "RPC_S_NO_PROTSEQS_REGISTERED" },
1078    { RPC_S_NOT_LISTENING, "RPC_S_NOT_LISTENING" },
1079    { RPC_S_UNKNOWN_MGR_TYPE,  "RPC_S_UNKNOWN_MGR_TYPE" },
1080    { RPC_S_UNKNOWN_IF,    "RPC_S_UNKNOWN_IF" },
1081    { RPC_S_NO_BINDINGS,   "RPC_S_NO_BINDINGS" },
1082    { RPC_S_NO_PROTSEQS,   "RPC_S_NO_PROTSEQS" },
1083    { RPC_S_CANT_CREATE_ENDPOINT,  "RPC_S_CANT_CREATE_ENDPOINT" },
1084    { RPC_S_OUT_OF_RESOURCES,  "RPC_S_OUT_OF_RESOURCES" },
1085    { RPC_S_SERVER_UNAVAILABLE,    "RPC_S_SERVER_UNAVAILABLE" },
1086    { RPC_S_SERVER_TOO_BUSY,   "RPC_S_SERVER_TOO_BUSY" },
1087    { RPC_S_INVALID_NETWORK_OPTIONS,   "RPC_S_INVALID_NETWORK_OPTIONS" },
1088    { RPC_S_NO_CALL_ACTIVE,    "RPC_S_NO_CALL_ACTIVE" },
1089    { RPC_S_CALL_FAILED,   "RPC_S_CALL_FAILED" },
1090    { RPC_S_CALL_FAILED_DNE,   "RPC_S_CALL_FAILED_DNE" },
1091    { RPC_S_PROTOCOL_ERROR,    "RPC_S_PROTOCOL_ERROR" },
1092    { RPC_S_UNSUPPORTED_TRANS_SYN, "RPC_S_UNSUPPORTED_TRANS_SYN" },
1093    { RPC_S_UNSUPPORTED_TYPE,  "RPC_S_UNSUPPORTED_TYPE" },
1094    { RPC_S_INVALID_TAG,   "RPC_S_INVALID_TAG" },
1095    { RPC_S_INVALID_BOUND, "RPC_S_INVALID_BOUND" },
1096    { RPC_S_NO_ENTRY_NAME, "RPC_S_NO_ENTRY_NAME" },
1097    { RPC_S_INVALID_NAME_SYNTAX,   "RPC_S_INVALID_NAME_SYNTAX" },
1098    { RPC_S_UNSUPPORTED_NAME_SYNTAX,   "RPC_S_UNSUPPORTED_NAME_SYNTAX" },
1099    { RPC_S_UUID_NO_ADDRESS,   "RPC_S_UUID_NO_ADDRESS" },
1100    { RPC_S_DUPLICATE_ENDPOINT,    "RPC_S_DUPLICATE_ENDPOINT" },
1101    { RPC_S_UNKNOWN_AUTHN_TYPE,    "RPC_S_UNKNOWN_AUTHN_TYPE" },
1102    { RPC_S_MAX_CALLS_TOO_SMALL,   "RPC_S_MAX_CALLS_TOO_SMALL" },
1103    { RPC_S_STRING_TOO_LONG,   "RPC_S_STRING_TOO_LONG" },
1104    { RPC_S_PROTSEQ_NOT_FOUND, "RPC_S_PROTSEQ_NOT_FOUND" },
1105    { RPC_S_PROCNUM_OUT_OF_RANGE,  "RPC_S_PROCNUM_OUT_OF_RANGE" },
1106    { RPC_S_BINDING_HAS_NO_AUTH,   "RPC_S_BINDING_HAS_NO_AUTH" },
1107    { RPC_S_UNKNOWN_AUTHN_SERVICE, "RPC_S_UNKNOWN_AUTHN_SERVICE" },
1108    { RPC_S_UNKNOWN_AUTHN_LEVEL,   "RPC_S_UNKNOWN_AUTHN_LEVEL" },
1109    { RPC_S_INVALID_AUTH_IDENTITY, "RPC_S_INVALID_AUTH_IDENTITY" },
1110    { RPC_S_UNKNOWN_AUTHZ_SERVICE, "RPC_S_UNKNOWN_AUTHZ_SERVICE" },
1111    { EPT_S_INVALID_ENTRY, "EPT_S_INVALID_ENTRY" },
1112    { EPT_S_CANT_PERFORM_OP,   "EPT_S_CANT_PERFORM_OP" },
1113    { EPT_S_NOT_REGISTERED,    "EPT_S_NOT_REGISTERED" },
1114    { RPC_S_NOTHING_TO_EXPORT, "RPC_S_NOTHING_TO_EXPORT" },
1115    { RPC_S_INCOMPLETE_NAME,   "RPC_S_INCOMPLETE_NAME" },
1116    { RPC_S_INVALID_VERS_OPTION,   "RPC_S_INVALID_VERS_OPTION" },
1117    { RPC_S_NO_MORE_MEMBERS,   "RPC_S_NO_MORE_MEMBERS" },
1118    { RPC_S_NOT_ALL_OBJS_UNEXPORTED,   "RPC_S_NOT_ALL_OBJS_UNEXPORTED" },
1119    { RPC_S_INTERFACE_NOT_FOUND,   "RPC_S_INTERFACE_NOT_FOUND" },
1120    { RPC_S_ENTRY_ALREADY_EXISTS,  "RPC_S_ENTRY_ALREADY_EXISTS" },
1121    { RPC_S_ENTRY_NOT_FOUND,   "RPC_S_ENTRY_NOT_FOUND" },
1122    { RPC_S_NAME_SERVICE_UNAVAILABLE,  "RPC_S_NAME_SERVICE_UNAVAILABLE" },
1123    { RPC_S_INVALID_NAF_ID,    "RPC_S_INVALID_NAF_ID" },
1124    { RPC_S_CANNOT_SUPPORT,    "RPC_S_CANNOT_SUPPORT" },
1125    { RPC_S_NO_CONTEXT_AVAILABLE,  "RPC_S_NO_CONTEXT_AVAILABLE" },
1126    { RPC_S_INTERNAL_ERROR,    "RPC_S_INTERNAL_ERROR" },
1127    { RPC_S_ZERO_DIVIDE,   "RPC_S_ZERO_DIVIDE" },
1128    { RPC_S_ADDRESS_ERROR, "RPC_S_ADDRESS_ERROR" },
1129    { RPC_S_FP_DIV_ZERO,   "RPC_S_FP_DIV_ZERO" },
1130    { RPC_S_FP_UNDERFLOW,  "RPC_S_FP_UNDERFLOW" },
1131    { RPC_S_FP_OVERFLOW,   "RPC_S_FP_OVERFLOW" },
1132    { RPC_X_NO_MORE_ENTRIES,   "RPC_X_NO_MORE_ENTRIES" },
1133    { RPC_X_SS_CHAR_TRANS_OPEN_FAIL,   "RPC_X_SS_CHAR_TRANS_OPEN_FAIL" },
1134    { RPC_X_SS_CHAR_TRANS_SHORT_FILE,  "RPC_X_SS_CHAR_TRANS_SHORT_FILE" },
1135    { RPC_X_SS_IN_NULL_CONTEXT,    "RPC_X_SS_IN_NULL_CONTEXT" },
1136    { RPC_X_SS_CONTEXT_DAMAGED,    "RPC_X_SS_CONTEXT_DAMAGED" },
1137    { RPC_X_SS_HANDLES_MISMATCH,   "RPC_X_SS_HANDLES_MISMATCH" },
1138    { RPC_X_SS_CANNOT_GET_CALL_HANDLE, "RPC_X_SS_CANNOT_GET_CALL_HANDLE" },
1139    { RPC_X_NULL_REF_POINTER,  "RPC_X_NULL_REF_POINTER" },
1140    { RPC_X_ENUM_VALUE_OUT_OF_RANGE,   "RPC_X_ENUM_VALUE_OUT_OF_RANGE" },
1141    { RPC_X_BYTE_COUNT_TOO_SMALL,  "RPC_X_BYTE_COUNT_TOO_SMALL" },
1142    { RPC_X_BAD_STUB_DATA, "RPC_X_BAD_STUB_DATA" },
1143    { ERROR_INVALID_USER_BUFFER,   "ERROR_INVALID_USER_BUFFER" },
1144    { ERROR_UNRECOGNIZED_MEDIA,    "ERROR_UNRECOGNIZED_MEDIA" },
1145    { ERROR_NO_TRUST_LSA_SECRET,   "ERROR_NO_TRUST_LSA_SECRET" },
1146    { ERROR_NO_TRUST_SAM_ACCOUNT,  "ERROR_NO_TRUST_SAM_ACCOUNT" },
1147    { ERROR_TRUSTED_DOMAIN_FAILURE,    "ERROR_TRUSTED_DOMAIN_FAILURE" },
1148    { ERROR_TRUSTED_RELATIONSHIP_FAILURE,  "ERROR_TRUSTED_RELATIONSHIP_FAILURE" },
1149    { ERROR_TRUST_FAILURE, "ERROR_TRUST_FAILURE" },
1150    { RPC_S_CALL_IN_PROGRESS,  "RPC_S_CALL_IN_PROGRESS" },
1151    { ERROR_NETLOGON_NOT_STARTED,  "ERROR_NETLOGON_NOT_STARTED" },
1152    { ERROR_ACCOUNT_EXPIRED,   "ERROR_ACCOUNT_EXPIRED" },
1153    { ERROR_REDIRECTOR_HAS_OPEN_HANDLES,   "ERROR_REDIRECTOR_HAS_OPEN_HANDLES" },
1154    { ERROR_PRINTER_DRIVER_ALREADY_INSTALLED,  "ERROR_PRINTER_DRIVER_ALREADY_INSTALLED" },
1155    { ERROR_UNKNOWN_PORT,  "ERROR_UNKNOWN_PORT" },
1156    { ERROR_UNKNOWN_PRINTER_DRIVER,    "ERROR_UNKNOWN_PRINTER_DRIVER" },
1157    { ERROR_UNKNOWN_PRINTPROCESSOR,    "ERROR_UNKNOWN_PRINTPROCESSOR" },
1158    { ERROR_INVALID_SEPARATOR_FILE,    "ERROR_INVALID_SEPARATOR_FILE" },
1159    { ERROR_INVALID_PRIORITY,  "ERROR_INVALID_PRIORITY" },
1160    { ERROR_INVALID_PRINTER_NAME,  "ERROR_INVALID_PRINTER_NAME" },
1161    { ERROR_PRINTER_ALREADY_EXISTS,    "ERROR_PRINTER_ALREADY_EXISTS" },
1162    { ERROR_INVALID_PRINTER_COMMAND,   "ERROR_INVALID_PRINTER_COMMAND" },
1163    { ERROR_INVALID_DATATYPE,  "ERROR_INVALID_DATATYPE" },
1164    { ERROR_INVALID_ENVIRONMENT,   "ERROR_INVALID_ENVIRONMENT" },
1165    { RPC_S_NO_MORE_BINDINGS,  "RPC_S_NO_MORE_BINDINGS" },
1166    { ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT, "ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT" },
1167    { ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT, "ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT" },
1168    { ERROR_NOLOGON_SERVER_TRUST_ACCOUNT,  "ERROR_NOLOGON_SERVER_TRUST_ACCOUNT" },
1169    { ERROR_DOMAIN_TRUST_INCONSISTENT, "ERROR_DOMAIN_TRUST_INCONSISTENT" },
1170    { ERROR_SERVER_HAS_OPEN_HANDLES,   "ERROR_SERVER_HAS_OPEN_HANDLES" },
1171    { ERROR_RESOURCE_DATA_NOT_FOUND,   "ERROR_RESOURCE_DATA_NOT_FOUND" },
1172    { ERROR_RESOURCE_TYPE_NOT_FOUND,   "ERROR_RESOURCE_TYPE_NOT_FOUND" },
1173    { ERROR_RESOURCE_NAME_NOT_FOUND,   "ERROR_RESOURCE_NAME_NOT_FOUND" },
1174    { ERROR_RESOURCE_LANG_NOT_FOUND,   "ERROR_RESOURCE_LANG_NOT_FOUND" },
1175    { ERROR_NOT_ENOUGH_QUOTA,  "ERROR_NOT_ENOUGH_QUOTA" },
1176    { RPC_S_NO_INTERFACES, "RPC_S_NO_INTERFACES" },
1177    { RPC_S_CALL_CANCELLED,    "RPC_S_CALL_CANCELLED" },
1178    { RPC_S_BINDING_INCOMPLETE,    "RPC_S_BINDING_INCOMPLETE" },
1179    { RPC_S_COMM_FAILURE,  "RPC_S_COMM_FAILURE" },
1180    { RPC_S_UNSUPPORTED_AUTHN_LEVEL,   "RPC_S_UNSUPPORTED_AUTHN_LEVEL" },
1181    { RPC_S_NO_PRINC_NAME, "RPC_S_NO_PRINC_NAME" },
1182    { RPC_S_NOT_RPC_ERROR, "RPC_S_NOT_RPC_ERROR" },
1183    { RPC_S_UUID_LOCAL_ONLY,   "RPC_S_UUID_LOCAL_ONLY" },
1184    { RPC_S_SEC_PKG_ERROR, "RPC_S_SEC_PKG_ERROR" },
1185    { RPC_S_NOT_CANCELLED, "RPC_S_NOT_CANCELLED" },
1186    { RPC_X_INVALID_ES_ACTION, "RPC_X_INVALID_ES_ACTION" },
1187    { RPC_X_WRONG_ES_VERSION,  "RPC_X_WRONG_ES_VERSION" },
1188    { RPC_X_WRONG_STUB_VERSION,    "RPC_X_WRONG_STUB_VERSION" },
1189#ifdef RPC_X_INVALID_PIPE_OBJECT
1190    { RPC_X_INVALID_PIPE_OBJECT,   "RPC_X_INVALID_PIPE_OBJECT" },
1191#endif
1192#ifdef RPC_X_INVALID_PIPE_OPERATION
1193    { RPC_X_INVALID_PIPE_OPERATION,    "RPC_X_INVALID_PIPE_OPERATION" },
1194#endif
1195#ifdef RPC_X_WRONG_PIPE_VERSION
1196    { RPC_X_WRONG_PIPE_VERSION,    "RPC_X_WRONG_PIPE_VERSION" },
1197#endif
1198    { RPC_S_GROUP_MEMBER_NOT_FOUND,    "RPC_S_GROUP_MEMBER_NOT_FOUND" },
1199    { EPT_S_CANT_CREATE,   "EPT_S_CANT_CREATE" },
1200    { RPC_S_INVALID_OBJECT,    "RPC_S_INVALID_OBJECT" },
1201    { ERROR_INVALID_TIME,  "ERROR_INVALID_TIME" },
1202    { ERROR_INVALID_FORM_NAME, "ERROR_INVALID_FORM_NAME" },
1203    { ERROR_INVALID_FORM_SIZE, "ERROR_INVALID_FORM_SIZE" },
1204    { ERROR_ALREADY_WAITING,   "ERROR_ALREADY_WAITING" },
1205    { ERROR_PRINTER_DELETED,   "ERROR_PRINTER_DELETED" },
1206    { ERROR_INVALID_PRINTER_STATE, "ERROR_INVALID_PRINTER_STATE" },
1207    { ERROR_PASSWORD_MUST_CHANGE,  "ERROR_PASSWORD_MUST_CHANGE" },
1208    { ERROR_DOMAIN_CONTROLLER_NOT_FOUND,   "ERROR_DOMAIN_CONTROLLER_NOT_FOUND" },
1209    { ERROR_ACCOUNT_LOCKED_OUT,    "ERROR_ACCOUNT_LOCKED_OUT" },
1210#ifdef OR_INVALID_OXID
1211    { OR_INVALID_OXID, "OR_INVALID_OXID" },
1212#endif
1213#ifdef OR_INVALID_OID
1214    { OR_INVALID_OID,  "OR_INVALID_OID" },
1215#endif
1216#ifdef OR_INVALID_SET
1217    { OR_INVALID_SET,  "OR_INVALID_SET" },
1218#endif
1219#ifdef RPC_S_SEND_INCOMPLETE
1220    { RPC_S_SEND_INCOMPLETE,   "RPC_S_SEND_INCOMPLETE" },
1221#endif
1222    { ERROR_NO_BROWSER_SERVERS_FOUND,  "ERROR_NO_BROWSER_SERVERS_FOUND" },
1223    { ERROR_INVALID_PIXEL_FORMAT,  "ERROR_INVALID_PIXEL_FORMAT" },
1224    { ERROR_BAD_DRIVER,    "ERROR_BAD_DRIVER" },
1225    { ERROR_INVALID_WINDOW_STYLE,  "ERROR_INVALID_WINDOW_STYLE" },
1226    { ERROR_METAFILE_NOT_SUPPORTED,    "ERROR_METAFILE_NOT_SUPPORTED" },
1227    { ERROR_TRANSFORM_NOT_SUPPORTED,   "ERROR_TRANSFORM_NOT_SUPPORTED" },
1228    { ERROR_CLIPPING_NOT_SUPPORTED,    "ERROR_CLIPPING_NOT_SUPPORTED" },
1229    { ERROR_UNKNOWN_PRINT_MONITOR, "ERROR_UNKNOWN_PRINT_MONITOR" },
1230    { ERROR_PRINTER_DRIVER_IN_USE, "ERROR_PRINTER_DRIVER_IN_USE" },
1231    { ERROR_SPOOL_FILE_NOT_FOUND,  "ERROR_SPOOL_FILE_NOT_FOUND" },
1232    { ERROR_SPL_NO_STARTDOC,   "ERROR_SPL_NO_STARTDOC" },
1233    { ERROR_SPL_NO_ADDJOB, "ERROR_SPL_NO_ADDJOB" },
1234    { ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED, "ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED" },
1235    { ERROR_PRINT_MONITOR_ALREADY_INSTALLED,   "ERROR_PRINT_MONITOR_ALREADY_INSTALLED" },
1236#ifdef ERROR_INVALID_PRINT_MONITOR
1237    { ERROR_INVALID_PRINT_MONITOR, "ERROR_INVALID_PRINT_MONITOR" },
1238#endif
1239#ifdef ERROR_PRINT_MONITOR_IN_USE
1240    { ERROR_PRINT_MONITOR_IN_USE,  "ERROR_PRINT_MONITOR_IN_USE" },
1241#endif
1242#ifdef ERROR_PRINTER_HAS_JOBS_QUEUED
1243    { ERROR_PRINTER_HAS_JOBS_QUEUED,   "ERROR_PRINTER_HAS_JOBS_QUEUED" },
1244#endif
1245#ifdef ERROR_SUCCESS_REBOOT_REQUIRED
1246    { ERROR_SUCCESS_REBOOT_REQUIRED,   "ERROR_SUCCESS_REBOOT_REQUIRED" },
1247#endif
1248#ifdef ERROR_SUCCESS_RESTART_REQUIRED
1249    { ERROR_SUCCESS_RESTART_REQUIRED,  "ERROR_SUCCESS_RESTART_REQUIRED" },
1250#endif
1251    { ERROR_WINS_INTERNAL, "ERROR_WINS_INTERNAL" },
1252    { ERROR_CAN_NOT_DEL_LOCAL_WINS,    "ERROR_CAN_NOT_DEL_LOCAL_WINS" },
1253    { ERROR_STATIC_INIT,   "ERROR_STATIC_INIT" },
1254    { ERROR_INC_BACKUP,    "ERROR_INC_BACKUP" },
1255    { ERROR_FULL_BACKUP,   "ERROR_FULL_BACKUP" },
1256    { ERROR_REC_NON_EXISTENT,  "ERROR_REC_NON_EXISTENT" },
1257    { ERROR_RPL_NOT_ALLOWED,   "ERROR_RPL_NOT_ALLOWED" },
1258    { WSAEINTR,    "WSAEINTR" },
1259    { WSAEBADF,    "WSAEBADF" },
1260    { WSAEACCES,   "WSAEACCES" },
1261    { WSAEFAULT,   "WSAEFAULT" },
1262    { WSAEINVAL,   "WSAEINVAL" },
1263    { WSAEMFILE,   "WSAEMFILE" },
1264    { WSAEWOULDBLOCK,  "WSAEWOULDBLOCK" },
1265    { WSAEINPROGRESS,  "WSAEINPROGRESS" },
1266    { WSAEALREADY, "WSAEALREADY" },
1267    { WSAENOTSOCK, "WSAENOTSOCK" },
1268    { WSAEDESTADDRREQ, "WSAEDESTADDRREQ" },
1269    { WSAEMSGSIZE, "WSAEMSGSIZE" },
1270    { WSAEPROTOTYPE,   "WSAEPROTOTYPE" },
1271    { WSAENOPROTOOPT,  "WSAENOPROTOOPT" },
1272    { WSAEPROTONOSUPPORT,  "WSAEPROTONOSUPPORT" },
1273    { WSAESOCKTNOSUPPORT,  "WSAESOCKTNOSUPPORT" },
1274    { WSAEOPNOTSUPP,   "WSAEOPNOTSUPP" },
1275    { WSAEPFNOSUPPORT, "WSAEPFNOSUPPORT" },
1276    { WSAEAFNOSUPPORT, "WSAEAFNOSUPPORT" },
1277    { WSAEADDRINUSE,   "WSAEADDRINUSE" },
1278    { WSAEADDRNOTAVAIL,    "WSAEADDRNOTAVAIL" },
1279    { WSAENETDOWN, "WSAENETDOWN" },
1280    { WSAENETUNREACH,  "WSAENETUNREACH" },
1281    { WSAENETRESET,    "WSAENETRESET" },
1282    { WSAECONNABORTED, "WSAECONNABORTED" },
1283    { WSAECONNRESET,   "WSAECONNRESET" },
1284    { WSAENOBUFS,  "WSAENOBUFS" },
1285    { WSAEISCONN,  "WSAEISCONN" },
1286    { WSAENOTCONN, "WSAENOTCONN" },
1287    { WSAESHUTDOWN,    "WSAESHUTDOWN" },
1288    { WSAETOOMANYREFS, "WSAETOOMANYREFS" },
1289    { WSAETIMEDOUT,    "WSAETIMEDOUT" },
1290    { WSAECONNREFUSED, "WSAECONNREFUSED" },
1291    { WSAELOOP,    "WSAELOOP" },
1292    { WSAENAMETOOLONG, "WSAENAMETOOLONG" },
1293    { WSAEHOSTDOWN,    "WSAEHOSTDOWN" },
1294    { WSAEHOSTUNREACH, "WSAEHOSTUNREACH" },
1295    { WSAENOTEMPTY,    "WSAENOTEMPTY" },
1296    { WSAEPROCLIM, "WSAEPROCLIM" },
1297    { WSAEUSERS,   "WSAEUSERS" },
1298    { WSAEDQUOT,   "WSAEDQUOT" },
1299    { WSAESTALE,   "WSAESTALE" },
1300    { WSAEREMOTE,  "WSAEREMOTE" },
1301    { WSAEDISCON,  "WSAEDISCON" },
1302    { WSASYSNOTREADY,  "WSASYSNOTREADY" },
1303    { WSAVERNOTSUPPORTED,  "WSAVERNOTSUPPORTED" },
1304    { WSANOTINITIALISED,   "WSANOTINITIALISED" },
1305    { WSAHOST_NOT_FOUND,   "WSAHOST_NOT_FOUND" },
1306    { WSATRY_AGAIN,    "WSATRY_AGAIN" },
1307    { WSANO_RECOVERY,  "WSANO_RECOVERY" },
1308    { WSANO_DATA,  "WSANO_DATA" },
1309#endif
1310};
1311
1312const char *stringFromErrorCode(int err)
1313{
1314    for (unsigned i = 0; i < sizeof(errortable)/sizeof(errortable[0]); i++)
1315    {
1316        if (errortable[i].errorNum == err) {
1317            return errortable[i].errorString;
1318        }
1319    }
1320    return 0;
1321}
1322
1323bool errorCodeFromString(const char *text, int *err)
1324{
1325    for (unsigned i = 0; i < sizeof(errortable)/sizeof(errortable[0]); i++)
1326    {
1327        if (strcmp(text, errortable[i].errorString) == 0)
1328        {
1329            *err = errortable[i].errorNum;
1330            return true;
1331        }
1332    }
1333    return false;
1334}
1335