/*
 * NTDLL error handling
 * 
 * Copyright 2000 Alexandre Julliard
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "config.h"
#include "ntddk.h"
#include "winerror.h"
#include "wine/debug.h"

WINE_DEFAULT_DEBUG_CHANNEL(ntdll);

struct error_table
{
    DWORD       start;
    DWORD       end;
    const WORD *table;
};

static const struct error_table error_table[];

/**************************************************************************
 *           RtlNtStatusToDosError (NTDLL.@)
 */
DWORD WINAPI RtlNtStatusToDosError( DWORD status )
{
    const struct error_table *table = error_table;

    if (!status || (status & 0x20000000)) return status;

    /* 0xd... is equivalent to 0xc... */
    if ((status & 0xf0000000) == 0xd0000000) status &= ~0x10000000;

    while (table->start)
    {
        if (status < table->start) break;
        if (status < table->end)
        {
            DWORD ret = table->table[status - table->start];
            if (!ret) ret = status;  /* 0 means 1:1 mapping */
            else if (ret == ERROR_MR_MID_NOT_FOUND) FIXME( "no mapping for %08lx\n", status );
            return ret;
        }
        table++;
    }

    /* now some special cases */
    if (HIWORD(status) == 0xc001) return LOWORD(status);
    if (HIWORD(status) == 0x8007) return LOWORD(status);
    FIXME( "no mapping for %08lx\n", status );
    return ERROR_MR_MID_NOT_FOUND;
}


/* conversion tables */

static const WORD table_00000103[11] =
{
   ERROR_IO_PENDING,                       /* 00000103 (STATUS_PENDING) */
   ERROR_MR_MID_NOT_FOUND,                 /* 00000104 */
   ERROR_MORE_DATA,                        /* 00000105 */
   ERROR_NOT_ALL_ASSIGNED,                 /* 00000106 */
   ERROR_SOME_NOT_MAPPED,                  /* 00000107 */
   ERROR_MR_MID_NOT_FOUND,                 /* 00000108 */
   ERROR_MR_MID_NOT_FOUND,                 /* 00000109 */
   ERROR_MR_MID_NOT_FOUND,                 /* 0000010a */
   ERROR_MR_MID_NOT_FOUND,                 /* 0000010b */
   ERROR_NOTIFY_ENUM_DIR,                  /* 0000010c */
   ERROR_NO_QUOTAS_FOR_ACCOUNT             /* 0000010d */
};

static const WORD table_40000002[12] =
{
   ERROR_INVALID_PARAMETER,                /* 40000002 */
   ERROR_MR_MID_NOT_FOUND,                 /* 40000003 */
   ERROR_MR_MID_NOT_FOUND,                 /* 40000004 */
   ERROR_MR_MID_NOT_FOUND,                 /* 40000005 */
   ERROR_LOCAL_USER_SESSION_KEY,           /* 40000006 */
   ERROR_MR_MID_NOT_FOUND,                 /* 40000007 */
   ERROR_MORE_WRITES,                      /* 40000008 */
   ERROR_REGISTRY_RECOVERED,               /* 40000009 */
   ERROR_MR_MID_NOT_FOUND,                 /* 4000000a */
   ERROR_MR_MID_NOT_FOUND,                 /* 4000000b */
   ERROR_COUNTER_TIMEOUT,                  /* 4000000c */
   ERROR_NULL_LM_PASSWORD                  /* 4000000d */
};

static const WORD table_40020056[1] =
{
   RPC_S_UUID_LOCAL_ONLY                   /* 40020056 */
};

static const WORD table_400200af[1] =
{
   RPC_S_SEND_INCOMPLETE                   /* 400200af */
};

static const WORD table_80000001[37] =
{
   0,                                      /* 80000001 (STATUS_GUARD_PAGE_VIOLATION) */
   ERROR_NOACCESS,                         /* 80000002 (STATUS_DATATYPE_MISALIGNMENT) */
   0,                                      /* 80000003 (STATUS_BREAKPOINT) */
   0,                                      /* 80000004 (STATUS_SINGLE_STEP) */
   ERROR_MORE_DATA,                        /* 80000005 (STATUS_BUFFER_OVERFLOW) */
   ERROR_NO_MORE_FILES,                    /* 80000006 (STATUS_NO_MORE_FILES) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000007 (STATUS_WAKE_SYSTEM_DEBUGGER) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000008 */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000009 */
   ERROR_MR_MID_NOT_FOUND,                 /* 8000000a (STATUS_HANDLES_CLOSED) */
   ERROR_NO_INHERITANCE,                   /* 8000000b (STATUS_NO_INHERITANCE) */
   ERROR_MR_MID_NOT_FOUND,                 /* 8000000c (STATUS_GUID_SUBSTITUTION_MADE) */
   ERROR_PARTIAL_COPY,                     /* 8000000d (STATUS_PARTIAL_COPY) */
   ERROR_OUT_OF_PAPER,                     /* 8000000e (STATUS_DEVICE_PAPER_EMPTY) */
   ERROR_NOT_READY,                        /* 8000000f (STATUS_DEVICE_POWERED_OFF) */
   ERROR_NOT_READY,                        /* 80000010 (STATUS_DEVICE_OFF_LINE) */
   ERROR_BUSY,                             /* 80000011 (STATUS_DEVICE_BUSY) */
   ERROR_NO_MORE_ITEMS,                    /* 80000012 (STATUS_NO_MORE_EAS) */
   ERROR_INVALID_EA_NAME,                  /* 80000013 (STATUS_INVALID_EA_NAME) */
   ERROR_EA_LIST_INCONSISTENT,             /* 80000014 (STATUS_EA_LIST_INCONSISTENT) */
   ERROR_EA_LIST_INCONSISTENT,             /* 80000015 (STATUS_INVALID_EA_FLAG) */
   ERROR_MEDIA_CHANGED,                    /* 80000016 (STATUS_VERIFY_REQUIRED) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000017 (STATUS_EXTRANEOUS_INFORMATION) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000018 (STATUS_RXACT_COMMIT_NECESSARY) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000019 */
   ERROR_NO_MORE_ITEMS,                    /* 8000001a (STATUS_NO_MORE_ENTRIES) */
   ERROR_FILEMARK_DETECTED,                /* 8000001b (STATUS_FILEMARK_DETECTED) */
   ERROR_MEDIA_CHANGED,                    /* 8000001c (STATUS_MEDIA_CHANGED) */
   ERROR_BUS_RESET,                        /* 8000001d (STATUS_BUS_RESET) */
   ERROR_END_OF_MEDIA,                     /* 8000001e (STATUS_END_OF_MEDIA) */
   ERROR_BEGINNING_OF_MEDIA,               /* 8000001f (STATUS_BEGINNING_OF_MEDIA) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000020 (STATUS_MEDIA_CHECK) */
   ERROR_SETMARK_DETECTED,                 /* 80000021 (STATUS_SETMARK_DETECTED) */
   ERROR_NO_DATA_DETECTED,                 /* 80000022 (STATUS_NO_DATA_DETECTED) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000023 (STATUS_REDIRECTOR_HAS_OPEN_HANDLES) */
   ERROR_MR_MID_NOT_FOUND,                 /* 80000024 (STATUS_SERVER_HAS_OPEN_HANDLES) */
   ERROR_ACTIVE_CONNECTIONS                /* 80000025 (STATUS_ALREADY_DISCONNECTED) */
};

static const WORD table_80090300[23] =
{
   ERROR_NO_SYSTEM_RESOURCES,              /* 80090300 */
   ERROR_INVALID_HANDLE,                   /* 80090301 */
   ERROR_INVALID_FUNCTION,                 /* 80090302 */
   ERROR_BAD_NETPATH,                      /* 80090303 */
   ERROR_INTERNAL_ERROR,                   /* 80090304 */
   ERROR_NO_SUCH_PACKAGE,                  /* 80090305 */
   ERROR_NOT_OWNER,                        /* 80090306 */
   ERROR_NO_SUCH_PACKAGE,                  /* 80090307 */
   ERROR_INVALID_PARAMETER,                /* 80090308 */
   ERROR_INVALID_PARAMETER,                /* 80090309 */
   ERROR_NOT_SUPPORTED,                    /* 8009030a */
   ERROR_CANNOT_IMPERSONATE,               /* 8009030b */
   ERROR_LOGON_FAILURE,                    /* 8009030c */
   ERROR_INVALID_PARAMETER,                /* 8009030d */
   ERROR_NO_SUCH_LOGON_SESSION,            /* 8009030e */
   ERROR_ACCESS_DENIED,                    /* 8009030f */
   ERROR_ACCESS_DENIED,                    /* 80090310 */
   ERROR_NO_LOGON_SERVERS,                 /* 80090311 */
   ERROR_MR_MID_NOT_FOUND,                 /* 80090312 */
   ERROR_MR_MID_NOT_FOUND,                 /* 80090313 */
   ERROR_MR_MID_NOT_FOUND,                 /* 80090314 */
   ERROR_MR_MID_NOT_FOUND,                 /* 80090315 */
   ERROR_NO_SUCH_PACKAGE                   /* 80090316 */
};

static const WORD table_c0000001[411] =
{
   ERROR_GEN_FAILURE,                      /* c0000001 (STATUS_UNSUCCESSFUL) */
   ERROR_INVALID_FUNCTION,                 /* c0000002 (STATUS_NOT_IMPLEMENTED) */
   ERROR_INVALID_PARAMETER,                /* c0000003 (STATUS_INVALID_INFO_CLASS) */
   ERROR_BAD_LENGTH,                       /* c0000004 (STATUS_INFO_LENGTH_MISMATCH) */
   ERROR_NOACCESS,                         /* c0000005 (STATUS_ACCESS_VIOLATION) */
   ERROR_SWAPERROR,                        /* c0000006 (STATUS_IN_PAGE_ERROR) */
   ERROR_PAGEFILE_QUOTA,                   /* c0000007 (STATUS_PAGEFILE_QUOTA) */
   ERROR_INVALID_HANDLE,                   /* c0000008 (STATUS_INVALID_HANDLE) */
   ERROR_STACK_OVERFLOW,                   /* c0000009 (STATUS_BAD_INITIAL_STACK) */
   ERROR_BAD_EXE_FORMAT,                   /* c000000a (STATUS_BAD_INITIAL_PC) */
   ERROR_INVALID_PARAMETER,                /* c000000b (STATUS_INVALID_CID) */
   ERROR_MR_MID_NOT_FOUND,                 /* c000000c (STATUS_TIMER_NOT_CANCELED) */
   ERROR_INVALID_PARAMETER,                /* c000000d (STATUS_INVALID_PARAMETER) */
   ERROR_FILE_NOT_FOUND,                   /* c000000e (STATUS_NO_SUCH_DEVICE) */
   ERROR_FILE_NOT_FOUND,                   /* c000000f (STATUS_NO_SUCH_FILE) */
   ERROR_INVALID_FUNCTION,                 /* c0000010 (STATUS_INVALID_DEVICE_REQUEST) */
   ERROR_HANDLE_EOF,                       /* c0000011 (STATUS_END_OF_FILE) */
   ERROR_WRONG_DISK,                       /* c0000012 (STATUS_WRONG_VOLUME) */
   ERROR_NOT_READY,                        /* c0000013 (STATUS_NO_MEDIA_IN_DEVICE) */
   ERROR_UNRECOGNIZED_MEDIA,               /* c0000014 (STATUS_UNRECOGNIZED_MEDIA) */
   ERROR_SECTOR_NOT_FOUND,                 /* c0000015 (STATUS_NONEXISTENT_SECTOR) */
   ERROR_MORE_DATA,                        /* c0000016 (STATUS_MORE_PROCESSING_REQUIRED) */
   ERROR_NOT_ENOUGH_MEMORY,                /* c0000017 (STATUS_NO_MEMORY) */
   ERROR_INVALID_ADDRESS,                  /* c0000018 (STATUS_CONFLICTING_ADDRESSES) */
   ERROR_INVALID_ADDRESS,                  /* c0000019 (STATUS_NOT_MAPPED_VIEW) */
   ERROR_INVALID_PARAMETER,                /* c000001a (STATUS_UNABLE_TO_FREE_VM) */
   ERROR_INVALID_PARAMETER,                /* c000001b (STATUS_UNABLE_TO_DELETE_SECTION) */
   ERROR_INVALID_FUNCTION,                 /* c000001c (STATUS_INVALID_SYSTEM_SERVICE) */
   0,                                      /* c000001d (STATUS_ILLEGAL_INSTRUCTION) */
   ERROR_ACCESS_DENIED,                    /* c000001e (STATUS_INVALID_LOCK_SEQUENCE) */
   ERROR_ACCESS_DENIED,                    /* c000001f (STATUS_INVALID_VIEW_SIZE) */
   ERROR_BAD_EXE_FORMAT,                   /* c0000020 (STATUS_INVALID_FILE_FOR_SECTION) */
   ERROR_ACCESS_DENIED,                    /* c0000021 (STATUS_ALREADY_COMMITTED) */
   ERROR_ACCESS_DENIED,                    /* c0000022 (STATUS_ACCESS_DENIED) */
   ERROR_INSUFFICIENT_BUFFER,              /* c0000023 (STATUS_BUFFER_TOO_SMALL) */
   ERROR_INVALID_HANDLE,                   /* c0000024 (STATUS_OBJECT_TYPE_MISMATCH) */
   0,                                      /* c0000025 (STATUS_NONCONTINUABLE_EXCEPTION) */
   0,                                      /* c0000026 (STATUS_INVALID_DISPOSITION) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000027 (STATUS_UNWIND) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000028 (STATUS_BAD_STACK) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000029 (STATUS_INVALID_UNWIND_TARGET) */
   ERROR_NOT_LOCKED,                       /* c000002a (STATUS_NOT_LOCKED) */
   0,                                      /* c000002b (STATUS_PARITY_ERROR) */
   ERROR_INVALID_ADDRESS,                  /* c000002c (STATUS_UNABLE_TO_DECOMMIT_VM) */
   ERROR_INVALID_ADDRESS,                  /* c000002d (STATUS_NOT_COMMITTED) */
   ERROR_MR_MID_NOT_FOUND,                 /* c000002e (STATUS_INVALID_PORT_ATTRIBUTES) */
   ERROR_MR_MID_NOT_FOUND,                 /* c000002f (STATUS_PORT_MESSAGE_TOO_LONG) */
   ERROR_INVALID_PARAMETER,                /* c0000030 (STATUS_INVALID_PARAMETER_MIX) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000031 (STATUS_INVALID_QUOTA_LOWER) */
   ERROR_DISK_CORRUPT,                     /* c0000032 (STATUS_DISK_CORRUPT_ERROR) */
   ERROR_INVALID_NAME,                     /* c0000033 (STATUS_OBJECT_NAME_INVALID) */
   ERROR_FILE_NOT_FOUND,                   /* c0000034 (STATUS_OBJECT_NAME_NOT_FOUND) */
   ERROR_ALREADY_EXISTS,                   /* c0000035 (STATUS_OBJECT_NAME_COLLISION) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000036 */
   ERROR_INVALID_HANDLE,                   /* c0000037 (STATUS_PORT_DISCONNECTED) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000038 (STATUS_DEVICE_ALREADY_ATTACHED) */
   ERROR_BAD_PATHNAME,                     /* c0000039 (STATUS_OBJECT_PATH_INVALID) */
   ERROR_PATH_NOT_FOUND,                   /* c000003a (STATUS_OBJECT_PATH_NOT_FOUND) */
   ERROR_BAD_PATHNAME,                     /* c000003b (STATUS_PATH_SYNTAX_BAD) */
   ERROR_IO_DEVICE,                        /* c000003c (STATUS_DATA_OVERRUN) */
   ERROR_IO_DEVICE,                        /* c000003d (STATUS_DATA_LATE_ERROR) */
   ERROR_CRC,                              /* c000003e (STATUS_DATA_ERROR) */
   ERROR_CRC,                              /* c000003f (STATUS_CRC_ERROR) */
   ERROR_NOT_ENOUGH_MEMORY,                /* c0000040 (STATUS_SECTION_TOO_BIG) */
   ERROR_ACCESS_DENIED,                    /* c0000041 (STATUS_PORT_CONNECTION_REFUSED) */
   ERROR_INVALID_HANDLE,                   /* c0000042 (STATUS_INVALID_PORT_HANDLE) */
   ERROR_SHARING_VIOLATION,                /* c0000043 (STATUS_SHARING_VIOLATION) */
   ERROR_NOT_ENOUGH_QUOTA,                 /* c0000044 (STATUS_QUOTA_EXCEEDED) */
   ERROR_INVALID_PARAMETER,                /* c0000045 (STATUS_INVALID_PAGE_PROTECTION) */
   ERROR_NOT_OWNER,                        /* c0000046 (STATUS_MUTANT_NOT_OWNED) */
   ERROR_TOO_MANY_POSTS,                   /* c0000047 (STATUS_SEMAPHORE_LIMIT_EXCEEDED) */
   ERROR_INVALID_PARAMETER,                /* c0000048 (STATUS_PORT_ALREADY_SET) */
   ERROR_INVALID_PARAMETER,                /* c0000049 */
   ERROR_SIGNAL_REFUSED,                   /* c000004a (STATUS_SUSPEND_COUNT_EXCEEDED) */
   ERROR_ACCESS_DENIED,                    /* c000004b */
   ERROR_INVALID_PARAMETER,                /* c000004c */
   ERROR_INVALID_PARAMETER,                /* c000004d */
   ERROR_INVALID_PARAMETER,                /* c000004e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000004f */
   ERROR_EA_LIST_INCONSISTENT,             /* c0000050 */
   ERROR_FILE_CORRUPT,                     /* c0000051 */
   ERROR_FILE_CORRUPT,                     /* c0000052 */
   ERROR_FILE_CORRUPT,                     /* c0000053 */
   ERROR_LOCK_VIOLATION,                   /* c0000054 (STATUS_LOCK_NOT_GRANTED) */
   ERROR_LOCK_VIOLATION,                   /* c0000055 (STATUS_FILE_LOCK_CONFLICT) */
   ERROR_ACCESS_DENIED,                    /* c0000056 */
   ERROR_NOT_SUPPORTED,                    /* c0000057 */
   ERROR_UNKNOWN_REVISION,                 /* c0000058 (STATUS_UNKNOWN_REVISION) */
   ERROR_REVISION_MISMATCH,                /* c0000059 */
   ERROR_INVALID_OWNER,                    /* c000005a */
   ERROR_INVALID_PRIMARY_GROUP,            /* c000005b */
   ERROR_NO_IMPERSONATION_TOKEN,           /* c000005c */
   ERROR_CANT_DISABLE_MANDATORY,           /* c000005d */
   ERROR_NO_LOGON_SERVERS,                 /* c000005e */
   ERROR_NO_SUCH_LOGON_SESSION,            /* c000005f */
   ERROR_NO_SUCH_PRIVILEGE,                /* c0000060 */
   ERROR_PRIVILEGE_NOT_HELD,               /* c0000061 */
   ERROR_INVALID_ACCOUNT_NAME,             /* c0000062 */
   ERROR_USER_EXISTS,                      /* c0000063 */
   ERROR_NO_SUCH_USER,                     /* c0000064 */
   ERROR_GROUP_EXISTS,                     /* c0000065 */
   ERROR_NO_SUCH_GROUP,                    /* c0000066 */
   ERROR_MEMBER_IN_GROUP,                  /* c0000067 */
   ERROR_MEMBER_NOT_IN_GROUP,              /* c0000068 */
   ERROR_LAST_ADMIN,                       /* c0000069 */
   ERROR_INVALID_PASSWORD,                 /* c000006a */
   ERROR_ILL_FORMED_PASSWORD,              /* c000006b */
   ERROR_PASSWORD_RESTRICTION,             /* c000006c */
   ERROR_LOGON_FAILURE,                    /* c000006d */
   ERROR_ACCOUNT_RESTRICTION,              /* c000006e */
   ERROR_INVALID_LOGON_HOURS,              /* c000006f */
   ERROR_INVALID_WORKSTATION,              /* c0000070 */
   ERROR_PASSWORD_EXPIRED,                 /* c0000071 */
   ERROR_ACCOUNT_DISABLED,                 /* c0000072 */
   ERROR_NONE_MAPPED,                      /* c0000073 */
   ERROR_TOO_MANY_LUIDS_REQUESTED,         /* c0000074 */
   ERROR_LUIDS_EXHAUSTED,                  /* c0000075 */
   ERROR_INVALID_SUB_AUTHORITY,            /* c0000076 */
   ERROR_INVALID_ACL,                      /* c0000077 */
   ERROR_INVALID_SID,                      /* c0000078 */
   ERROR_INVALID_SECURITY_DESCR,           /* c0000079 (STATUS_INVALID_SECURITY_DESCR) */
   ERROR_PROC_NOT_FOUND,                   /* c000007a */
   ERROR_BAD_EXE_FORMAT,                   /* c000007b */
   ERROR_NO_TOKEN,                         /* c000007c */
   ERROR_BAD_INHERITANCE_ACL,              /* c000007d */
   ERROR_NOT_LOCKED,                       /* c000007e */
   ERROR_DISK_FULL,                        /* c000007f (STATUS_DISK_FULL) */
   ERROR_SERVER_DISABLED,                  /* c0000080 */
   ERROR_SERVER_NOT_DISABLED,              /* c0000081 */
   ERROR_TOO_MANY_NAMES,                   /* c0000082 */
   ERROR_NO_MORE_ITEMS,                    /* c0000083 */
   ERROR_INVALID_ID_AUTHORITY,             /* c0000084 */
   ERROR_NO_MORE_ITEMS,                    /* c0000085 */
   ERROR_LABEL_TOO_LONG,                   /* c0000086 */
   ERROR_OUTOFMEMORY,                      /* c0000087 (STATUS_SECTION_NOT_EXTENDED) */
   ERROR_INVALID_ADDRESS,                  /* c0000088 */
   ERROR_RESOURCE_DATA_NOT_FOUND,          /* c0000089 */
   ERROR_RESOURCE_TYPE_NOT_FOUND,          /* c000008a */
   ERROR_RESOURCE_NAME_NOT_FOUND,          /* c000008b */
   0,                                      /* c000008c (STATUS_ARRAY_BOUNDS_EXCEEDED) */
   0,                                      /* c000008d (STATUS_FLOAT_DENORMAL_OPERAND) */
   0,                                      /* c000008e (STATUS_FLOAT_DIVIDE_BY_ZERO) */
   0,                                      /* c000008f (STATUS_FLOAT_INEXACT_RESULT) */
   0,                                      /* c0000090 (STATUS_FLOAT_INVALID_OPERATION) */
   0,                                      /* c0000091 (STATUS_FLOAT_OVERFLOW) */
   0,                                      /* c0000092 (STATUS_FLOAT_STACK_CHECK) */
   0,                                      /* c0000093 (STATUS_FLOAT_UNDERFLOW) */
   0,                                      /* c0000094 (STATUS_INTEGER_DIVIDE_BY_ZERO) */
   ERROR_ARITHMETIC_OVERFLOW,              /* c0000095 (STATUS_INTEGER_OVERFLOW) */
   0,                                      /* c0000096 (STATUS_PRIVILEGED_INSTRUCTION) */
   ERROR_NOT_ENOUGH_MEMORY,                /* c0000097 */
   ERROR_FILE_INVALID,                     /* c0000098 */
   ERROR_ALLOTTED_SPACE_EXCEEDED,          /* c0000099 */
   ERROR_NO_SYSTEM_RESOURCES,              /* c000009a */
   ERROR_PATH_NOT_FOUND,                   /* c000009b */
   ERROR_CRC,                              /* c000009c */
   ERROR_NOT_READY,                        /* c000009d */
   ERROR_NOT_READY,                        /* c000009e */
   ERROR_INVALID_ADDRESS,                  /* c000009f */
   ERROR_INVALID_ADDRESS,                  /* c00000a0 */
   ERROR_WORKING_SET_QUOTA,                /* c00000a1 */
   ERROR_WRITE_PROTECT,                    /* c00000a2 */
   ERROR_NOT_READY,                        /* c00000a3 */
   ERROR_INVALID_GROUP_ATTRIBUTES,         /* c00000a4 */
   ERROR_BAD_IMPERSONATION_LEVEL,          /* c00000a5 */
   ERROR_CANT_OPEN_ANONYMOUS,              /* c00000a6 */
   ERROR_BAD_VALIDATION_CLASS,             /* c00000a7 */
   ERROR_BAD_TOKEN_TYPE,                   /* c00000a8 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000a9 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000aa */
   ERROR_PIPE_BUSY,                        /* c00000ab */
   ERROR_PIPE_BUSY,                        /* c00000ac */
   ERROR_BAD_PIPE,                         /* c00000ad */
   ERROR_PIPE_BUSY,                        /* c00000ae */
   ERROR_INVALID_FUNCTION,                 /* c00000af */
   ERROR_PIPE_NOT_CONNECTED,               /* c00000b0 */
   ERROR_NO_DATA,                          /* c00000b1 */
   ERROR_PIPE_CONNECTED,                   /* c00000b2 */
   ERROR_PIPE_LISTENING,                   /* c00000b3 */
   ERROR_BAD_PIPE,                         /* c00000b4 */
   ERROR_SEM_TIMEOUT,                      /* c00000b5 */
   ERROR_HANDLE_EOF,                       /* c00000b6 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000b7 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000b8 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000b9 */
   ERROR_ACCESS_DENIED,                    /* c00000ba */
   ERROR_NOT_SUPPORTED,                    /* c00000bb */
   ERROR_REM_NOT_LIST,                     /* c00000bc */
   ERROR_DUP_NAME,                         /* c00000bd */
   ERROR_BAD_NETPATH,                      /* c00000be */
   ERROR_NETWORK_BUSY,                     /* c00000bf */
   ERROR_DEV_NOT_EXIST,                    /* c00000c0 */
   ERROR_TOO_MANY_CMDS,                    /* c00000c1 */
   ERROR_ADAP_HDW_ERR,                     /* c00000c2 */
   ERROR_BAD_NET_RESP,                     /* c00000c3 */
   ERROR_UNEXP_NET_ERR,                    /* c00000c4 */
   ERROR_BAD_REM_ADAP,                     /* c00000c5 */
   ERROR_PRINTQ_FULL,                      /* c00000c6 */
   ERROR_NO_SPOOL_SPACE,                   /* c00000c7 */
   ERROR_PRINT_CANCELLED,                  /* c00000c8 */
   ERROR_NETNAME_DELETED,                  /* c00000c9 */
   ERROR_NETWORK_ACCESS_DENIED,            /* c00000ca */
   ERROR_BAD_DEV_TYPE,                     /* c00000cb */
   ERROR_BAD_NET_NAME,                     /* c00000cc */
   ERROR_TOO_MANY_NAMES,                   /* c00000cd */
   ERROR_TOO_MANY_SESS,                    /* c00000ce */
   ERROR_SHARING_PAUSED,                   /* c00000cf */
   ERROR_REQ_NOT_ACCEP,                    /* c00000d0 */
   ERROR_REDIR_PAUSED,                     /* c00000d1 */
   ERROR_NET_WRITE_FAULT,                  /* c00000d2 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000d3 */
   ERROR_NOT_SAME_DEVICE,                  /* c00000d4 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000d5 */
   ERROR_VC_DISCONNECTED,                  /* c00000d6 */
   ERROR_NO_SECURITY_ON_OBJECT,            /* c00000d7 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000d8 */
   ERROR_NO_DATA,                          /* c00000d9 */
   ERROR_CANT_ACCESS_DOMAIN_INFO,          /* c00000da */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000db */
   ERROR_INVALID_SERVER_STATE,             /* c00000dc */
   ERROR_INVALID_DOMAIN_STATE,             /* c00000dd */
   ERROR_INVALID_DOMAIN_ROLE,              /* c00000de */
   ERROR_NO_SUCH_DOMAIN,                   /* c00000df */
   ERROR_DOMAIN_EXISTS,                    /* c00000e0 */
   ERROR_DOMAIN_LIMIT_EXCEEDED,            /* c00000e1 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000e2 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000e3 */
   ERROR_INTERNAL_DB_CORRUPTION,           /* c00000e4 */
   ERROR_INTERNAL_ERROR,                   /* c00000e5 */
   ERROR_GENERIC_NOT_MAPPED,               /* c00000e6 */
   ERROR_BAD_DESCRIPTOR_FORMAT,            /* c00000e7 */
   ERROR_INVALID_USER_BUFFER,              /* c00000e8 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000e9 */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000ea */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000eb */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000ec */
   ERROR_NOT_LOGON_PROCESS,                /* c00000ed */
   ERROR_LOGON_SESSION_EXISTS,             /* c00000ee */
   ERROR_INVALID_PARAMETER,                /* c00000ef */
   ERROR_INVALID_PARAMETER,                /* c00000f0 (STATUS_INVALID_PARAMETER_2) */
   ERROR_INVALID_PARAMETER,                /* c00000f1 */
   ERROR_INVALID_PARAMETER,                /* c00000f2 */
   ERROR_INVALID_PARAMETER,                /* c00000f3 */
   ERROR_INVALID_PARAMETER,                /* c00000f4 */
   ERROR_INVALID_PARAMETER,                /* c00000f5 */
   ERROR_INVALID_PARAMETER,                /* c00000f6 */
   ERROR_INVALID_PARAMETER,                /* c00000f7 */
   ERROR_INVALID_PARAMETER,                /* c00000f8 */
   ERROR_INVALID_PARAMETER,                /* c00000f9 */
   ERROR_INVALID_PARAMETER,                /* c00000fa */
   ERROR_PATH_NOT_FOUND,                   /* c00000fb */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000fc */
   ERROR_STACK_OVERFLOW,                   /* c00000fd (STATUS_STACK_OVERFLOW) */
   ERROR_NO_SUCH_PACKAGE,                  /* c00000fe */
   ERROR_MR_MID_NOT_FOUND,                 /* c00000ff */
   ERROR_ENVVAR_NOT_FOUND,                 /* c0000100 */
   ERROR_DIR_NOT_EMPTY,                    /* c0000101 (STATUS_DIRECTORY_NOT_EMPTY) */
   ERROR_FILE_CORRUPT,                     /* c0000102 */
   ERROR_DIRECTORY,                        /* c0000103 */
   ERROR_BAD_LOGON_SESSION_STATE,          /* c0000104 */
   ERROR_LOGON_SESSION_COLLISION,          /* c0000105 */
   ERROR_FILENAME_EXCED_RANGE,             /* c0000106 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000107 */
   ERROR_DEVICE_IN_USE,                    /* c0000108 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000109 */
   ERROR_ACCESS_DENIED,                    /* c000010a */
   ERROR_INVALID_LOGON_TYPE,               /* c000010b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000010c */
   ERROR_CANNOT_IMPERSONATE,               /* c000010d */
   ERROR_SERVICE_ALREADY_RUNNING,          /* c000010e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000010f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000110 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000111 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000112 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000113 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000114 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000115 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000116 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000117 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000118 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000119 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000011a */
   ERROR_BAD_EXE_FORMAT,                   /* c000011b */
   ERROR_RXACT_INVALID_STATE,              /* c000011c */
   ERROR_RXACT_COMMIT_FAILURE,             /* c000011d */
   ERROR_FILE_INVALID,                     /* c000011e */
   ERROR_TOO_MANY_OPEN_FILES,              /* c000011f (STATUS_TOO_MANY_OPENED_FILES) */
   ERROR_OPERATION_ABORTED,                /* c0000120 */
   ERROR_ACCESS_DENIED,                    /* c0000121 */
   ERROR_INVALID_COMPUTERNAME,             /* c0000122 */
   ERROR_ACCESS_DENIED,                    /* c0000123 */
   ERROR_SPECIAL_ACCOUNT,                  /* c0000124 */
   ERROR_SPECIAL_GROUP,                    /* c0000125 */
   ERROR_SPECIAL_USER,                     /* c0000126 */
   ERROR_MEMBERS_PRIMARY_GROUP,            /* c0000127 */
   ERROR_INVALID_HANDLE,                   /* c0000128 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000129 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000012a */
   ERROR_TOKEN_ALREADY_IN_USE,             /* c000012b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000012c */
   ERROR_COMMITMENT_LIMIT,                 /* c000012d */
   ERROR_BAD_EXE_FORMAT,                   /* c000012e */
   ERROR_BAD_EXE_FORMAT,                   /* c000012f */
   ERROR_BAD_EXE_FORMAT,                   /* c0000130 */
   ERROR_BAD_EXE_FORMAT,                   /* c0000131 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000132 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000133 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000134 */
   ERROR_MOD_NOT_FOUND,                    /* c0000135 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000136 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000137 */
   ERROR_INVALID_ORDINAL,                  /* c0000138 */
   ERROR_PROC_NOT_FOUND,                   /* c0000139 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000013a (STATUS_CONTROL_C_EXIT) */
   ERROR_NETNAME_DELETED,                  /* c000013b */
   ERROR_NETNAME_DELETED,                  /* c000013c */
   ERROR_REM_NOT_LIST,                     /* c000013d */
   ERROR_UNEXP_NET_ERR,                    /* c000013e */
   ERROR_UNEXP_NET_ERR,                    /* c000013f */
   ERROR_UNEXP_NET_ERR,                    /* c0000140 */
   ERROR_UNEXP_NET_ERR,                    /* c0000141 */
   ERROR_DLL_INIT_FAILED,                  /* c0000142 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000143 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000144 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000145 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000146 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000147 */
   ERROR_INVALID_LEVEL,                    /* c0000148 */
   ERROR_INVALID_PASSWORD,                 /* c0000149 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000014a */
   ERROR_BROKEN_PIPE,                      /* c000014b (STATUS_PIPE_BROKEN) */
   ERROR_BADDB,                            /* c000014c */
   ERROR_REGISTRY_IO_FAILED,               /* c000014d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000014e */
   ERROR_UNRECOGNIZED_VOLUME,              /* c000014f */
   ERROR_SERIAL_NO_DEVICE,                 /* c0000150 */
   ERROR_NO_SUCH_ALIAS,                    /* c0000151 */
   ERROR_MEMBER_NOT_IN_ALIAS,              /* c0000152 */
   ERROR_MEMBER_IN_ALIAS,                  /* c0000153 */
   ERROR_ALIAS_EXISTS,                     /* c0000154 */
   ERROR_LOGON_NOT_GRANTED,                /* c0000155 */
   ERROR_TOO_MANY_SECRETS,                 /* c0000156 */
   ERROR_SECRET_TOO_LONG,                  /* c0000157 */
   ERROR_INTERNAL_DB_ERROR,                /* c0000158 */
   ERROR_FULLSCREEN_MODE,                  /* c0000159 */
   ERROR_TOO_MANY_CONTEXT_IDS,             /* c000015a */
   ERROR_LOGON_TYPE_NOT_GRANTED,           /* c000015b */
   ERROR_NOT_REGISTRY_FILE,                /* c000015c (STATUS_NOT_REGISTRY_FILE) */
   ERROR_NT_CROSS_ENCRYPTION_REQUIRED,     /* c000015d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000015e */
   ERROR_IO_DEVICE,                        /* c000015f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000160 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000161 */
   ERROR_NO_UNICODE_TRANSLATION,           /* c0000162 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000163 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000164 */
   ERROR_FLOPPY_ID_MARK_NOT_FOUND,         /* c0000165 */
   ERROR_FLOPPY_WRONG_CYLINDER,            /* c0000166 */
   ERROR_FLOPPY_UNKNOWN_ERROR,             /* c0000167 */
   ERROR_FLOPPY_BAD_REGISTERS,             /* c0000168 */
   ERROR_DISK_RECALIBRATE_FAILED,          /* c0000169 */
   ERROR_DISK_OPERATION_FAILED,            /* c000016a */
   ERROR_DISK_RESET_FAILED,                /* c000016b */
   ERROR_IRQ_BUSY,                         /* c000016c */
   ERROR_IO_DEVICE,                        /* c000016d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000016e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000016f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000170 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000171 */
   ERROR_PARTITION_FAILURE,                /* c0000172 (STATUS_PARTITION_FAILURE) */
   ERROR_INVALID_BLOCK_LENGTH,             /* c0000173 (STATUS_INVALID_BLOCK_LENGTH) */
   ERROR_DEVICE_NOT_PARTITIONED,           /* c0000174 (STATUS_DEVICE_NOT_PARTITIONED) */
   ERROR_UNABLE_TO_LOCK_MEDIA,             /* c0000175 (STATUS_UNABLE_TO_LOCK_MEDIA) */
   ERROR_UNABLE_TO_UNLOAD_MEDIA,           /* c0000176 (STATUS_UNABLE_TO_UNLOAD_MEDIA) */
   ERROR_EOM_OVERFLOW,                     /* c0000177 (STATUS_EOM_OVERFLOW) */
   ERROR_NO_MEDIA_IN_DRIVE,                /* c0000178 (STATUS_NO_MEDIA) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000179 */
   ERROR_NO_SUCH_MEMBER,                   /* c000017a (STATUS_NO_SUCH_MEMBER) */
   ERROR_INVALID_MEMBER,                   /* c000017b (STATUS_INVALID_MEMBER) */
   ERROR_KEY_DELETED,                      /* c000017c (STATUS_KEY_DELETED) */
   ERROR_NO_LOG_SPACE,                     /* c000017d (STATUS_NO_LOG_SPACE) */
   ERROR_TOO_MANY_SIDS,                    /* c000017e (STATUS_TOO_MANY_SIDS) */
   ERROR_LM_CROSS_ENCRYPTION_REQUIRED,     /* c000017f (STATUS_LM_CROSS_ENCRYPTION_REQUIRED) */
   ERROR_KEY_HAS_CHILDREN,                 /* c0000180 (STATUS_KEY_HAS_CHILDREN) */
   ERROR_CHILD_MUST_BE_VOLATILE,           /* c0000181 (STATUS_CHILD_MUST_BE_VOLATILE) */
   ERROR_INVALID_PARAMETER,                /* c0000182 */
   ERROR_IO_DEVICE,                        /* c0000183 (STATUS_DRIVER_INTERNAL_ERROR) */
   ERROR_BAD_COMMAND,                      /* c0000184 (STATUS_INVALID_DEVICE_STATE) */
   ERROR_IO_DEVICE,                        /* c0000185 (STATUS_IO_DEVICE_ERROR) */
   ERROR_IO_DEVICE,                        /* c0000186 (STATUS_DEVICE_PROTOCOL_ERROR) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000187 (STATUS_BACKUP_CONTROLLER) */
   ERROR_LOG_FILE_FULL,                    /* c0000188 (STATUS_LOG_FILE_FULL) */
   ERROR_WRITE_PROTECT,                    /* c0000189 (STATUS_TOO_LATE) */
   ERROR_NO_TRUST_LSA_SECRET,              /* c000018a (STATUS_NO_TRUST_LSA_SECRET) */
   ERROR_NO_TRUST_SAM_ACCOUNT,             /* c000018b (STATUS_NO_TRUST_SAM_ACCOUNT) */
   ERROR_TRUSTED_DOMAIN_FAILURE,           /* c000018c (STATUS_TRUSTED_DOMAIN_FAILURE) */
   ERROR_TRUSTED_RELATIONSHIP_FAILURE,     /* c000018d (STATUS_TRUSTED_RELATIONSHIP_FAILURE) */
   ERROR_EVENTLOG_FILE_CORRUPT,            /* c000018e (STATUS_EVENTLOG_FILE_CORRUPT) */
   ERROR_EVENTLOG_CANT_START,              /* c000018f (STATUS_EVENTLOG_CANT_START) */
   ERROR_TRUST_FAILURE,                    /* c0000190 (STATUS_TRUST_FAILURE) */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000191 (STATUS_MUTANT_LIMIT_EXCEEDED) */
   ERROR_NETLOGON_NOT_STARTED,             /* c0000192 (STATUS_NETLOGON_NOT_STARTED) */
   ERROR_ACCOUNT_EXPIRED,                  /* c0000193 (STATUS_ACCOUNT_EXPIRED) */
   ERROR_POSSIBLE_DEADLOCK,                /* c0000194 (STATUS_POSSIBLE_DEADLOCK) */
   ERROR_SESSION_CREDENTIAL_CONFLICT,      /* c0000195 (STATUS_NETWORK_CREDENTIAL_CONFLICT) */
   ERROR_REMOTE_SESSION_LIMIT_EXCEEDED,    /* c0000196 (STATUS_REMOTE_SESSION_LIMIT) */
   ERROR_EVENTLOG_FILE_CHANGED,            /* c0000197 (STATUS_EVENTLOG_FILE_CHANGED) */
   ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT,/* c0000198 (STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT) */
   ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT,/* c0000199 (STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT) */
   ERROR_NOLOGON_SERVER_TRUST_ACCOUNT,     /* c000019a (STATUS_NOLOGON_SERVER_TRUST_ACCOUNT) */
   ERROR_DOMAIN_TRUST_INCONSISTENT         /* c000019b (STATUS_DOMAIN_TRUST_INCONSISTENT) */
};

static const WORD table_c0000202[109] =
{
   ERROR_NO_USER_SESSION_KEY,              /* c0000202 */
   ERROR_UNEXP_NET_ERR,                    /* c0000203 */
   ERROR_RESOURCE_LANG_NOT_FOUND,          /* c0000204 (STATUS_RESOURCE_LANG_NOT_FOUND) */
   ERROR_NOT_ENOUGH_SERVER_MEMORY,         /* c0000205 */
   ERROR_INVALID_USER_BUFFER,              /* c0000206 */
   ERROR_INVALID_NETNAME,                  /* c0000207 */
   ERROR_INVALID_NETNAME,                  /* c0000208 */
   ERROR_TOO_MANY_NAMES,                   /* c0000209 */
   ERROR_DUP_NAME,                         /* c000020a */
   ERROR_NETNAME_DELETED,                  /* c000020b */
   ERROR_NETNAME_DELETED,                  /* c000020c */
   ERROR_NETNAME_DELETED,                  /* c000020d */
   ERROR_TOO_MANY_NAMES,                   /* c000020e */
   ERROR_UNEXP_NET_ERR,                    /* c000020f */
   ERROR_UNEXP_NET_ERR,                    /* c0000210 */
   ERROR_UNEXP_NET_ERR,                    /* c0000211 */
   ERROR_UNEXP_NET_ERR,                    /* c0000212 */
   ERROR_UNEXP_NET_ERR,                    /* c0000213 */
   ERROR_UNEXP_NET_ERR,                    /* c0000214 */
   ERROR_UNEXP_NET_ERR,                    /* c0000215 */
   ERROR_NOT_SUPPORTED,                    /* c0000216 */
   ERROR_NOT_SUPPORTED,                    /* c0000217 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000218 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000219 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000021a */
   ERROR_MR_MID_NOT_FOUND,                 /* c000021b */
   ERROR_NO_BROWSER_SERVERS_FOUND,         /* c000021c */
   ERROR_MR_MID_NOT_FOUND,                 /* c000021d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000021e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000021f */
   ERROR_MAPPED_ALIGNMENT,                 /* c0000220 */
   ERROR_BAD_EXE_FORMAT,                   /* c0000221 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000222 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000223 */
   ERROR_PASSWORD_MUST_CHANGE,             /* c0000224 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000225 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000226 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000227 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000228 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000229 */
   0,                                      /* c000022a */
   0,                                      /* c000022b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000022c */
   ERROR_MR_MID_NOT_FOUND,                 /* c000022d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000022e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000022f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000230 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000231 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000232 */
   ERROR_DOMAIN_CONTROLLER_NOT_FOUND,      /* c0000233 */
   ERROR_ACCOUNT_LOCKED_OUT,               /* c0000234 */
   ERROR_INVALID_HANDLE,                   /* c0000235 */
   ERROR_CONNECTION_REFUSED,               /* c0000236 */
   ERROR_GRACEFUL_DISCONNECT,              /* c0000237 */
   ERROR_ADDRESS_ALREADY_ASSOCIATED,       /* c0000238 */
   ERROR_ADDRESS_NOT_ASSOCIATED,           /* c0000239 */
   ERROR_CONNECTION_INVALID,               /* c000023a */
   ERROR_CONNECTION_ACTIVE,                /* c000023b */
   ERROR_NETWORK_UNREACHABLE,              /* c000023c */
   ERROR_HOST_UNREACHABLE,                 /* c000023d */
   ERROR_PROTOCOL_UNREACHABLE,             /* c000023e */
   ERROR_PORT_UNREACHABLE,                 /* c000023f */
   ERROR_REQUEST_ABORTED,                  /* c0000240 */
   ERROR_CONNECTION_ABORTED,               /* c0000241 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000242 */
   ERROR_USER_MAPPED_FILE,                 /* c0000243 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000244 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000245 */
   ERROR_CONNECTION_COUNT_LIMIT,           /* c0000246 */
   ERROR_LOGIN_TIME_RESTRICTION,           /* c0000247 */
   ERROR_LOGIN_WKSTA_RESTRICTION,          /* c0000248 */
   ERROR_BAD_EXE_FORMAT,                   /* c0000249 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024a */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024c */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024d */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000024f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000250 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000251 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000252 */
   ERROR_INTERNAL_ERROR,                   /* c0000253 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000254 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000255 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000256 */
   ERROR_HOST_UNREACHABLE,                 /* c0000257 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000258 */
   ERROR_LICENSE_QUOTA_EXCEEDED,           /* c0000259 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000025a */
   ERROR_MR_MID_NOT_FOUND,                 /* c000025b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000025c */
   ERROR_MR_MID_NOT_FOUND,                 /* c000025d */
   ERROR_SERVICE_DISABLED,                 /* c000025e */
   ERROR_MR_MID_NOT_FOUND,                 /* c000025f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000260 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000261 */
   ERROR_INVALID_ORDINAL,                  /* c0000262 */
   ERROR_PROC_NOT_FOUND,                   /* c0000263 */
   ERROR_NOT_OWNER,                        /* c0000264 */
   ERROR_TOO_MANY_LINKS,                   /* c0000265 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000266 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000267 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000268 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0000269 */
   ERROR_MR_MID_NOT_FOUND,                 /* c000026a */
   ERROR_MR_MID_NOT_FOUND,                 /* c000026b */
   ERROR_MR_MID_NOT_FOUND,                 /* c000026c */
   ERROR_MR_MID_NOT_FOUND,                 /* c000026d */
   ERROR_NOT_READY                         /* c000026e */
};

static const WORD table_c0020001[88] =
{
   RPC_S_INVALID_STRING_BINDING,           /* c0020001 */
   RPC_S_WRONG_KIND_OF_BINDING,            /* c0020002 */
   ERROR_INVALID_HANDLE,                   /* c0020003 */
   RPC_S_PROTSEQ_NOT_SUPPORTED,            /* c0020004 */
   RPC_S_INVALID_RPC_PROTSEQ,              /* c0020005 */
   RPC_S_INVALID_STRING_UUID,              /* c0020006 */
   RPC_S_INVALID_ENDPOINT_FORMAT,          /* c0020007 */
   RPC_S_INVALID_NET_ADDR,                 /* c0020008 */
   RPC_S_NO_ENDPOINT_FOUND,                /* c0020009 */
   RPC_S_INVALID_TIMEOUT,                  /* c002000a */
   RPC_S_OBJECT_NOT_FOUND,                 /* c002000b */
   RPC_S_ALREADY_REGISTERED,               /* c002000c */
   RPC_S_TYPE_ALREADY_REGISTERED,          /* c002000d */
   RPC_S_ALREADY_LISTENING,                /* c002000e */
   RPC_S_NO_PROTSEQS_REGISTERED,           /* c002000f */
   RPC_S_NOT_LISTENING,                    /* c0020010 */
   RPC_S_UNKNOWN_MGR_TYPE,                 /* c0020011 */
   RPC_S_UNKNOWN_IF,                       /* c0020012 */
   RPC_S_NO_BINDINGS,                      /* c0020013 */
   RPC_S_NO_PROTSEQS,                      /* c0020014 */
   RPC_S_CANT_CREATE_ENDPOINT,             /* c0020015 */
   RPC_S_OUT_OF_RESOURCES,                 /* c0020016 */
   RPC_S_SERVER_UNAVAILABLE,               /* c0020017 */
   RPC_S_SERVER_TOO_BUSY,                  /* c0020018 */
   RPC_S_INVALID_NETWORK_OPTIONS,          /* c0020019 */
   RPC_S_NO_CALL_ACTIVE,                   /* c002001a */
   RPC_S_CALL_FAILED,                      /* c002001b */
   RPC_S_CALL_FAILED_DNE,                  /* c002001c */
   RPC_S_PROTOCOL_ERROR,                   /* c002001d */
   ERROR_MR_MID_NOT_FOUND,                 /* c002001e */
   RPC_S_UNSUPPORTED_TRANS_SYN,            /* c002001f */
   ERROR_MR_MID_NOT_FOUND,                 /* c0020020 */
   RPC_S_UNSUPPORTED_TYPE,                 /* c0020021 */
   RPC_S_INVALID_TAG,                      /* c0020022 */
   RPC_S_INVALID_BOUND,                    /* c0020023 */
   RPC_S_NO_ENTRY_NAME,                    /* c0020024 */
   RPC_S_INVALID_NAME_SYNTAX,              /* c0020025 */
   RPC_S_UNSUPPORTED_NAME_SYNTAX,          /* c0020026 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0020027 */
   RPC_S_UUID_NO_ADDRESS,                  /* c0020028 */
   RPC_S_DUPLICATE_ENDPOINT,               /* c0020029 */
   RPC_S_UNKNOWN_AUTHN_TYPE,               /* c002002a */
   RPC_S_MAX_CALLS_TOO_SMALL,              /* c002002b */
   RPC_S_STRING_TOO_LONG,                  /* c002002c */
   RPC_S_PROTSEQ_NOT_FOUND,                /* c002002d */
   RPC_S_PROCNUM_OUT_OF_RANGE,             /* c002002e */
   RPC_S_BINDING_HAS_NO_AUTH,              /* c002002f */
   RPC_S_UNKNOWN_AUTHN_SERVICE,            /* c0020030 */
   RPC_S_UNKNOWN_AUTHN_LEVEL,              /* c0020031 */
   RPC_S_INVALID_AUTH_IDENTITY,            /* c0020032 */
   RPC_S_UNKNOWN_AUTHZ_SERVICE,            /* c0020033 */
   EPT_S_INVALID_ENTRY,                    /* c0020034 */
   EPT_S_CANT_PERFORM_OP,                  /* c0020035 */
   EPT_S_NOT_REGISTERED,                   /* c0020036 */
   RPC_S_NOTHING_TO_EXPORT,                /* c0020037 */
   RPC_S_INCOMPLETE_NAME,                  /* c0020038 */
   RPC_S_INVALID_VERS_OPTION,              /* c0020039 */
   RPC_S_NO_MORE_MEMBERS,                  /* c002003a */
   RPC_S_NOT_ALL_OBJS_UNEXPORTED,          /* c002003b */
   RPC_S_INTERFACE_NOT_FOUND,              /* c002003c */
   RPC_S_ENTRY_ALREADY_EXISTS,             /* c002003d */
   RPC_S_ENTRY_NOT_FOUND,                  /* c002003e */
   RPC_S_NAME_SERVICE_UNAVAILABLE,         /* c002003f */
   RPC_S_INVALID_NAF_ID,                   /* c0020040 */
   RPC_S_CANNOT_SUPPORT,                   /* c0020041 */
   RPC_S_NO_CONTEXT_AVAILABLE,             /* c0020042 */
   RPC_S_INTERNAL_ERROR,                   /* c0020043 */
   RPC_S_ZERO_DIVIDE,                      /* c0020044 */
   RPC_S_ADDRESS_ERROR,                    /* c0020045 */
   RPC_S_FP_DIV_ZERO,                      /* c0020046 */
   RPC_S_FP_UNDERFLOW,                     /* c0020047 */
   RPC_S_FP_OVERFLOW,                      /* c0020048 */
   RPC_S_CALL_IN_PROGRESS,                 /* c0020049 */
   RPC_S_NO_MORE_BINDINGS,                 /* c002004a */
   RPC_S_GROUP_MEMBER_NOT_FOUND,           /* c002004b */
   EPT_S_CANT_CREATE,                      /* c002004c */
   RPC_S_INVALID_OBJECT,                   /* c002004d */
   ERROR_MR_MID_NOT_FOUND,                 /* c002004e */
   RPC_S_NO_INTERFACES,                    /* c002004f */
   RPC_S_CALL_CANCELLED,                   /* c0020050 */
   RPC_S_BINDING_INCOMPLETE,               /* c0020051 */
   RPC_S_COMM_FAILURE,                     /* c0020052 */
   RPC_S_UNSUPPORTED_AUTHN_LEVEL,          /* c0020053 */
   RPC_S_NO_PRINC_NAME,                    /* c0020054 */
   RPC_S_NOT_RPC_ERROR,                    /* c0020055 */
   ERROR_MR_MID_NOT_FOUND,                 /* c0020056 */
   RPC_S_SEC_PKG_ERROR,                    /* c0020057 */
   RPC_S_NOT_CANCELLED                     /* c0020058 */
};

static const WORD table_c0030001[12] =
{
   RPC_X_NO_MORE_ENTRIES,                  /* c0030001 */
   RPC_X_SS_CHAR_TRANS_OPEN_FAIL,          /* c0030002 */
   RPC_X_SS_CHAR_TRANS_SHORT_FILE,         /* c0030003 */
   ERROR_INVALID_HANDLE,                   /* c0030004 */
   ERROR_INVALID_HANDLE,                   /* c0030005 */
   RPC_X_SS_CONTEXT_DAMAGED,               /* c0030006 */
   RPC_X_SS_HANDLES_MISMATCH,              /* c0030007 */
   RPC_X_SS_CANNOT_GET_CALL_HANDLE,        /* c0030008 */
   RPC_X_NULL_REF_POINTER,                 /* c0030009 */
   RPC_X_ENUM_VALUE_OUT_OF_RANGE,          /* c003000a */
   RPC_X_BYTE_COUNT_TOO_SMALL,             /* c003000b */
   RPC_X_BAD_STUB_DATA                     /* c003000c */
};

static const WORD table_c0030059[6] =
{
   RPC_X_INVALID_ES_ACTION,                /* c0030059 */
   RPC_X_WRONG_ES_VERSION,                 /* c003005a */
   RPC_X_WRONG_STUB_VERSION,               /* c003005b */
   RPC_X_INVALID_PIPE_OBJECT,              /* c003005c */
   RPC_X_WRONG_PIPE_ORDER,                 /* c003005d */
   RPC_X_WRONG_PIPE_VERSION                /* c003005e */
};

static const struct error_table error_table[] =
{
    { 0x00000103, 0x0000010e, table_00000103 },
    { 0x40000002, 0x4000000e, table_40000002 },
    { 0x40020056, 0x40020057, table_40020056 },
    { 0x400200af, 0x400200b0, table_400200af },
    { 0x80000001, 0x80000026, table_80000001 },
    { 0x80090300, 0x80090317, table_80090300 },
    { 0xc0000001, 0xc000019c, table_c0000001 },
    { 0xc0000202, 0xc000026f, table_c0000202 },
    { 0xc0020001, 0xc0020059, table_c0020001 },
    { 0xc0030001, 0xc003000d, table_c0030001 },
    { 0xc0030059, 0xc003005f, table_c0030059 },
    { 0, 0, 0 }  /* last entry */
};
