~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to source3/libsmb/errormap.c

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* 
 
2
 *  Unix SMB/CIFS implementation.
 
3
 *  error mapping functions
 
4
 *  Copyright (C) Andrew Tridgell 2001
 
5
 *  Copyright (C) Andrew Bartlett 2001
 
6
 *  Copyright (C) Tim Potter 2000
 
7
 *  
 
8
 *  This program is free software; you can redistribute it and/or modify
 
9
 *  it under the terms of the GNU General Public License as published by
 
10
 *  the Free Software Foundation; either version 3 of the License, or
 
11
 *  (at your option) any later version.
 
12
 *  
 
13
 *  This program is distributed in the hope that it will be useful,
 
14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
 *  GNU General Public License for more details.
 
17
 *  
 
18
 *  You should have received a copy of the GNU General Public License
 
19
 *  along with this program; if not, see <http://www.gnu.org/licenses/>.
 
20
 */
 
21
 
 
22
#include "includes.h"
 
23
 
 
24
/* This map was extracted by the ERRMAPEXTRACT smbtorture command. 
 
25
   The setup was a Samba HEAD (2002-01-03) PDC and an Win2k member 
 
26
   workstation.  The PDC was modified (by using the 'name_to_nt_status'
 
27
   authentication module) to convert the username (in hex) into the
 
28
   corresponding NTSTATUS error return. 
 
29
 
 
30
   By opening two nbt sessions to the Win2k workstation, one negotiating
 
31
   DOS and one negotiating NT errors it was possible to extract the
 
32
   error mapping.  (Because the server only supplies NT errors, the 
 
33
   NT4 workstation had to use its own error tables to convert these
 
34
   to dos errors). 
 
35
 
 
36
   Some errors show up as 'squashed' because the NT error connection
 
37
   got back a different error to the one it sent, so a mapping could
 
38
   not be determined (a guess has been made in this case, to map the
 
39
   error as squashed).  This is done mainly to prevent users from getting
 
40
   NT_STATUS_WRONG_PASSWORD and NT_STATUS_NO_SUCH_USER errors (they get
 
41
   NT_STATUS_LOGON_FAILURE instead.
 
42
 
 
43
   -- abartlet (2002-01-03)
 
44
*/
 
45
 
 
46
/* NT status -> dos error map */
 
47
static const struct {
 
48
        uint8 dos_class;
 
49
        uint32 dos_code;
 
50
        NTSTATUS ntstatus;
 
51
} ntstatus_to_dos_map[] = {
 
52
        {ERRDOS,        ERRgeneral,     NT_STATUS_UNSUCCESSFUL},
 
53
        {ERRDOS,        ERRbadfunc,     NT_STATUS_NOT_IMPLEMENTED},
 
54
        {ERRDOS,        87,     NT_STATUS_INVALID_INFO_CLASS},
 
55
        {ERRDOS,        24,     NT_STATUS_INFO_LENGTH_MISMATCH},
 
56
        {ERRHRD,        ERRgeneral,     NT_STATUS_ACCESS_VIOLATION},
 
57
        {ERRHRD,        ERRgeneral,     NT_STATUS_IN_PAGE_ERROR},
 
58
        {ERRHRD,        ERRgeneral,     NT_STATUS_PAGEFILE_QUOTA},
 
59
        {ERRDOS,        ERRbadfid,      NT_STATUS_INVALID_HANDLE},
 
60
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_INITIAL_STACK},
 
61
        {ERRDOS,        193,    NT_STATUS_BAD_INITIAL_PC},
 
62
        {ERRDOS,        87,     NT_STATUS_INVALID_CID},
 
63
        {ERRHRD,        ERRgeneral,     NT_STATUS_TIMER_NOT_CANCELED},
 
64
        {ERRDOS,        ERRinvalidparam,        NT_STATUS_INVALID_PARAMETER},
 
65
        {ERRDOS,        ERRbadfile,     NT_STATUS_NO_SUCH_DEVICE},
 
66
        {ERRDOS,        ERRbadfile,     NT_STATUS_NO_SUCH_FILE},
 
67
        {ERRDOS,        ERRbadfunc,     NT_STATUS_INVALID_DEVICE_REQUEST},
 
68
        {ERRDOS,        38,     NT_STATUS_END_OF_FILE},
 
69
        {ERRDOS,        34,     NT_STATUS_WRONG_VOLUME},
 
70
        {ERRDOS,        21,     NT_STATUS_NO_MEDIA_IN_DEVICE},
 
71
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNRECOGNIZED_MEDIA},
 
72
        {ERRDOS,        27,     NT_STATUS_NONEXISTENT_SECTOR},
 
73
/** Session setup succeeded.  This shouldn't happen...*/
 
74
/** Session setup succeeded.  This shouldn't happen...*/
 
75
/** NT error on DOS connection! (NT_STATUS_OK) */
 
76
/*      { This NT error code was 'sqashed'
 
77
         from NT_STATUS_MORE_PROCESSING_REQUIRED to NT_STATUS_OK 
 
78
         during the session setup }
 
79
*/
 
80
#if 0
 
81
        {SUCCESS,       0,      NT_STATUS_OK},
 
82
#endif
 
83
        {ERRDOS,        ERRnomem,       NT_STATUS_NO_MEMORY},
 
84
        {ERRDOS,        487,    NT_STATUS_CONFLICTING_ADDRESSES},
 
85
        {ERRDOS,        487,    NT_STATUS_NOT_MAPPED_VIEW},
 
86
        {ERRDOS,        87,     NT_STATUS_UNABLE_TO_FREE_VM},
 
87
        {ERRDOS,        87,     NT_STATUS_UNABLE_TO_DELETE_SECTION},
 
88
        {ERRDOS,        2142,   NT_STATUS_INVALID_SYSTEM_SERVICE},
 
89
        {ERRHRD,        ERRgeneral,     NT_STATUS_ILLEGAL_INSTRUCTION},
 
90
        {ERRDOS,        ERRnoaccess,    NT_STATUS_INVALID_LOCK_SEQUENCE},
 
91
        {ERRDOS,        ERRnoaccess,    NT_STATUS_INVALID_VIEW_SIZE},
 
92
        {ERRDOS,        193,    NT_STATUS_INVALID_FILE_FOR_SECTION},
 
93
        {ERRDOS,        ERRnoaccess,    NT_STATUS_ALREADY_COMMITTED},
 
94
/*      { This NT error code was 'sqashed'
 
95
         from NT_STATUS_ACCESS_DENIED to NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE 
 
96
         during the session setup }
 
97
*/
 
98
        {ERRDOS,        ERRnoaccess,    NT_STATUS_ACCESS_DENIED},
 
99
        {ERRDOS,        111,    NT_STATUS_BUFFER_TOO_SMALL},
 
100
/*
 
101
 * Not an official error, as only bit 0x80000000, not bits 0xC0000000 are set.
 
102
 */
 
103
        {ERRDOS,        ERRmoredata,    STATUS_BUFFER_OVERFLOW},
 
104
        {ERRDOS,        ERRnofiles,     STATUS_NO_MORE_FILES},
 
105
        {ERRDOS,        ERRbadfid,      NT_STATUS_OBJECT_TYPE_MISMATCH},
 
106
        {ERRHRD,        ERRgeneral,     NT_STATUS_NONCONTINUABLE_EXCEPTION},
 
107
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_DISPOSITION},
 
108
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNWIND},
 
109
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_STACK},
 
110
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_UNWIND_TARGET},
 
111
        {ERRDOS,        158,    NT_STATUS_NOT_LOCKED},
 
112
        {ERRHRD,        ERRgeneral,     NT_STATUS_PARITY_ERROR},
 
113
        {ERRDOS,        487,    NT_STATUS_UNABLE_TO_DECOMMIT_VM},
 
114
        {ERRDOS,        487,    NT_STATUS_NOT_COMMITTED},
 
115
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_PORT_ATTRIBUTES},
 
116
        {ERRHRD,        ERRgeneral,     NT_STATUS_PORT_MESSAGE_TOO_LONG},
 
117
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_MIX},
 
118
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_QUOTA_LOWER},
 
119
        {ERRHRD,        ERRgeneral,     NT_STATUS_DISK_CORRUPT_ERROR},
 
120
        {ERRDOS,        ERRinvalidname, NT_STATUS_OBJECT_NAME_INVALID},
 
121
        {ERRDOS,        ERRbadfile,     NT_STATUS_OBJECT_NAME_NOT_FOUND},
 
122
        {ERRDOS,        183,    NT_STATUS_OBJECT_NAME_COLLISION},
 
123
        {ERRHRD,        ERRgeneral,     NT_STATUS_HANDLE_NOT_WAITABLE},
 
124
        {ERRDOS,        ERRbadfid,      NT_STATUS_PORT_DISCONNECTED},
 
125
        {ERRHRD,        ERRgeneral,     NT_STATUS_DEVICE_ALREADY_ATTACHED},
 
126
        {ERRDOS,        ERRinvalidpath, NT_STATUS_OBJECT_PATH_INVALID},
 
127
        {ERRDOS,        ERRbadpath,     NT_STATUS_OBJECT_PATH_NOT_FOUND},
 
128
        {ERRDOS,        ERRinvalidpath, NT_STATUS_OBJECT_PATH_SYNTAX_BAD},
 
129
        {ERRHRD,        ERRgeneral,     NT_STATUS_DATA_OVERRUN},
 
130
        {ERRHRD,        ERRgeneral,     NT_STATUS_DATA_LATE_ERROR},
 
131
        {ERRDOS,        23,     NT_STATUS_DATA_ERROR},
 
132
        {ERRDOS,        23,     NT_STATUS_CRC_ERROR},
 
133
        {ERRDOS,        ERRnomem,       NT_STATUS_SECTION_TOO_BIG},
 
134
        {ERRDOS,        ERRnoaccess,    NT_STATUS_PORT_CONNECTION_REFUSED},
 
135
        {ERRDOS,        ERRbadfid,      NT_STATUS_INVALID_PORT_HANDLE},
 
136
        {ERRDOS,        ERRbadshare,    NT_STATUS_SHARING_VIOLATION},
 
137
        {ERRHRD,        ERRgeneral,     NT_STATUS_QUOTA_EXCEEDED},
 
138
        {ERRDOS,        87,     NT_STATUS_INVALID_PAGE_PROTECTION},
 
139
        {ERRDOS,        288,    NT_STATUS_MUTANT_NOT_OWNED},
 
140
        {ERRDOS,        298,    NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED},
 
141
        {ERRDOS,        87,     NT_STATUS_PORT_ALREADY_SET},
 
142
        {ERRDOS,        87,     NT_STATUS_SECTION_NOT_IMAGE},
 
143
        {ERRDOS,        156,    NT_STATUS_SUSPEND_COUNT_EXCEEDED},
 
144
        {ERRDOS,        ERRnoaccess,    NT_STATUS_THREAD_IS_TERMINATING},
 
145
        {ERRDOS,        87,     NT_STATUS_BAD_WORKING_SET_LIMIT},
 
146
        {ERRDOS,        87,     NT_STATUS_INCOMPATIBLE_FILE_MAP},
 
147
        {ERRDOS,        87,     NT_STATUS_SECTION_PROTECTION},
 
148
        {ERRDOS,        282,    NT_STATUS_EAS_NOT_SUPPORTED},
 
149
        {ERRDOS,        255,    NT_STATUS_EA_TOO_LARGE},
 
150
        {ERRHRD,        ERRgeneral,     NT_STATUS_NONEXISTENT_EA_ENTRY},
 
151
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_EAS_ON_FILE},
 
152
        {ERRHRD,        ERRgeneral,     NT_STATUS_EA_CORRUPT_ERROR},
 
153
        {ERRDOS,        ERRlock,        NT_STATUS_FILE_LOCK_CONFLICT},
 
154
        {ERRDOS,        ERRlock,        NT_STATUS_LOCK_NOT_GRANTED},
 
155
        {ERRDOS,        ERRnoaccess,    NT_STATUS_DELETE_PENDING},
 
156
        {ERRDOS,        ERRunsup,       NT_STATUS_CTL_FILE_NOT_SUPPORTED},
 
157
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNKNOWN_REVISION},
 
158
        {ERRHRD,        ERRgeneral,     NT_STATUS_REVISION_MISMATCH},
 
159
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_OWNER},
 
160
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_PRIMARY_GROUP},
 
161
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_IMPERSONATION_TOKEN},
 
162
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANT_DISABLE_MANDATORY},
 
163
        {ERRDOS,        2215,   NT_STATUS_NO_LOGON_SERVERS},
 
164
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_LOGON_SESSION},
 
165
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_PRIVILEGE},
 
166
        {ERRDOS,        ERRnoaccess,    NT_STATUS_PRIVILEGE_NOT_HELD},
 
167
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_ACCOUNT_NAME},
 
168
        {ERRHRD,        ERRgeneral,     NT_STATUS_USER_EXISTS},
 
169
/*      { This NT error code was 'sqashed'
 
170
         from NT_STATUS_NO_SUCH_USER to NT_STATUS_LOGON_FAILURE 
 
171
         during the session setup }
 
172
*/
 
173
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NO_SUCH_USER},
 
174
        {ERRHRD,        ERRgeneral,     NT_STATUS_GROUP_EXISTS},
 
175
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_GROUP},
 
176
        {ERRHRD,        ERRgeneral,     NT_STATUS_MEMBER_IN_GROUP},
 
177
        {ERRHRD,        ERRgeneral,     NT_STATUS_MEMBER_NOT_IN_GROUP},
 
178
        {ERRHRD,        ERRgeneral,     NT_STATUS_LAST_ADMIN},
 
179
/*      { This NT error code was 'sqashed'
 
180
         from NT_STATUS_WRONG_PASSWORD to NT_STATUS_LOGON_FAILURE 
 
181
         during the session setup }
 
182
*/
 
183
        {ERRSRV,        ERRbadpw,       NT_STATUS_WRONG_PASSWORD},
 
184
        {ERRHRD,        ERRgeneral,     NT_STATUS_ILL_FORMED_PASSWORD},
 
185
        {ERRHRD,        ERRgeneral,     NT_STATUS_PASSWORD_RESTRICTION},
 
186
        {ERRDOS,        ERRnoaccess,    NT_STATUS_LOGON_FAILURE},
 
187
        {ERRHRD,        ERRgeneral,     NT_STATUS_ACCOUNT_RESTRICTION},
 
188
        {ERRSRV,        2241,   NT_STATUS_INVALID_LOGON_HOURS},
 
189
        {ERRSRV,        2240,   NT_STATUS_INVALID_WORKSTATION},
 
190
        {ERRSRV,        2242,   NT_STATUS_PASSWORD_EXPIRED},
 
191
        {ERRSRV,        2239,   NT_STATUS_ACCOUNT_DISABLED},
 
192
        {ERRHRD,        ERRgeneral,     NT_STATUS_NONE_MAPPED},
 
193
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_LUIDS_REQUESTED},
 
194
        {ERRHRD,        ERRgeneral,     NT_STATUS_LUIDS_EXHAUSTED},
 
195
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_SUB_AUTHORITY},
 
196
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_ACL},
 
197
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_SID},
 
198
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_SECURITY_DESCR},
 
199
        {ERRDOS,        127,    NT_STATUS_PROCEDURE_NOT_FOUND},
 
200
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_FORMAT},
 
201
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_TOKEN},
 
202
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_INHERITANCE_ACL},
 
203
        {ERRDOS,        158,    NT_STATUS_RANGE_NOT_LOCKED},
 
204
        {ERRDOS,        112,    NT_STATUS_DISK_FULL},
 
205
        {ERRHRD,        ERRgeneral,     NT_STATUS_SERVER_DISABLED},
 
206
        {ERRHRD,        ERRgeneral,     NT_STATUS_SERVER_NOT_DISABLED},
 
207
        {ERRDOS,        68,     NT_STATUS_TOO_MANY_GUIDS_REQUESTED},
 
208
        {ERRDOS,        259,    NT_STATUS_GUIDS_EXHAUSTED},
 
209
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_ID_AUTHORITY},
 
210
        {ERRDOS,        259,    NT_STATUS_AGENTS_EXHAUSTED},
 
211
        {ERRDOS,        154,    NT_STATUS_INVALID_VOLUME_LABEL},
 
212
        {ERRDOS,        ERRres, NT_STATUS_SECTION_NOT_EXTENDED},
 
213
        {ERRDOS,        487,    NT_STATUS_NOT_MAPPED_DATA},
 
214
        {ERRHRD,        ERRgeneral,     NT_STATUS_RESOURCE_DATA_NOT_FOUND},
 
215
        {ERRHRD,        ERRgeneral,     NT_STATUS_RESOURCE_TYPE_NOT_FOUND},
 
216
        {ERRHRD,        ERRgeneral,     NT_STATUS_RESOURCE_NAME_NOT_FOUND},
 
217
        {ERRHRD,        ERRgeneral,     NT_STATUS_ARRAY_BOUNDS_EXCEEDED},
 
218
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_DENORMAL_OPERAND},
 
219
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_DIVIDE_BY_ZERO},
 
220
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_INEXACT_RESULT},
 
221
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_INVALID_OPERATION},
 
222
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_OVERFLOW},
 
223
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_STACK_CHECK},
 
224
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOAT_UNDERFLOW},
 
225
        {ERRHRD,        ERRgeneral,     NT_STATUS_INTEGER_DIVIDE_BY_ZERO},
 
226
        {ERRDOS,        534,    NT_STATUS_INTEGER_OVERFLOW},
 
227
        {ERRHRD,        ERRgeneral,     NT_STATUS_PRIVILEGED_INSTRUCTION},
 
228
        {ERRDOS,        ERRnomem,       NT_STATUS_TOO_MANY_PAGING_FILES},
 
229
        {ERRHRD,        ERRgeneral,     NT_STATUS_FILE_INVALID},
 
230
        {ERRHRD,        ERRgeneral,     NT_STATUS_ALLOTTED_SPACE_EXCEEDED},
 
231
/*      { This NT error code was 'sqashed'
 
232
         from NT_STATUS_INSUFFICIENT_RESOURCES to NT_STATUS_INSUFF_SERVER_RESOURCES 
 
233
         during the session setup }
 
234
*/
 
235
        {ERRDOS,        ERRnomem,       NT_STATUS_INSUFFICIENT_RESOURCES},
 
236
        {ERRDOS,        ERRbadpath,     NT_STATUS_DFS_EXIT_PATH_FOUND},
 
237
        {ERRDOS,        23,     NT_STATUS_DEVICE_DATA_ERROR},
 
238
        {ERRHRD,        ERRgeneral,     NT_STATUS_DEVICE_NOT_CONNECTED},
 
239
        {ERRDOS,        21,     NT_STATUS_DEVICE_POWER_FAILURE},
 
240
        {ERRDOS,        487,    NT_STATUS_FREE_VM_NOT_AT_BASE},
 
241
        {ERRDOS,        487,    NT_STATUS_MEMORY_NOT_ALLOCATED},
 
242
        {ERRHRD,        ERRgeneral,     NT_STATUS_WORKING_SET_QUOTA},
 
243
        {ERRDOS,        19,     NT_STATUS_MEDIA_WRITE_PROTECTED},
 
244
        {ERRDOS,        21,     NT_STATUS_DEVICE_NOT_READY},
 
245
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_GROUP_ATTRIBUTES},
 
246
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_IMPERSONATION_LEVEL},
 
247
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANT_OPEN_ANONYMOUS},
 
248
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_VALIDATION_CLASS},
 
249
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_TOKEN_TYPE},
 
250
        {ERRDOS,        87,     NT_STATUS_BAD_MASTER_BOOT_RECORD},
 
251
        {ERRHRD,        ERRgeneral,     NT_STATUS_INSTRUCTION_MISALIGNMENT},
 
252
        {ERRDOS,        ERRpipebusy,    NT_STATUS_INSTANCE_NOT_AVAILABLE},
 
253
        {ERRDOS,        ERRpipebusy,    NT_STATUS_PIPE_NOT_AVAILABLE},
 
254
        {ERRDOS,        ERRbadpipe,     NT_STATUS_INVALID_PIPE_STATE},
 
255
        {ERRDOS,        ERRpipebusy,    NT_STATUS_PIPE_BUSY},
 
256
        {ERRDOS,        ERRbadfunc,     NT_STATUS_ILLEGAL_FUNCTION},
 
257
        {ERRDOS,        ERRnotconnected,        NT_STATUS_PIPE_DISCONNECTED},
 
258
        {ERRDOS,        ERRpipeclosing, NT_STATUS_PIPE_CLOSING},
 
259
        {ERRHRD,        ERRgeneral,     NT_STATUS_PIPE_CONNECTED},
 
260
        {ERRHRD,        ERRgeneral,     NT_STATUS_PIPE_LISTENING},
 
261
        {ERRDOS,        ERRbadpipe,     NT_STATUS_INVALID_READ_MODE},
 
262
        {ERRDOS,        121,    NT_STATUS_IO_TIMEOUT},
 
263
        {ERRDOS,        38,     NT_STATUS_FILE_FORCED_CLOSED},
 
264
        {ERRHRD,        ERRgeneral,     NT_STATUS_PROFILING_NOT_STARTED},
 
265
        {ERRHRD,        ERRgeneral,     NT_STATUS_PROFILING_NOT_STOPPED},
 
266
        {ERRHRD,        ERRgeneral,     NT_STATUS_COULD_NOT_INTERPRET},
 
267
        {ERRDOS,        ERRnoaccess,    NT_STATUS_FILE_IS_A_DIRECTORY},
 
268
        {ERRDOS,        ERRunsup,       NT_STATUS_NOT_SUPPORTED},
 
269
        {ERRDOS,        51,     NT_STATUS_REMOTE_NOT_LISTENING},
 
270
        {ERRDOS,        52,     NT_STATUS_DUPLICATE_NAME},
 
271
        {ERRDOS,        53,     NT_STATUS_BAD_NETWORK_PATH},
 
272
        {ERRDOS,        54,     NT_STATUS_NETWORK_BUSY},
 
273
        {ERRDOS,        55,     NT_STATUS_DEVICE_DOES_NOT_EXIST},
 
274
        {ERRDOS,        56,     NT_STATUS_TOO_MANY_COMMANDS},
 
275
        {ERRDOS,        57,     NT_STATUS_ADAPTER_HARDWARE_ERROR},
 
276
        {ERRDOS,        58,     NT_STATUS_INVALID_NETWORK_RESPONSE},
 
277
        {ERRDOS,        59,     NT_STATUS_UNEXPECTED_NETWORK_ERROR},
 
278
        {ERRDOS,        60,     NT_STATUS_BAD_REMOTE_ADAPTER},
 
279
        {ERRDOS,        61,     NT_STATUS_PRINT_QUEUE_FULL},
 
280
        {ERRDOS,        62,     NT_STATUS_NO_SPOOL_SPACE},
 
281
        {ERRDOS,        63,     NT_STATUS_PRINT_CANCELLED},
 
282
        {ERRDOS,        64,     NT_STATUS_NETWORK_NAME_DELETED},
 
283
        {ERRDOS,        65,     NT_STATUS_NETWORK_ACCESS_DENIED},
 
284
        {ERRDOS,        66,     NT_STATUS_BAD_DEVICE_TYPE},
 
285
        {ERRDOS,        ERRnosuchshare, NT_STATUS_BAD_NETWORK_NAME},
 
286
        {ERRDOS,        68,     NT_STATUS_TOO_MANY_NAMES},
 
287
        {ERRDOS,        69,     NT_STATUS_TOO_MANY_SESSIONS},
 
288
        {ERRDOS,        70,     NT_STATUS_SHARING_PAUSED},
 
289
        {ERRDOS,        71,     NT_STATUS_REQUEST_NOT_ACCEPTED},
 
290
        {ERRDOS,        72,     NT_STATUS_REDIRECTOR_PAUSED},
 
291
        {ERRDOS,        88,     NT_STATUS_NET_WRITE_FAULT},
 
292
        {ERRHRD,        ERRgeneral,     NT_STATUS_PROFILING_AT_LIMIT},
 
293
        {ERRDOS,        ERRdiffdevice,  NT_STATUS_NOT_SAME_DEVICE},
 
294
        {ERRDOS,        ERRnoaccess,    NT_STATUS_FILE_RENAMED},
 
295
        {ERRDOS,        240,    NT_STATUS_VIRTUAL_CIRCUIT_CLOSED},
 
296
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SECURITY_ON_OBJECT},
 
297
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANT_WAIT},
 
298
        {ERRDOS,        ERRpipeclosing, NT_STATUS_PIPE_EMPTY},
 
299
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANT_ACCESS_DOMAIN_INFO},
 
300
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANT_TERMINATE_SELF},
 
301
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_SERVER_STATE},
 
302
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_DOMAIN_STATE},
 
303
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_DOMAIN_ROLE},
 
304
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_DOMAIN},
 
305
        {ERRHRD,        ERRgeneral,     NT_STATUS_DOMAIN_EXISTS},
 
306
        {ERRHRD,        ERRgeneral,     NT_STATUS_DOMAIN_LIMIT_EXCEEDED},
 
307
        {ERRDOS,        300,    NT_STATUS_OPLOCK_NOT_GRANTED},
 
308
        {ERRDOS,        301,    NT_STATUS_INVALID_OPLOCK_PROTOCOL},
 
309
        {ERRHRD,        ERRgeneral,     NT_STATUS_INTERNAL_DB_CORRUPTION},
 
310
        {ERRHRD,        ERRgeneral,     NT_STATUS_INTERNAL_ERROR},
 
311
        {ERRHRD,        ERRgeneral,     NT_STATUS_GENERIC_NOT_MAPPED},
 
312
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_DESCRIPTOR_FORMAT},
 
313
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_USER_BUFFER},
 
314
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNEXPECTED_IO_ERROR},
 
315
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNEXPECTED_MM_CREATE_ERR},
 
316
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNEXPECTED_MM_MAP_ERROR},
 
317
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNEXPECTED_MM_EXTEND_ERR},
 
318
        {ERRHRD,        ERRgeneral,     NT_STATUS_NOT_LOGON_PROCESS},
 
319
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGON_SESSION_EXISTS},
 
320
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_1},
 
321
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_2},
 
322
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_3},
 
323
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_4},
 
324
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_5},
 
325
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_6},
 
326
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_7},
 
327
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_8},
 
328
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_9},
 
329
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_10},
 
330
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_11},
 
331
        {ERRDOS,        87,     NT_STATUS_INVALID_PARAMETER_12},
 
332
        {ERRDOS,        ERRbadpath,     NT_STATUS_REDIRECTOR_NOT_STARTED},
 
333
        {ERRHRD,        ERRgeneral,     NT_STATUS_REDIRECTOR_STARTED},
 
334
        {ERRHRD,        ERRgeneral,     NT_STATUS_STACK_OVERFLOW},
 
335
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_PACKAGE},
 
336
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_FUNCTION_TABLE},
 
337
        {ERRDOS,        203,    NT_STATUS(0xc0000100)},
 
338
        {ERRDOS,        145,    NT_STATUS_DIRECTORY_NOT_EMPTY},
 
339
        {ERRHRD,        ERRgeneral,     NT_STATUS_FILE_CORRUPT_ERROR},
 
340
        {ERRDOS,        ERRbaddirectory,        NT_STATUS_NOT_A_DIRECTORY},
 
341
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_LOGON_SESSION_STATE},
 
342
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGON_SESSION_COLLISION},
 
343
        {ERRDOS,        206,    NT_STATUS_NAME_TOO_LONG},
 
344
        {ERRDOS,        2401,   NT_STATUS_FILES_OPEN},
 
345
        {ERRDOS,        2404,   NT_STATUS_CONNECTION_IN_USE},
 
346
        {ERRHRD,        ERRgeneral,     NT_STATUS_MESSAGE_NOT_FOUND},
 
347
        {ERRDOS,        ERRnoaccess,    NT_STATUS_PROCESS_IS_TERMINATING},
 
348
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_LOGON_TYPE},
 
349
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_GUID_TRANSLATION},
 
350
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANNOT_IMPERSONATE},
 
351
        {ERRHRD,        ERRgeneral,     NT_STATUS_IMAGE_ALREADY_LOADED},
 
352
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_NOT_PRESENT},
 
353
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_LID_NOT_EXIST},
 
354
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_LID_ALREADY_OWNED},
 
355
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_NOT_LID_OWNER},
 
356
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_INVALID_COMMAND},
 
357
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_INVALID_LID},
 
358
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE},
 
359
        {ERRHRD,        ERRgeneral,     NT_STATUS_ABIOS_INVALID_SELECTOR},
 
360
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_LDT},
 
361
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_LDT_SIZE},
 
362
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_LDT_OFFSET},
 
363
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_LDT_DESCRIPTOR},
 
364
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_NE_FORMAT},
 
365
        {ERRHRD,        ERRgeneral,     NT_STATUS_RXACT_INVALID_STATE},
 
366
        {ERRHRD,        ERRgeneral,     NT_STATUS_RXACT_COMMIT_FAILURE},
 
367
        {ERRHRD,        ERRgeneral,     NT_STATUS_MAPPED_FILE_SIZE_ZERO},
 
368
        {ERRDOS,        ERRnofids,      NT_STATUS_TOO_MANY_OPENED_FILES},
 
369
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANCELLED},
 
370
        {ERRDOS,        ERRnoaccess,    NT_STATUS_CANNOT_DELETE},
 
371
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_COMPUTER_NAME},
 
372
        {ERRDOS,        ERRnoaccess,    NT_STATUS_FILE_DELETED},
 
373
        {ERRHRD,        ERRgeneral,     NT_STATUS_SPECIAL_ACCOUNT},
 
374
        {ERRHRD,        ERRgeneral,     NT_STATUS_SPECIAL_GROUP},
 
375
        {ERRHRD,        ERRgeneral,     NT_STATUS_SPECIAL_USER},
 
376
        {ERRHRD,        ERRgeneral,     NT_STATUS_MEMBERS_PRIMARY_GROUP},
 
377
        {ERRDOS,        ERRbadfid,      NT_STATUS_FILE_CLOSED},
 
378
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_THREADS},
 
379
        {ERRHRD,        ERRgeneral,     NT_STATUS_THREAD_NOT_IN_PROCESS},
 
380
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOKEN_ALREADY_IN_USE},
 
381
        {ERRHRD,        ERRgeneral,     NT_STATUS_PAGEFILE_QUOTA_EXCEEDED},
 
382
        {ERRHRD,        ERRgeneral,     NT_STATUS_COMMITMENT_LIMIT},
 
383
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_LE_FORMAT},
 
384
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_NOT_MZ},
 
385
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_PROTECT},
 
386
        {ERRDOS,        193,    NT_STATUS_INVALID_IMAGE_WIN_16},
 
387
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGON_SERVER_CONFLICT},
 
388
        {ERRHRD,        ERRgeneral,     NT_STATUS_TIME_DIFFERENCE_AT_DC},
 
389
        {ERRHRD,        ERRgeneral,     NT_STATUS_SYNCHRONIZATION_REQUIRED},
 
390
        {ERRDOS,        126,    NT_STATUS_DLL_NOT_FOUND},
 
391
        {ERRHRD,        ERRgeneral,     NT_STATUS_OPEN_FAILED},
 
392
        {ERRHRD,        ERRgeneral,     NT_STATUS_IO_PRIVILEGE_FAILED},
 
393
        {ERRDOS,        182,    NT_STATUS_ORDINAL_NOT_FOUND},
 
394
        {ERRDOS,        127,    NT_STATUS_ENTRYPOINT_NOT_FOUND},
 
395
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONTROL_C_EXIT},
 
396
        {ERRDOS,        64,     NT_STATUS_LOCAL_DISCONNECT},
 
397
        {ERRDOS,        64,     NT_STATUS_REMOTE_DISCONNECT},
 
398
        {ERRDOS,        51,     NT_STATUS_REMOTE_RESOURCES},
 
399
        {ERRDOS,        59,     NT_STATUS_LINK_FAILED},
 
400
        {ERRDOS,        59,     NT_STATUS_LINK_TIMEOUT},
 
401
        {ERRDOS,        59,     NT_STATUS_INVALID_CONNECTION},
 
402
        {ERRDOS,        59,     NT_STATUS_INVALID_ADDRESS},
 
403
        {ERRHRD,        ERRgeneral,     NT_STATUS_DLL_INIT_FAILED},
 
404
        {ERRHRD,        ERRgeneral,     NT_STATUS_MISSING_SYSTEMFILE},
 
405
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNHANDLED_EXCEPTION},
 
406
        {ERRHRD,        ERRgeneral,     NT_STATUS_APP_INIT_FAILURE},
 
407
        {ERRHRD,        ERRgeneral,     NT_STATUS_PAGEFILE_CREATE_FAILED},
 
408
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_PAGEFILE},
 
409
        {ERRDOS,        ERRunknownlevel,        NT_STATUS_INVALID_LEVEL},
 
410
        {ERRDOS,        86,     NT_STATUS_WRONG_PASSWORD_CORE},
 
411
        {ERRHRD,        ERRgeneral,     NT_STATUS_ILLEGAL_FLOAT_CONTEXT},
 
412
        {ERRDOS,        109,    NT_STATUS_PIPE_BROKEN},
 
413
        {ERRHRD,        ERRgeneral,     NT_STATUS_REGISTRY_CORRUPT},
 
414
        {ERRHRD,        ERRgeneral,     NT_STATUS_REGISTRY_IO_FAILED},
 
415
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_EVENT_PAIR},
 
416
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNRECOGNIZED_VOLUME},
 
417
        {ERRHRD,        ERRgeneral,     NT_STATUS_SERIAL_NO_DEVICE_INITED},
 
418
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_ALIAS},
 
419
        {ERRHRD,        ERRgeneral,     NT_STATUS_MEMBER_NOT_IN_ALIAS},
 
420
        {ERRHRD,        ERRgeneral,     NT_STATUS_MEMBER_IN_ALIAS},
 
421
        {ERRHRD,        ERRgeneral,     NT_STATUS_ALIAS_EXISTS},
 
422
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGON_NOT_GRANTED},
 
423
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_SECRETS},
 
424
        {ERRHRD,        ERRgeneral,     NT_STATUS_SECRET_TOO_LONG},
 
425
        {ERRHRD,        ERRgeneral,     NT_STATUS_INTERNAL_DB_ERROR},
 
426
        {ERRHRD,        ERRgeneral,     NT_STATUS_FULLSCREEN_MODE},
 
427
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_CONTEXT_IDS},
 
428
        {ERRDOS,        ERRnoaccess,    NT_STATUS_LOGON_TYPE_NOT_GRANTED},
 
429
        {ERRHRD,        ERRgeneral,     NT_STATUS_NOT_REGISTRY_FILE},
 
430
        {ERRHRD,        ERRgeneral,     NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED},
 
431
        {ERRHRD,        ERRgeneral,     NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR},
 
432
        {ERRHRD,        ERRgeneral,     NT_STATUS_FT_MISSING_MEMBER},
 
433
        {ERRHRD,        ERRgeneral,     NT_STATUS_ILL_FORMED_SERVICE_ENTRY},
 
434
        {ERRHRD,        ERRgeneral,     NT_STATUS_ILLEGAL_CHARACTER},
 
435
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNMAPPABLE_CHARACTER},
 
436
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNDEFINED_CHARACTER},
 
437
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOPPY_VOLUME},
 
438
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND},
 
439
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOPPY_WRONG_CYLINDER},
 
440
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOPPY_UNKNOWN_ERROR},
 
441
        {ERRHRD,        ERRgeneral,     NT_STATUS_FLOPPY_BAD_REGISTERS},
 
442
        {ERRHRD,        ERRgeneral,     NT_STATUS_DISK_RECALIBRATE_FAILED},
 
443
        {ERRHRD,        ERRgeneral,     NT_STATUS_DISK_OPERATION_FAILED},
 
444
        {ERRHRD,        ERRgeneral,     NT_STATUS_DISK_RESET_FAILED},
 
445
        {ERRHRD,        ERRgeneral,     NT_STATUS_SHARED_IRQ_BUSY},
 
446
        {ERRHRD,        ERRgeneral,     NT_STATUS_FT_ORPHANING},
 
447
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000016e)},
 
448
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000016f)},
 
449
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc0000170)},
 
450
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc0000171)},
 
451
        {ERRHRD,        ERRgeneral,     NT_STATUS_PARTITION_FAILURE},
 
452
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_BLOCK_LENGTH},
 
453
        {ERRHRD,        ERRgeneral,     NT_STATUS_DEVICE_NOT_PARTITIONED},
 
454
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNABLE_TO_LOCK_MEDIA},
 
455
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNABLE_TO_UNLOAD_MEDIA},
 
456
        {ERRHRD,        ERRgeneral,     NT_STATUS_EOM_OVERFLOW},
 
457
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_MEDIA},
 
458
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc0000179)},
 
459
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_SUCH_MEMBER},
 
460
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_MEMBER},
 
461
        {ERRHRD,        ERRgeneral,     NT_STATUS_KEY_DELETED},
 
462
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_LOG_SPACE},
 
463
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_SIDS},
 
464
        {ERRHRD,        ERRgeneral,     NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED},
 
465
        {ERRHRD,        ERRgeneral,     NT_STATUS_KEY_HAS_CHILDREN},
 
466
        {ERRHRD,        ERRgeneral,     NT_STATUS_CHILD_MUST_BE_VOLATILE},
 
467
        {ERRDOS,        87,     NT_STATUS_DEVICE_CONFIGURATION_ERROR},
 
468
        {ERRHRD,        ERRgeneral,     NT_STATUS_DRIVER_INTERNAL_ERROR},
 
469
        {ERRDOS,        22,     NT_STATUS_INVALID_DEVICE_STATE},
 
470
        {ERRHRD,        ERRgeneral,     NT_STATUS_IO_DEVICE_ERROR},
 
471
        {ERRHRD,        ERRgeneral,     NT_STATUS_DEVICE_PROTOCOL_ERROR},
 
472
        {ERRHRD,        ERRgeneral,     NT_STATUS_BACKUP_CONTROLLER},
 
473
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOG_FILE_FULL},
 
474
        {ERRDOS,        19,     NT_STATUS_TOO_LATE},
 
475
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NO_TRUST_LSA_SECRET},
 
476
/*      { This NT error code was 'sqashed'
 
477
         from NT_STATUS_NO_TRUST_SAM_ACCOUNT to NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE 
 
478
         during the session setup }
 
479
*/
 
480
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NO_TRUST_SAM_ACCOUNT},
 
481
        {ERRDOS,        ERRnoaccess,    NT_STATUS_TRUSTED_DOMAIN_FAILURE},
 
482
        {ERRDOS,        ERRnoaccess,    NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE},
 
483
        {ERRHRD,        ERRgeneral,     NT_STATUS_EVENTLOG_FILE_CORRUPT},
 
484
        {ERRHRD,        ERRgeneral,     NT_STATUS_EVENTLOG_CANT_START},
 
485
        {ERRDOS,        ERRnoaccess,    NT_STATUS_TRUST_FAILURE},
 
486
        {ERRHRD,        ERRgeneral,     NT_STATUS_MUTANT_LIMIT_EXCEEDED},
 
487
        {ERRDOS,        ERRinvgroup,    NT_STATUS_NETLOGON_NOT_STARTED},
 
488
        {ERRSRV,        2239,   NT_STATUS_ACCOUNT_EXPIRED},
 
489
        {ERRHRD,        ERRgeneral,     NT_STATUS_POSSIBLE_DEADLOCK},
 
490
        {ERRHRD,        ERRgeneral,     NT_STATUS_NETWORK_CREDENTIAL_CONFLICT},
 
491
        {ERRHRD,        ERRgeneral,     NT_STATUS_REMOTE_SESSION_LIMIT},
 
492
        {ERRHRD,        ERRgeneral,     NT_STATUS_EVENTLOG_FILE_CHANGED},
 
493
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT},
 
494
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT},
 
495
        {ERRDOS,        ERRnoaccess,    NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT},
 
496
/*      { This NT error code was 'sqashed'
 
497
         from NT_STATUS_DOMAIN_TRUST_INCONSISTENT to NT_STATUS_LOGON_FAILURE 
 
498
         during the session setup }
 
499
*/
 
500
        {ERRDOS,        ERRnoaccess,    NT_STATUS_DOMAIN_TRUST_INCONSISTENT},
 
501
        {ERRHRD,        ERRgeneral,     NT_STATUS_FS_DRIVER_REQUIRED},
 
502
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_USER_SESSION_KEY},
 
503
        {ERRDOS,        59,     NT_STATUS_USER_SESSION_DELETED},
 
504
        {ERRHRD,        ERRgeneral,     NT_STATUS_RESOURCE_LANG_NOT_FOUND},
 
505
        {ERRDOS,        ERRnomem,       NT_STATUS_INSUFF_SERVER_RESOURCES},
 
506
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_BUFFER_SIZE},
 
507
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_ADDRESS_COMPONENT},
 
508
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_ADDRESS_WILDCARD},
 
509
        {ERRDOS,        68,     NT_STATUS_TOO_MANY_ADDRESSES},
 
510
        {ERRDOS,        52,     NT_STATUS_ADDRESS_ALREADY_EXISTS},
 
511
        {ERRDOS,        64,     NT_STATUS_ADDRESS_CLOSED},
 
512
        {ERRDOS,        64,     NT_STATUS_CONNECTION_DISCONNECTED},
 
513
        {ERRDOS,        64,     NT_STATUS_CONNECTION_RESET},
 
514
        {ERRDOS,        68,     NT_STATUS_TOO_MANY_NODES},
 
515
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_ABORTED},
 
516
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_TIMED_OUT},
 
517
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_NO_RELEASE},
 
518
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_NO_MATCH},
 
519
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_RESPONDED},
 
520
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_INVALID_ID},
 
521
        {ERRDOS,        59,     NT_STATUS_TRANSACTION_INVALID_TYPE},
 
522
        {ERRDOS,        ERRunsup,       NT_STATUS_NOT_SERVER_SESSION},
 
523
        {ERRDOS,        ERRunsup,       NT_STATUS_NOT_CLIENT_SESSION},
 
524
        {ERRHRD,        ERRgeneral,     NT_STATUS_CANNOT_LOAD_REGISTRY_FILE},
 
525
        {ERRHRD,        ERRgeneral,     NT_STATUS_DEBUG_ATTACH_FAILED},
 
526
        {ERRHRD,        ERRgeneral,     NT_STATUS_SYSTEM_PROCESS_TERMINATED},
 
527
        {ERRHRD,        ERRgeneral,     NT_STATUS_DATA_NOT_ACCEPTED},
 
528
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_BROWSER_SERVERS_FOUND},
 
529
        {ERRHRD,        ERRgeneral,     NT_STATUS_VDM_HARD_ERROR},
 
530
        {ERRHRD,        ERRgeneral,     NT_STATUS_DRIVER_CANCEL_TIMEOUT},
 
531
        {ERRHRD,        ERRgeneral,     NT_STATUS_REPLY_MESSAGE_MISMATCH},
 
532
        {ERRHRD,        ERRgeneral,     NT_STATUS_MAPPED_ALIGNMENT},
 
533
        {ERRDOS,        193,    NT_STATUS_IMAGE_CHECKSUM_MISMATCH},
 
534
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOST_WRITEBEHIND_DATA},
 
535
        {ERRHRD,        ERRgeneral,     NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID},
 
536
        {ERRSRV,        2242,   NT_STATUS_PASSWORD_MUST_CHANGE},
 
537
        {ERRHRD,        ERRgeneral,     NT_STATUS_NOT_FOUND},
 
538
        {ERRHRD,        ERRgeneral,     NT_STATUS_NOT_TINY_STREAM},
 
539
        {ERRHRD,        ERRgeneral,     NT_STATUS_RECOVERY_FAILURE},
 
540
        {ERRHRD,        ERRgeneral,     NT_STATUS_STACK_OVERFLOW_READ},
 
541
        {ERRHRD,        ERRgeneral,     NT_STATUS_FAIL_CHECK},
 
542
        {ERRHRD,        ERRgeneral,     NT_STATUS_DUPLICATE_OBJECTID},
 
543
        {ERRHRD,        ERRgeneral,     NT_STATUS_OBJECTID_EXISTS},
 
544
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONVERT_TO_LARGE},
 
545
        {ERRHRD,        ERRgeneral,     NT_STATUS_RETRY},
 
546
        {ERRHRD,        ERRgeneral,     NT_STATUS_FOUND_OUT_OF_SCOPE},
 
547
        {ERRHRD,        ERRgeneral,     NT_STATUS_ALLOCATE_BUCKET},
 
548
        {ERRHRD,        ERRgeneral,     NT_STATUS_PROPSET_NOT_FOUND},
 
549
        {ERRHRD,        ERRgeneral,     NT_STATUS_MARSHALL_OVERFLOW},
 
550
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_VARIANT},
 
551
        {ERRHRD,        ERRgeneral,     NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND},
 
552
        {ERRDOS,        ERRnoaccess,    NT_STATUS_ACCOUNT_LOCKED_OUT},
 
553
        {ERRDOS,        ERRbadfid,      NT_STATUS_HANDLE_NOT_CLOSABLE},
 
554
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONNECTION_REFUSED},
 
555
        {ERRHRD,        ERRgeneral,     NT_STATUS_GRACEFUL_DISCONNECT},
 
556
        {ERRHRD,        ERRgeneral,     NT_STATUS_ADDRESS_ALREADY_ASSOCIATED},
 
557
        {ERRHRD,        ERRgeneral,     NT_STATUS_ADDRESS_NOT_ASSOCIATED},
 
558
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONNECTION_INVALID},
 
559
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONNECTION_ACTIVE},
 
560
        {ERRHRD,        ERRgeneral,     NT_STATUS_NETWORK_UNREACHABLE},
 
561
        {ERRHRD,        ERRgeneral,     NT_STATUS_HOST_UNREACHABLE},
 
562
        {ERRHRD,        ERRgeneral,     NT_STATUS_PROTOCOL_UNREACHABLE},
 
563
        {ERRHRD,        ERRgeneral,     NT_STATUS_PORT_UNREACHABLE},
 
564
        {ERRHRD,        ERRgeneral,     NT_STATUS_REQUEST_ABORTED},
 
565
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONNECTION_ABORTED},
 
566
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_COMPRESSION_BUFFER},
 
567
        {ERRHRD,        ERRgeneral,     NT_STATUS_USER_MAPPED_FILE},
 
568
        {ERRHRD,        ERRgeneral,     NT_STATUS_AUDIT_FAILED},
 
569
        {ERRHRD,        ERRgeneral,     NT_STATUS_TIMER_RESOLUTION_NOT_SET},
 
570
        {ERRHRD,        ERRgeneral,     NT_STATUS_CONNECTION_COUNT_LIMIT},
 
571
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGIN_TIME_RESTRICTION},
 
572
        {ERRHRD,        ERRgeneral,     NT_STATUS_LOGIN_WKSTA_RESTRICTION},
 
573
        {ERRDOS,        193,    NT_STATUS_IMAGE_MP_UP_MISMATCH},
 
574
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024a)},
 
575
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024b)},
 
576
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024c)},
 
577
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024d)},
 
578
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024e)},
 
579
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000024f)},
 
580
        {ERRHRD,        ERRgeneral,     NT_STATUS_INSUFFICIENT_LOGON_INFO},
 
581
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_DLL_ENTRYPOINT},
 
582
        {ERRHRD,        ERRgeneral,     NT_STATUS_BAD_SERVICE_ENTRYPOINT},
 
583
        {ERRHRD,        ERRgeneral,     NT_STATUS_LPC_REPLY_LOST},
 
584
        {ERRHRD,        ERRgeneral,     NT_STATUS_IP_ADDRESS_CONFLICT1},
 
585
        {ERRHRD,        ERRgeneral,     NT_STATUS_IP_ADDRESS_CONFLICT2},
 
586
        {ERRHRD,        ERRgeneral,     NT_STATUS_REGISTRY_QUOTA_LIMIT},
 
587
        {ERRSRV,        ERRbadtype,     NT_STATUS_PATH_NOT_COVERED},
 
588
        {ERRHRD,        ERRgeneral,     NT_STATUS_NO_CALLBACK_ACTIVE},
 
589
        {ERRHRD,        ERRgeneral,     NT_STATUS_LICENSE_QUOTA_EXCEEDED},
 
590
        {ERRHRD,        ERRgeneral,     NT_STATUS_PWD_TOO_SHORT},
 
591
        {ERRHRD,        ERRgeneral,     NT_STATUS_PWD_TOO_RECENT},
 
592
        {ERRHRD,        ERRgeneral,     NT_STATUS_PWD_HISTORY_CONFLICT},
 
593
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000025d)},
 
594
        {ERRHRD,        ERRgeneral,     NT_STATUS_PLUGPLAY_NO_DEVICE},
 
595
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNSUPPORTED_COMPRESSION},
 
596
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_HW_PROFILE},
 
597
        {ERRHRD,        ERRgeneral,     NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH},
 
598
        {ERRDOS,        182,    NT_STATUS_DRIVER_ORDINAL_NOT_FOUND},
 
599
        {ERRDOS,        127,    NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND},
 
600
        {ERRDOS,        288,    NT_STATUS_RESOURCE_NOT_OWNED},
 
601
        {ERRHRD,        ERRgeneral,     NT_STATUS_TOO_MANY_LINKS},
 
602
        {ERRHRD,        ERRgeneral,     NT_STATUS_QUOTA_LIST_INCONSISTENT},
 
603
        {ERRHRD,        ERRgeneral,     NT_STATUS_FILE_IS_OFFLINE},
 
604
        {ERRDOS,        21,     NT_STATUS(0xc000026e)},
 
605
        {ERRDOS,        161,    NT_STATUS(0xc0000281)},
 
606
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc000028a)},
 
607
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc000028b)},
 
608
        {ERRHRD,        ERRgeneral,     NT_STATUS(0xc000028c)},
 
609
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc000028d)},
 
610
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc000028e)},
 
611
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc000028f)},
 
612
        {ERRDOS,        ERRnoaccess,    NT_STATUS(0xc0000290)},
 
613
        {ERRDOS,        ERRbadfunc,     NT_STATUS(0xc000029c)},
 
614
};
 
615
 
 
616
 
 
617
/* dos -> nt status error map */
 
618
static const struct {
 
619
        uint8 dos_class;
 
620
        uint32 dos_code;
 
621
        NTSTATUS ntstatus;
 
622
} dos_to_ntstatus_map[] = {
 
623
        {ERRDOS,        ERRbadfunc,     NT_STATUS_NOT_IMPLEMENTED},
 
624
        {ERRDOS,        ERRbadfile,     NT_STATUS_NO_SUCH_FILE},
 
625
        {ERRDOS,        ERRbadpath,     NT_STATUS_OBJECT_PATH_NOT_FOUND},
 
626
        {ERRDOS,        ERRnofids,      NT_STATUS_TOO_MANY_OPENED_FILES},
 
627
        {ERRDOS,        ERRnoaccess,    NT_STATUS_ACCESS_DENIED},
 
628
        {ERRDOS,        ERRbadfid,      NT_STATUS_INVALID_HANDLE},
 
629
        {ERRDOS,        ERRnomem,       NT_STATUS_INSUFFICIENT_RESOURCES},
 
630
        {ERRDOS,        ERRbadaccess,   NT_STATUS_ACCESS_DENIED},
 
631
        {ERRDOS,        ERRbaddata,     NT_STATUS_DATA_ERROR},
 
632
        {ERRDOS,        14,     NT_STATUS_SECTION_NOT_EXTENDED},
 
633
        {ERRDOS,        ERRremcd,       NT_STATUS_DIRECTORY_NOT_EMPTY},
 
634
        {ERRDOS,        ERRdiffdevice,  NT_STATUS_NOT_SAME_DEVICE},
 
635
        {ERRDOS,        ERRnofiles,     STATUS_NO_MORE_FILES},
 
636
        {ERRDOS,        19,     NT_STATUS_MEDIA_WRITE_PROTECTED},
 
637
        {ERRDOS,        21,     NT_STATUS_NO_MEDIA_IN_DEVICE},
 
638
        {ERRDOS,        22,     NT_STATUS_INVALID_DEVICE_STATE},
 
639
        {ERRDOS,        23,     NT_STATUS_DATA_ERROR},
 
640
        {ERRDOS,        24,     NT_STATUS_DATA_ERROR},
 
641
        {ERRDOS,        26,     NT_STATUS_DISK_CORRUPT_ERROR},
 
642
        {ERRDOS,        27,     NT_STATUS_NONEXISTENT_SECTOR},
 
643
        {ERRDOS,        28,     NT_STATUS(0x8000000e)},
 
644
        {ERRDOS,        31,     NT_STATUS_UNSUCCESSFUL},
 
645
        {ERRDOS,        ERRbadshare,    NT_STATUS_SHARING_VIOLATION},
 
646
        {ERRDOS,        ERRlock,        NT_STATUS_FILE_LOCK_CONFLICT},
 
647
        {ERRDOS,        34,     NT_STATUS_WRONG_VOLUME},
 
648
        {ERRDOS,        38,     NT_STATUS_END_OF_FILE},
 
649
        {ERRDOS,        ERRunsup,       NT_STATUS_CTL_FILE_NOT_SUPPORTED},
 
650
        {ERRDOS,        51,     NT_STATUS_REMOTE_NOT_LISTENING},
 
651
        {ERRDOS,        52,     NT_STATUS_DUPLICATE_NAME},
 
652
        {ERRDOS,        53,     NT_STATUS_BAD_NETWORK_PATH},
 
653
        {ERRDOS,        54,     NT_STATUS_NETWORK_BUSY},
 
654
        {ERRDOS,        55,     NT_STATUS_DEVICE_DOES_NOT_EXIST},
 
655
        {ERRDOS,        56,     NT_STATUS_TOO_MANY_COMMANDS},
 
656
        {ERRDOS,        57,     NT_STATUS_ADAPTER_HARDWARE_ERROR},
 
657
        {ERRDOS,        58,     NT_STATUS_INVALID_NETWORK_RESPONSE},
 
658
        {ERRDOS,        59,     NT_STATUS_UNEXPECTED_NETWORK_ERROR},
 
659
        {ERRDOS,        60,     NT_STATUS_BAD_REMOTE_ADAPTER},
 
660
        {ERRDOS,        61,     NT_STATUS_PRINT_QUEUE_FULL},
 
661
        {ERRDOS,        62,     NT_STATUS_NO_SPOOL_SPACE},
 
662
        {ERRDOS,        63,     NT_STATUS_PRINT_CANCELLED},
 
663
        {ERRDOS,        64,     NT_STATUS_NETWORK_NAME_DELETED},
 
664
        {ERRDOS,        65,     NT_STATUS_NETWORK_ACCESS_DENIED},
 
665
        {ERRDOS,        66,     NT_STATUS_BAD_DEVICE_TYPE},
 
666
        {ERRDOS,        ERRnosuchshare, NT_STATUS_BAD_NETWORK_NAME},
 
667
        {ERRDOS,        68,     NT_STATUS_TOO_MANY_GUIDS_REQUESTED},
 
668
        {ERRDOS,        69,     NT_STATUS_TOO_MANY_SESSIONS},
 
669
        {ERRDOS,        70,     NT_STATUS_SHARING_PAUSED},
 
670
        {ERRDOS,        71,     NT_STATUS_REQUEST_NOT_ACCEPTED},
 
671
        {ERRDOS,        72,     NT_STATUS_REDIRECTOR_PAUSED},
 
672
        {ERRDOS,        ERRfilexists,   NT_STATUS_OBJECT_NAME_COLLISION},
 
673
        {ERRDOS,        86,     NT_STATUS_WRONG_PASSWORD},
 
674
        {ERRDOS,        87,     NT_STATUS_INVALID_INFO_CLASS},
 
675
        {ERRDOS,        88,     NT_STATUS_NET_WRITE_FAULT},
 
676
        {ERRDOS,        109,    NT_STATUS_PIPE_BROKEN},
 
677
        {ERRDOS,        111,    STATUS_MORE_ENTRIES},
 
678
        {ERRDOS,        112,    NT_STATUS_DISK_FULL},
 
679
        {ERRDOS,        121,    NT_STATUS_IO_TIMEOUT},
 
680
        {ERRDOS,        122,    NT_STATUS_BUFFER_TOO_SMALL},
 
681
        {ERRDOS,        ERRinvalidname, NT_STATUS_OBJECT_NAME_INVALID},
 
682
        {ERRDOS,        ERRunknownlevel,        NT_STATUS_INVALID_LEVEL},
 
683
        {ERRDOS,        126,    NT_STATUS_DLL_NOT_FOUND},
 
684
        {ERRDOS,        127,    NT_STATUS_PROCEDURE_NOT_FOUND},
 
685
        {ERRDOS,        145,    NT_STATUS_DIRECTORY_NOT_EMPTY},
 
686
        {ERRDOS,        154,    NT_STATUS_INVALID_VOLUME_LABEL},
 
687
        {ERRDOS,        156,    NT_STATUS_SUSPEND_COUNT_EXCEEDED},
 
688
        {ERRDOS,        158,    NT_STATUS_NOT_LOCKED},
 
689
        {ERRDOS,        161,    NT_STATUS_OBJECT_PATH_INVALID},
 
690
        {ERRDOS,        170,    NT_STATUS(0x80000011)},
 
691
        {ERRDOS,        182,    NT_STATUS_ORDINAL_NOT_FOUND},
 
692
        {ERRDOS,        183,    NT_STATUS_OBJECT_NAME_COLLISION},
 
693
        {ERRDOS,        193,    NT_STATUS_BAD_INITIAL_PC},
 
694
        {ERRDOS,        203,    NT_STATUS(0xc0000100)},
 
695
        {ERRDOS,        206,    NT_STATUS_NAME_TOO_LONG},
 
696
        {ERRDOS,        ERRbadpipe,     NT_STATUS_INVALID_INFO_CLASS},
 
697
        {ERRDOS,        ERRpipebusy,    NT_STATUS_INSTANCE_NOT_AVAILABLE},
 
698
        {ERRDOS,        ERRpipeclosing, NT_STATUS_PIPE_CLOSING},
 
699
        {ERRDOS,        ERRnotconnected,        NT_STATUS_PIPE_DISCONNECTED},
 
700
        {ERRDOS,        ERRmoredata,    NT_STATUS_MORE_PROCESSING_REQUIRED},
 
701
        {ERRDOS,        240,    NT_STATUS_VIRTUAL_CIRCUIT_CLOSED},
 
702
        {ERRDOS,        254,    NT_STATUS(0x80000013)},
 
703
        {ERRDOS,        255,    NT_STATUS_EA_TOO_LARGE},
 
704
        {ERRDOS,        259,    NT_STATUS_GUIDS_EXHAUSTED},
 
705
        {ERRDOS,        267,    NT_STATUS_NOT_A_DIRECTORY},
 
706
        {ERRDOS,        275,    NT_STATUS_EA_TOO_LARGE},
 
707
        {ERRDOS,        276,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
708
        {ERRDOS,        277,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
709
        {ERRDOS,        278,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
710
        {ERRDOS,        282,    NT_STATUS_EAS_NOT_SUPPORTED},
 
711
        {ERRDOS,        288,    NT_STATUS_MUTANT_NOT_OWNED},
 
712
        {ERRDOS,        298,    NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED},
 
713
        {ERRDOS,        299,    NT_STATUS(0x8000000d)},
 
714
        {ERRDOS,        300,    NT_STATUS_OPLOCK_NOT_GRANTED},
 
715
        {ERRDOS,        301,    NT_STATUS_INVALID_OPLOCK_PROTOCOL},
 
716
        {ERRDOS,        487,    NT_STATUS_CONFLICTING_ADDRESSES},
 
717
        {ERRDOS,        534,    NT_STATUS_INTEGER_OVERFLOW},
 
718
        {ERRDOS,        535,    NT_STATUS_PIPE_CONNECTED},
 
719
        {ERRDOS,        536,    NT_STATUS_PIPE_LISTENING},
 
720
        {ERRDOS,        995,    NT_STATUS_CANCELLED},
 
721
        {ERRDOS,        997,    NT_STATUS(0x00000103)},
 
722
        {ERRDOS,        998,    NT_STATUS_ACCESS_VIOLATION},
 
723
        {ERRDOS,        999,    NT_STATUS_IN_PAGE_ERROR},
 
724
        {ERRDOS,        1001,   NT_STATUS_BAD_INITIAL_STACK},
 
725
        {ERRDOS,        1005,   NT_STATUS_UNRECOGNIZED_VOLUME},
 
726
        {ERRDOS,        1006,   NT_STATUS_FILE_INVALID},
 
727
        {ERRDOS,        1007,   NT_STATUS_FULLSCREEN_MODE},
 
728
        {ERRDOS,        1008,   NT_STATUS_NO_TOKEN},
 
729
        {ERRDOS,        1009,   NT_STATUS_REGISTRY_CORRUPT},
 
730
        {ERRDOS,        1016,   NT_STATUS_REGISTRY_IO_FAILED},
 
731
        {ERRDOS,        1017,   NT_STATUS_NOT_REGISTRY_FILE},
 
732
        {ERRDOS,        1018,   NT_STATUS_KEY_DELETED},
 
733
        {ERRDOS,        1019,   NT_STATUS_NO_LOG_SPACE},
 
734
        {ERRDOS,        1020,   NT_STATUS_KEY_HAS_CHILDREN},
 
735
        {ERRDOS,        1021,   NT_STATUS_CHILD_MUST_BE_VOLATILE},
 
736
        {ERRDOS,        1022,   NT_STATUS(0x0000010c)},
 
737
        {ERRSRV,        ERRbadpw,       NT_STATUS_WRONG_PASSWORD},
 
738
        {ERRSRV,        ERRbadtype,     NT_STATUS_BAD_DEVICE_TYPE},
 
739
        {ERRSRV,        ERRaccess,      NT_STATUS_NETWORK_ACCESS_DENIED},
 
740
        {ERRSRV,        ERRinvnid,      NT_STATUS_NETWORK_NAME_DELETED},
 
741
        {ERRSRV,        ERRinvnetname,  NT_STATUS_BAD_NETWORK_NAME},
 
742
        {ERRSRV,        ERRinvdevice,   NT_STATUS_BAD_DEVICE_TYPE},
 
743
        {ERRSRV,        ERRqfull,       NT_STATUS_PRINT_QUEUE_FULL},
 
744
        {ERRSRV,        ERRqtoobig,     NT_STATUS_NO_SPOOL_SPACE},
 
745
        {ERRSRV,        ERRinvpfid,     NT_STATUS_PRINT_CANCELLED},
 
746
        {ERRSRV,        ERRsmbcmd,      NT_STATUS_NOT_IMPLEMENTED},
 
747
        {ERRSRV,        ERRbadpermits,  NT_STATUS_NETWORK_ACCESS_DENIED},
 
748
        {ERRSRV,        ERRpaused,      NT_STATUS_SHARING_PAUSED},
 
749
        {ERRSRV,        ERRmsgoff,      NT_STATUS_REQUEST_NOT_ACCEPTED},
 
750
        {ERRSRV,        ERRnoroom,      NT_STATUS_DISK_FULL},
 
751
        {ERRSRV,        ERRnoresource,  NT_STATUS_REQUEST_NOT_ACCEPTED},
 
752
        {ERRSRV,        ERRtoomanyuids, NT_STATUS_TOO_MANY_SESSIONS},
 
753
        {ERRSRV,        123,    NT_STATUS_OBJECT_NAME_INVALID},
 
754
        {ERRSRV,        206,    NT_STATUS_OBJECT_NAME_INVALID},
 
755
        {ERRHRD,        1,      NT_STATUS_NOT_IMPLEMENTED},
 
756
        {ERRHRD,        2,      NT_STATUS_NO_SUCH_DEVICE},
 
757
        {ERRHRD,        3,      NT_STATUS_OBJECT_PATH_NOT_FOUND},
 
758
        {ERRHRD,        4,      NT_STATUS_TOO_MANY_OPENED_FILES},
 
759
        {ERRHRD,        5,      NT_STATUS_INVALID_LOCK_SEQUENCE},
 
760
        {ERRHRD,        6,      NT_STATUS_INVALID_HANDLE},
 
761
        {ERRHRD,        8,      NT_STATUS_INSUFFICIENT_RESOURCES},
 
762
        {ERRHRD,        12,     NT_STATUS_INVALID_LOCK_SEQUENCE},
 
763
        {ERRHRD,        13,     NT_STATUS_DATA_ERROR},
 
764
        {ERRHRD,        14,     NT_STATUS_SECTION_NOT_EXTENDED},
 
765
        {ERRHRD,        16,     NT_STATUS_DIRECTORY_NOT_EMPTY},
 
766
        {ERRHRD,        17,     NT_STATUS_NOT_SAME_DEVICE},
 
767
        {ERRHRD,        18,     NT_STATUS(0x80000006)},
 
768
        {ERRHRD,        ERRnowrite,     NT_STATUS_MEDIA_WRITE_PROTECTED},
 
769
        {ERRHRD,        ERRnotready,    NT_STATUS_NO_MEDIA_IN_DEVICE},
 
770
        {ERRHRD,        ERRbadcmd,      NT_STATUS_INVALID_DEVICE_STATE},
 
771
        {ERRHRD,        ERRdata,        NT_STATUS_DATA_ERROR},
 
772
        {ERRHRD,        ERRbadreq,      NT_STATUS_DATA_ERROR},
 
773
        {ERRHRD,        ERRbadmedia,    NT_STATUS_DISK_CORRUPT_ERROR},
 
774
        {ERRHRD,        ERRbadsector,   NT_STATUS_NONEXISTENT_SECTOR},
 
775
        {ERRHRD,        ERRnopaper,     NT_STATUS(0x8000000e)},
 
776
        {ERRHRD,        ERRgeneral,     NT_STATUS_UNSUCCESSFUL},
 
777
        {ERRHRD,        ERRbadshare,    NT_STATUS_SHARING_VIOLATION},
 
778
        {ERRHRD,        ERRlock,        NT_STATUS_FILE_LOCK_CONFLICT},
 
779
        {ERRHRD,        ERRwrongdisk,   NT_STATUS_WRONG_VOLUME},
 
780
        {ERRHRD,        38,     NT_STATUS_END_OF_FILE},
 
781
        {ERRHRD,        ERRdiskfull,    NT_STATUS_DISK_FULL},
 
782
        {ERRHRD,        50,     NT_STATUS_CTL_FILE_NOT_SUPPORTED},
 
783
        {ERRHRD,        51,     NT_STATUS_REMOTE_NOT_LISTENING},
 
784
        {ERRHRD,        52,     NT_STATUS_DUPLICATE_NAME},
 
785
        {ERRHRD,        53,     NT_STATUS_BAD_NETWORK_PATH},
 
786
        {ERRHRD,        54,     NT_STATUS_NETWORK_BUSY},
 
787
        {ERRHRD,        55,     NT_STATUS_DEVICE_DOES_NOT_EXIST},
 
788
        {ERRHRD,        56,     NT_STATUS_TOO_MANY_COMMANDS},
 
789
        {ERRHRD,        57,     NT_STATUS_ADAPTER_HARDWARE_ERROR},
 
790
        {ERRHRD,        58,     NT_STATUS_INVALID_NETWORK_RESPONSE},
 
791
        {ERRHRD,        59,     NT_STATUS_UNEXPECTED_NETWORK_ERROR},
 
792
        {ERRHRD,        60,     NT_STATUS_BAD_REMOTE_ADAPTER},
 
793
        {ERRHRD,        61,     NT_STATUS_PRINT_QUEUE_FULL},
 
794
        {ERRHRD,        62,     NT_STATUS_NO_SPOOL_SPACE},
 
795
        {ERRHRD,        63,     NT_STATUS_PRINT_CANCELLED},
 
796
        {ERRHRD,        64,     NT_STATUS_NETWORK_NAME_DELETED},
 
797
        {ERRHRD,        65,     NT_STATUS_NETWORK_ACCESS_DENIED},
 
798
        {ERRHRD,        66,     NT_STATUS_BAD_DEVICE_TYPE},
 
799
        {ERRHRD,        67,     NT_STATUS_BAD_NETWORK_NAME},
 
800
        {ERRHRD,        68,     NT_STATUS_TOO_MANY_GUIDS_REQUESTED},
 
801
        {ERRHRD,        69,     NT_STATUS_TOO_MANY_SESSIONS},
 
802
        {ERRHRD,        70,     NT_STATUS_SHARING_PAUSED},
 
803
        {ERRHRD,        71,     NT_STATUS_REQUEST_NOT_ACCEPTED},
 
804
        {ERRHRD,        72,     NT_STATUS_REDIRECTOR_PAUSED},
 
805
        {ERRHRD,        80,     NT_STATUS_OBJECT_NAME_COLLISION},
 
806
        {ERRHRD,        86,     NT_STATUS_WRONG_PASSWORD},
 
807
        {ERRHRD,        87,     NT_STATUS_INVALID_INFO_CLASS},
 
808
        {ERRHRD,        88,     NT_STATUS_NET_WRITE_FAULT},
 
809
        {ERRHRD,        109,    NT_STATUS_PIPE_BROKEN},
 
810
        {ERRHRD,        111,    STATUS_MORE_ENTRIES},
 
811
        {ERRHRD,        112,    NT_STATUS_DISK_FULL},
 
812
        {ERRHRD,        121,    NT_STATUS_IO_TIMEOUT},
 
813
        {ERRHRD,        122,    NT_STATUS_BUFFER_TOO_SMALL},
 
814
        {ERRHRD,        123,    NT_STATUS_OBJECT_NAME_INVALID},
 
815
        {ERRHRD,        124,    NT_STATUS_INVALID_LEVEL},
 
816
        {ERRHRD,        126,    NT_STATUS_DLL_NOT_FOUND},
 
817
        {ERRHRD,        127,    NT_STATUS_PROCEDURE_NOT_FOUND},
 
818
        {ERRHRD,        145,    NT_STATUS_DIRECTORY_NOT_EMPTY},
 
819
        {ERRHRD,        154,    NT_STATUS_INVALID_VOLUME_LABEL},
 
820
        {ERRHRD,        156,    NT_STATUS_SUSPEND_COUNT_EXCEEDED},
 
821
        {ERRHRD,        158,    NT_STATUS_NOT_LOCKED},
 
822
        {ERRHRD,        161,    NT_STATUS_OBJECT_PATH_INVALID},
 
823
        {ERRHRD,        170,    NT_STATUS(0x80000011)},
 
824
        {ERRHRD,        182,    NT_STATUS_ORDINAL_NOT_FOUND},
 
825
        {ERRHRD,        183,    NT_STATUS_OBJECT_NAME_COLLISION},
 
826
        {ERRHRD,        193,    NT_STATUS_BAD_INITIAL_PC},
 
827
        {ERRHRD,        203,    NT_STATUS(0xc0000100)},
 
828
        {ERRHRD,        206,    NT_STATUS_NAME_TOO_LONG},
 
829
        {ERRHRD,        230,    NT_STATUS_INVALID_INFO_CLASS},
 
830
        {ERRHRD,        231,    NT_STATUS_INSTANCE_NOT_AVAILABLE},
 
831
        {ERRHRD,        232,    NT_STATUS_PIPE_CLOSING},
 
832
        {ERRHRD,        233,    NT_STATUS_PIPE_DISCONNECTED},
 
833
        {ERRHRD,        234,    STATUS_MORE_ENTRIES},
 
834
        {ERRHRD,        240,    NT_STATUS_VIRTUAL_CIRCUIT_CLOSED},
 
835
        {ERRHRD,        254,    NT_STATUS(0x80000013)},
 
836
        {ERRHRD,        255,    NT_STATUS_EA_TOO_LARGE},
 
837
        {ERRHRD,        259,    NT_STATUS_GUIDS_EXHAUSTED},
 
838
        {ERRHRD,        267,    NT_STATUS_NOT_A_DIRECTORY},
 
839
        {ERRHRD,        275,    NT_STATUS_EA_TOO_LARGE},
 
840
        {ERRHRD,        276,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
841
        {ERRHRD,        277,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
842
        {ERRHRD,        278,    NT_STATUS_NONEXISTENT_EA_ENTRY},
 
843
        {ERRHRD,        282,    NT_STATUS_EAS_NOT_SUPPORTED},
 
844
        {ERRHRD,        288,    NT_STATUS_MUTANT_NOT_OWNED},
 
845
        {ERRHRD,        298,    NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED},
 
846
        {ERRHRD,        299,    NT_STATUS(0x8000000d)},
 
847
        {ERRHRD,        300,    NT_STATUS_OPLOCK_NOT_GRANTED},
 
848
        {ERRHRD,        301,    NT_STATUS_INVALID_OPLOCK_PROTOCOL},
 
849
        {ERRHRD,        487,    NT_STATUS_CONFLICTING_ADDRESSES},
 
850
        {ERRHRD,        534,    NT_STATUS_INTEGER_OVERFLOW},
 
851
        {ERRHRD,        535,    NT_STATUS_PIPE_CONNECTED},
 
852
        {ERRHRD,        536,    NT_STATUS_PIPE_LISTENING},
 
853
        {ERRHRD,        995,    NT_STATUS_CANCELLED},
 
854
        {ERRHRD,        997,    NT_STATUS(0x00000103)},
 
855
        {ERRHRD,        998,    NT_STATUS_ACCESS_VIOLATION},
 
856
        {ERRHRD,        999,    NT_STATUS_IN_PAGE_ERROR},
 
857
        {ERRHRD,        1001,   NT_STATUS_BAD_INITIAL_STACK},
 
858
        {ERRHRD,        1005,   NT_STATUS_UNRECOGNIZED_VOLUME},
 
859
        {ERRHRD,        1006,   NT_STATUS_FILE_INVALID},
 
860
        {ERRHRD,        1007,   NT_STATUS_FULLSCREEN_MODE},
 
861
        {ERRHRD,        1008,   NT_STATUS_NO_TOKEN},
 
862
        {ERRHRD,        1009,   NT_STATUS_REGISTRY_CORRUPT},
 
863
        {ERRHRD,        1016,   NT_STATUS_REGISTRY_IO_FAILED},
 
864
        {ERRHRD,        1017,   NT_STATUS_NOT_REGISTRY_FILE},
 
865
        {ERRHRD,        1018,   NT_STATUS_KEY_DELETED},
 
866
        {ERRHRD,        1019,   NT_STATUS_NO_LOG_SPACE},
 
867
        {ERRHRD,        1020,   NT_STATUS_KEY_HAS_CHILDREN},
 
868
        {ERRHRD,        1021,   NT_STATUS_CHILD_MUST_BE_VOLATILE},
 
869
        {ERRHRD,        1022,   NT_STATUS(0x0000010c)},
 
870
};
 
871
 
 
872
/* errmap NTSTATUS->Win32 */
 
873
static const struct {
 
874
        NTSTATUS ntstatus;
 
875
        WERROR werror;
 
876
} ntstatus_to_werror_map[] = {
 
877
        {NT_STATUS(0x103), W_ERROR(0x3e5)},
 
878
        {NT_STATUS(0x105), W_ERROR(0xea)},
 
879
        {NT_STATUS(0x106), W_ERROR(0x514)},
 
880
        {NT_STATUS(0x107), W_ERROR(0x515)},
 
881
        {NT_STATUS(0x10c), W_ERROR(0x3fe)},
 
882
        {NT_STATUS(0x10d), W_ERROR(0x516)},
 
883
        {NT_STATUS(0x121), W_ERROR(0x2009)},
 
884
        {NT_STATUS(0xc0000001), W_ERROR(0x1f)},
 
885
        {NT_STATUS(0xc0000002), W_ERROR(0x1)},
 
886
        {NT_STATUS(0xc0000003), W_ERROR(0x57)},
 
887
        {NT_STATUS(0xc0000004), W_ERROR(0x18)},
 
888
        {NT_STATUS(0xc0000005), W_ERROR(0x3e6)},
 
889
        {NT_STATUS(0xc0000006), W_ERROR(0x3e7)},
 
890
        {NT_STATUS(0xc0000007), W_ERROR(0x5ae)},
 
891
        {NT_STATUS(0xc0000008), W_ERROR(0x6)},
 
892
        {NT_STATUS(0xc0000009), W_ERROR(0x3e9)},
 
893
        {NT_STATUS(0xc000000a), W_ERROR(0xc1)},
 
894
        {NT_STATUS(0xc000000b), W_ERROR(0x57)},
 
895
        {NT_STATUS(0xc000000d), W_ERROR(0x57)},
 
896
        {NT_STATUS(0xc000000e), W_ERROR(0x2)},
 
897
        {NT_STATUS(0xc000000f), W_ERROR(0x2)},
 
898
        {NT_STATUS(0xc0000010), W_ERROR(0x1)},
 
899
        {NT_STATUS(0xc0000011), W_ERROR(0x26)},
 
900
        {NT_STATUS(0xc0000012), W_ERROR(0x22)},
 
901
        {NT_STATUS(0xc0000013), W_ERROR(0x15)},
 
902
        {NT_STATUS(0xc0000014), W_ERROR(0x6f9)},
 
903
        {NT_STATUS(0xc0000015), W_ERROR(0x1b)},
 
904
        {NT_STATUS(0xc0000016), W_ERROR(0xea)},
 
905
        {NT_STATUS(0xc0000017), W_ERROR(0x8)},
 
906
        {NT_STATUS(0xc0000018), W_ERROR(0x1e7)},
 
907
        {NT_STATUS(0xc0000019), W_ERROR(0x1e7)},
 
908
        {NT_STATUS(0xc000001a), W_ERROR(0x57)},
 
909
        {NT_STATUS(0xc000001b), W_ERROR(0x57)},
 
910
        {NT_STATUS(0xc000001c), W_ERROR(0x1)},
 
911
        {NT_STATUS(0xc000001d), W_ERROR(0xc000001d)},
 
912
        {NT_STATUS(0xc000001e), W_ERROR(0x5)},
 
913
        {NT_STATUS(0xc000001f), W_ERROR(0x5)},
 
914
        {NT_STATUS(0xc0000020), W_ERROR(0xc1)},
 
915
        {NT_STATUS(0xc0000021), W_ERROR(0x5)},
 
916
        {NT_STATUS(0xc0000022), W_ERROR(0x5)},
 
917
        {NT_STATUS(0xc0000023), W_ERROR(0x7a)},
 
918
        {NT_STATUS(0xc0000024), W_ERROR(0x6)},
 
919
        {NT_STATUS(0xc0000025), W_ERROR(0xc0000025)},
 
920
        {NT_STATUS(0xc0000026), W_ERROR(0xc0000026)},
 
921
        {NT_STATUS(0xc000002a), W_ERROR(0x9e)},
 
922
        {NT_STATUS(0xc000002b), W_ERROR(0xc000002b)},
 
923
        {NT_STATUS(0xc000002c), W_ERROR(0x1e7)},
 
924
        {NT_STATUS(0xc000002d), W_ERROR(0x1e7)},
 
925
        {NT_STATUS(0xc0000030), W_ERROR(0x57)},
 
926
        {NT_STATUS(0xc0000032), W_ERROR(0x571)},
 
927
        {NT_STATUS(0xc0000033), W_ERROR(0x7b)},
 
928
        {NT_STATUS(0xc0000034), W_ERROR(0x2)},
 
929
        {NT_STATUS(0xc0000035), W_ERROR(0xb7)},
 
930
        {NT_STATUS(0xc0000037), W_ERROR(0x6)},
 
931
        {NT_STATUS(0xc0000039), W_ERROR(0xa1)},
 
932
        {NT_STATUS(0xc000003a), W_ERROR(0x3)},
 
933
        {NT_STATUS(0xc000003b), W_ERROR(0xa1)},
 
934
        {NT_STATUS(0xc000003c), W_ERROR(0x45d)},
 
935
        {NT_STATUS(0xc000003d), W_ERROR(0x45d)},
 
936
        {NT_STATUS(0xc000003e), W_ERROR(0x17)},
 
937
        {NT_STATUS(0xc000003f), W_ERROR(0x17)},
 
938
        {NT_STATUS(0xc0000040), W_ERROR(0x8)},
 
939
        {NT_STATUS(0xc0000041), W_ERROR(0x5)},
 
940
        {NT_STATUS(0xc0000042), W_ERROR(0x6)},
 
941
        {NT_STATUS(0xc0000043), W_ERROR(0x20)},
 
942
        {NT_STATUS(0xc0000044), W_ERROR(0x718)},
 
943
        {NT_STATUS(0xc0000045), W_ERROR(0x57)},
 
944
        {NT_STATUS(0xc0000046), W_ERROR(0x120)},
 
945
        {NT_STATUS(0xc0000047), W_ERROR(0x12a)},
 
946
        {NT_STATUS(0xc0000048), W_ERROR(0x57)},
 
947
        {NT_STATUS(0xc0000049), W_ERROR(0x57)},
 
948
        {NT_STATUS(0xc000004a), W_ERROR(0x9c)},
 
949
        {NT_STATUS(0xc000004b), W_ERROR(0x5)},
 
950
        {NT_STATUS(0xc000004c), W_ERROR(0x57)},
 
951
        {NT_STATUS(0xc000004d), W_ERROR(0x57)},
 
952
        {NT_STATUS(0xc000004e), W_ERROR(0x57)},
 
953
        {NT_STATUS(0xc000004f), W_ERROR(0x11a)},
 
954
        {NT_STATUS(0xc0000050), W_ERROR(0xff)},
 
955
        {NT_STATUS(0xc0000051), W_ERROR(0x570)},
 
956
        {NT_STATUS(0xc0000052), W_ERROR(0x570)},
 
957
        {NT_STATUS(0xc0000053), W_ERROR(0x570)},
 
958
        {NT_STATUS(0xc0000054), W_ERROR(0x21)},
 
959
        {NT_STATUS(0xc0000055), W_ERROR(0x21)},
 
960
        {NT_STATUS(0xc0000056), W_ERROR(0x5)},
 
961
        {NT_STATUS(0xc0000057), W_ERROR(0x32)},
 
962
        {NT_STATUS(0xc0000058), W_ERROR(0x519)},
 
963
        {NT_STATUS(0xc0000059), W_ERROR(0x51a)},
 
964
        {NT_STATUS(0xc000005a), W_ERROR(0x51b)},
 
965
        {NT_STATUS(0xc000005b), W_ERROR(0x51c)},
 
966
        {NT_STATUS(0xc000005c), W_ERROR(0x51d)},
 
967
        {NT_STATUS(0xc000005d), W_ERROR(0x51e)},
 
968
        {NT_STATUS(0xc000005e), W_ERROR(0x51f)},
 
969
        {NT_STATUS(0xc000005f), W_ERROR(0x520)},
 
970
        {NT_STATUS(0xc0000060), W_ERROR(0x521)},
 
971
        {NT_STATUS(0xc0000061), W_ERROR(0x522)},
 
972
        {NT_STATUS(0xc0000062), W_ERROR(0x523)},
 
973
        {NT_STATUS(0xc0000063), W_ERROR(0x524)},
 
974
        {NT_STATUS(0xc0000064), W_ERROR(0x525)},
 
975
        {NT_STATUS(0xc0000065), W_ERROR(0x526)},
 
976
        {NT_STATUS(0xc0000066), W_ERROR(0x527)},
 
977
        {NT_STATUS(0xc0000067), W_ERROR(0x528)},
 
978
        {NT_STATUS(0xc0000068), W_ERROR(0x529)},
 
979
        {NT_STATUS(0xc0000069), W_ERROR(0x52a)},
 
980
        {NT_STATUS(0xc000006a), W_ERROR(0x56)},
 
981
        {NT_STATUS(0xc000006b), W_ERROR(0x52c)},
 
982
        {NT_STATUS(0xc000006c), W_ERROR(0x52d)},
 
983
        {NT_STATUS(0xc000006d), W_ERROR(0x52e)},
 
984
        {NT_STATUS(0xc000006e), W_ERROR(0x52f)},
 
985
        {NT_STATUS(0xc000006f), W_ERROR(0x530)},
 
986
        {NT_STATUS(0xc0000070), W_ERROR(0x531)},
 
987
        {NT_STATUS(0xc0000071), W_ERROR(0x532)},
 
988
        {NT_STATUS(0xc0000072), W_ERROR(0x533)},
 
989
        {NT_STATUS(0xc0000073), W_ERROR(0x534)},
 
990
        {NT_STATUS(0xc0000074), W_ERROR(0x535)},
 
991
        {NT_STATUS(0xc0000075), W_ERROR(0x536)},
 
992
        {NT_STATUS(0xc0000076), W_ERROR(0x537)},
 
993
        {NT_STATUS(0xc0000077), W_ERROR(0x538)},
 
994
        {NT_STATUS(0xc0000078), W_ERROR(0x539)},
 
995
        {NT_STATUS(0xc0000079), W_ERROR(0x53a)},
 
996
        {NT_STATUS(0xc000007a), W_ERROR(0x7f)},
 
997
        {NT_STATUS(0xc000007b), W_ERROR(0xc1)},
 
998
        {NT_STATUS(0xc000007c), W_ERROR(0x3f0)},
 
999
        {NT_STATUS(0xc000007d), W_ERROR(0x53c)},
 
1000
        {NT_STATUS(0xc000007e), W_ERROR(0x9e)},
 
1001
        {NT_STATUS(0xc000007f), W_ERROR(0x70)},
 
1002
        {NT_STATUS(0xc0000080), W_ERROR(0x53d)},
 
1003
        {NT_STATUS(0xc0000081), W_ERROR(0x53e)},
 
1004
        {NT_STATUS(0xc0000082), W_ERROR(0x44)},
 
1005
        {NT_STATUS(0xc0000083), W_ERROR(0x103)},
 
1006
        {NT_STATUS(0xc0000084), W_ERROR(0x53f)},
 
1007
        {NT_STATUS(0xc0000085), W_ERROR(0x103)},
 
1008
        {NT_STATUS(0xc0000086), W_ERROR(0x9a)},
 
1009
        {NT_STATUS(0xc0000087), W_ERROR(0xe)},
 
1010
        {NT_STATUS(0xc0000088), W_ERROR(0x1e7)},
 
1011
        {NT_STATUS(0xc0000089), W_ERROR(0x714)},
 
1012
        {NT_STATUS(0xc000008a), W_ERROR(0x715)},
 
1013
        {NT_STATUS(0xc000008b), W_ERROR(0x716)},
 
1014
        {NT_STATUS(0xc000008c), W_ERROR(0xc000008c)},
 
1015
        {NT_STATUS(0xc000008d), W_ERROR(0xc000008d)},
 
1016
        {NT_STATUS(0xc000008e), W_ERROR(0xc000008e)},
 
1017
        {NT_STATUS(0xc000008f), W_ERROR(0xc000008f)},
 
1018
        {NT_STATUS(0xc0000090), W_ERROR(0xc0000090)},
 
1019
        {NT_STATUS(0xc0000091), W_ERROR(0xc0000091)},
 
1020
        {NT_STATUS(0xc0000092), W_ERROR(0xc0000092)},
 
1021
        {NT_STATUS(0xc0000093), W_ERROR(0xc0000093)},
 
1022
        {NT_STATUS(0xc0000094), W_ERROR(0xc0000094)},
 
1023
        {NT_STATUS(0xc0000095), W_ERROR(0x216)},
 
1024
        {NT_STATUS(0xc0000096), W_ERROR(0xc0000096)},
 
1025
        {NT_STATUS(0xc0000097), W_ERROR(0x8)},
 
1026
        {NT_STATUS(0xc0000098), W_ERROR(0x3ee)},
 
1027
        {NT_STATUS(0xc0000099), W_ERROR(0x540)},
 
1028
        {NT_STATUS(0xc000009a), W_ERROR(0x5aa)},
 
1029
        {NT_STATUS(0xc000009b), W_ERROR(0x3)},
 
1030
        {NT_STATUS(0xc000009c), W_ERROR(0x17)},
 
1031
        {NT_STATUS(0xc000009d), W_ERROR(0x48f)},
 
1032
        {NT_STATUS(0xc000009e), W_ERROR(0x15)},
 
1033
        {NT_STATUS(0xc000009f), W_ERROR(0x1e7)},
 
1034
        {NT_STATUS(0xc00000a0), W_ERROR(0x1e7)},
 
1035
        {NT_STATUS(0xc00000a1), W_ERROR(0x5ad)},
 
1036
        {NT_STATUS(0xc00000a2), W_ERROR(0x13)},
 
1037
        {NT_STATUS(0xc00000a3), W_ERROR(0x15)},
 
1038
        {NT_STATUS(0xc00000a4), W_ERROR(0x541)},
 
1039
        {NT_STATUS(0xc00000a5), W_ERROR(0x542)},
 
1040
        {NT_STATUS(0xc00000a6), W_ERROR(0x543)},
 
1041
        {NT_STATUS(0xc00000a7), W_ERROR(0x544)},
 
1042
        {NT_STATUS(0xc00000a8), W_ERROR(0x545)},
 
1043
        {NT_STATUS(0xc00000a9), W_ERROR(0x57)},
 
1044
        {NT_STATUS(0xc00000ab), W_ERROR(0xe7)},
 
1045
        {NT_STATUS(0xc00000ac), W_ERROR(0xe7)},
 
1046
        {NT_STATUS(0xc00000ad), W_ERROR(0xe6)},
 
1047
        {NT_STATUS(0xc00000ae), W_ERROR(0xe7)},
 
1048
        {NT_STATUS(0xc00000af), W_ERROR(0x1)},
 
1049
        {NT_STATUS(0xc00000b0), W_ERROR(0xe9)},
 
1050
        {NT_STATUS(0xc00000b1), W_ERROR(0xe8)},
 
1051
        {NT_STATUS(0xc00000b2), W_ERROR(0x217)},
 
1052
        {NT_STATUS(0xc00000b3), W_ERROR(0x218)},
 
1053
        {NT_STATUS(0xc00000b4), W_ERROR(0xe6)},
 
1054
        {NT_STATUS(0xc00000b5), W_ERROR(0x79)},
 
1055
        {NT_STATUS(0xc00000b6), W_ERROR(0x26)},
 
1056
        {NT_STATUS(0xc00000ba), W_ERROR(0x5)},
 
1057
        {NT_STATUS(0xc00000bb), W_ERROR(0x32)},
 
1058
        {NT_STATUS(0xc00000bc), W_ERROR(0x33)},
 
1059
        {NT_STATUS(0xc00000bd), W_ERROR(0x34)},
 
1060
        {NT_STATUS(0xc00000be), W_ERROR(0x35)},
 
1061
        {NT_STATUS(0xc00000bf), W_ERROR(0x36)},
 
1062
        {NT_STATUS(0xc00000c0), W_ERROR(0x37)},
 
1063
        {NT_STATUS(0xc00000c1), W_ERROR(0x38)},
 
1064
        {NT_STATUS(0xc00000c2), W_ERROR(0x39)},
 
1065
        {NT_STATUS(0xc00000c3), W_ERROR(0x3a)},
 
1066
        {NT_STATUS(0xc00000c4), W_ERROR(0x3b)},
 
1067
        {NT_STATUS(0xc00000c5), W_ERROR(0x3c)},
 
1068
        {NT_STATUS(0xc00000c6), W_ERROR(0x3d)},
 
1069
        {NT_STATUS(0xc00000c7), W_ERROR(0x3e)},
 
1070
        {NT_STATUS(0xc00000c8), W_ERROR(0x3f)},
 
1071
        {NT_STATUS(0xc00000c9), W_ERROR(0x40)},
 
1072
        {NT_STATUS(0xc00000ca), W_ERROR(0x41)},
 
1073
        {NT_STATUS(0xc00000cb), W_ERROR(0x42)},
 
1074
        {NT_STATUS(0xc00000cc), W_ERROR(0x43)},
 
1075
        {NT_STATUS(0xc00000cd), W_ERROR(0x44)},
 
1076
        {NT_STATUS(0xc00000ce), W_ERROR(0x45)},
 
1077
        {NT_STATUS(0xc00000cf), W_ERROR(0x46)},
 
1078
        {NT_STATUS(0xc00000d0), W_ERROR(0x47)},
 
1079
        {NT_STATUS(0xc00000d1), W_ERROR(0x48)},
 
1080
        {NT_STATUS(0xc00000d2), W_ERROR(0x58)},
 
1081
        {NT_STATUS(0xc00000d4), W_ERROR(0x11)},
 
1082
        {NT_STATUS(0xc00000d5), W_ERROR(0x5)},
 
1083
        {NT_STATUS(0xc00000d6), W_ERROR(0xf0)},
 
1084
        {NT_STATUS(0xc00000d7), W_ERROR(0x546)},
 
1085
        {NT_STATUS(0xc00000d9), W_ERROR(0xe8)},
 
1086
        {NT_STATUS(0xc00000da), W_ERROR(0x547)},
 
1087
        {NT_STATUS(0xc00000dc), W_ERROR(0x548)},
 
1088
        {NT_STATUS(0xc00000dd), W_ERROR(0x549)},
 
1089
        {NT_STATUS(0xc00000de), W_ERROR(0x54a)},
 
1090
        {NT_STATUS(0xc00000df), W_ERROR(0x54b)},
 
1091
        {NT_STATUS(0xc00000e0), W_ERROR(0x54c)},
 
1092
        {NT_STATUS(0xc00000e1), W_ERROR(0x54d)},
 
1093
        {NT_STATUS(0xc00000e2), W_ERROR(0x12c)},
 
1094
        {NT_STATUS(0xc00000e3), W_ERROR(0x12d)},
 
1095
        {NT_STATUS(0xc00000e4), W_ERROR(0x54e)},
 
1096
        {NT_STATUS(0xc00000e5), W_ERROR(0x54f)},
 
1097
        {NT_STATUS(0xc00000e6), W_ERROR(0x550)},
 
1098
        {NT_STATUS(0xc00000e7), W_ERROR(0x551)},
 
1099
        {NT_STATUS(0xc00000e8), W_ERROR(0x6f8)},
 
1100
        {NT_STATUS(0xc00000ed), W_ERROR(0x552)},
 
1101
        {NT_STATUS(0xc00000ee), W_ERROR(0x553)},
 
1102
        {NT_STATUS(0xc00000ef), W_ERROR(0x57)},
 
1103
        {NT_STATUS(0xc00000f0), W_ERROR(0x57)},
 
1104
        {NT_STATUS(0xc00000f1), W_ERROR(0x57)},
 
1105
        {NT_STATUS(0xc00000f2), W_ERROR(0x57)},
 
1106
        {NT_STATUS(0xc00000f3), W_ERROR(0x57)},
 
1107
        {NT_STATUS(0xc00000f4), W_ERROR(0x57)},
 
1108
        {NT_STATUS(0xc00000f5), W_ERROR(0x57)},
 
1109
        {NT_STATUS(0xc00000f6), W_ERROR(0x57)},
 
1110
        {NT_STATUS(0xc00000f7), W_ERROR(0x57)},
 
1111
        {NT_STATUS(0xc00000f8), W_ERROR(0x57)},
 
1112
        {NT_STATUS(0xc00000f9), W_ERROR(0x57)},
 
1113
        {NT_STATUS(0xc00000fa), W_ERROR(0x57)},
 
1114
        {NT_STATUS(0xc00000fb), W_ERROR(0x3)},
 
1115
        {NT_STATUS(0xc00000fd), W_ERROR(0x3e9)},
 
1116
        {NT_STATUS(0xc00000fe), W_ERROR(0x554)},
 
1117
        {NT_STATUS(0xc0000100), W_ERROR(0xcb)},
 
1118
        {NT_STATUS(0xc0000101), W_ERROR(0x91)},
 
1119
        {NT_STATUS(0xc0000102), W_ERROR(0x570)},
 
1120
        {NT_STATUS(0xc0000103), W_ERROR(0x10b)},
 
1121
        {NT_STATUS(0xc0000104), W_ERROR(0x555)},
 
1122
        {NT_STATUS(0xc0000105), W_ERROR(0x556)},
 
1123
        {NT_STATUS(0xc0000106), W_ERROR(0xce)},
 
1124
        {NT_STATUS(0xc0000107), W_ERROR(0x961)},
 
1125
        {NT_STATUS(0xc0000108), W_ERROR(0x964)},
 
1126
        {NT_STATUS(0xc000010a), W_ERROR(0x5)},
 
1127
        {NT_STATUS(0xc000010b), W_ERROR(0x557)},
 
1128
        {NT_STATUS(0xc000010d), W_ERROR(0x558)},
 
1129
        {NT_STATUS(0xc000010e), W_ERROR(0x420)},
 
1130
        {NT_STATUS(0xc0000117), W_ERROR(0x5a4)},
 
1131
        {NT_STATUS(0xc000011b), W_ERROR(0xc1)},
 
1132
        {NT_STATUS(0xc000011c), W_ERROR(0x559)},
 
1133
        {NT_STATUS(0xc000011d), W_ERROR(0x55a)},
 
1134
        {NT_STATUS(0xc000011e), W_ERROR(0x3ee)},
 
1135
        {NT_STATUS(0xc000011f), W_ERROR(0x4)},
 
1136
        {NT_STATUS(0xc0000120), W_ERROR(0x3e3)},
 
1137
        {NT_STATUS(0xc0000121), W_ERROR(0x5)},
 
1138
        {NT_STATUS(0xc0000122), W_ERROR(0x4ba)},
 
1139
        {NT_STATUS(0xc0000123), W_ERROR(0x5)},
 
1140
        {NT_STATUS(0xc0000124), W_ERROR(0x55b)},
 
1141
        {NT_STATUS(0xc0000125), W_ERROR(0x55c)},
 
1142
        {NT_STATUS(0xc0000126), W_ERROR(0x55d)},
 
1143
        {NT_STATUS(0xc0000127), W_ERROR(0x55e)},
 
1144
        {NT_STATUS(0xc0000128), W_ERROR(0x6)},
 
1145
        {NT_STATUS(0xc000012b), W_ERROR(0x55f)},
 
1146
        {NT_STATUS(0xc000012d), W_ERROR(0x5af)},
 
1147
        {NT_STATUS(0xc000012e), W_ERROR(0xc1)},
 
1148
        {NT_STATUS(0xc000012f), W_ERROR(0xc1)},
 
1149
        {NT_STATUS(0xc0000130), W_ERROR(0xc1)},
 
1150
        {NT_STATUS(0xc0000131), W_ERROR(0xc1)},
 
1151
        {NT_STATUS(0xc0000133), W_ERROR(0x576)},
 
1152
        {NT_STATUS(0xc0000135), W_ERROR(0x7e)},
 
1153
        {NT_STATUS(0xc0000138), W_ERROR(0xb6)},
 
1154
        {NT_STATUS(0xc0000139), W_ERROR(0x7f)},
 
1155
        {NT_STATUS(0xc000013b), W_ERROR(0x40)},
 
1156
        {NT_STATUS(0xc000013c), W_ERROR(0x40)},
 
1157
        {NT_STATUS(0xc000013d), W_ERROR(0x33)},
 
1158
        {NT_STATUS(0xc000013e), W_ERROR(0x3b)},
 
1159
        {NT_STATUS(0xc000013f), W_ERROR(0x3b)},
 
1160
        {NT_STATUS(0xc0000140), W_ERROR(0x3b)},
 
1161
        {NT_STATUS(0xc0000141), W_ERROR(0x3b)},
 
1162
        {NT_STATUS(0xc0000142), W_ERROR(0x45a)},
 
1163
        {NT_STATUS(0xc0000148), W_ERROR(0x7c)},
 
1164
        {NT_STATUS(0xc0000149), W_ERROR(0x56)},
 
1165
        {NT_STATUS(0xc000014b), W_ERROR(0x6d)},
 
1166
        {NT_STATUS(0xc000014c), W_ERROR(0x3f1)},
 
1167
        {NT_STATUS(0xc000014d), W_ERROR(0x3f8)},
 
1168
        {NT_STATUS(0xc000014f), W_ERROR(0x3ed)},
 
1169
        {NT_STATUS(0xc0000150), W_ERROR(0x45e)},
 
1170
        {NT_STATUS(0xc0000151), W_ERROR(0x560)},
 
1171
        {NT_STATUS(0xc0000152), W_ERROR(0x561)},
 
1172
        {NT_STATUS(0xc0000153), W_ERROR(0x562)},
 
1173
        {NT_STATUS(0xc0000154), W_ERROR(0x563)},
 
1174
        {NT_STATUS(0xc0000155), W_ERROR(0x564)},
 
1175
        {NT_STATUS(0xc0000156), W_ERROR(0x565)},
 
1176
        {NT_STATUS(0xc0000157), W_ERROR(0x566)},
 
1177
        {NT_STATUS(0xc0000158), W_ERROR(0x567)},
 
1178
        {NT_STATUS(0xc0000159), W_ERROR(0x3ef)},
 
1179
        {NT_STATUS(0xc000015a), W_ERROR(0x568)},
 
1180
        {NT_STATUS(0xc000015b), W_ERROR(0x569)},
 
1181
        {NT_STATUS(0xc000015c), W_ERROR(0x3f9)},
 
1182
        {NT_STATUS(0xc000015d), W_ERROR(0x56a)},
 
1183
        {NT_STATUS(0xc000015f), W_ERROR(0x45d)},
 
1184
        {NT_STATUS(0xc0000162), W_ERROR(0x459)},
 
1185
        {NT_STATUS(0xc0000165), W_ERROR(0x462)},
 
1186
        {NT_STATUS(0xc0000166), W_ERROR(0x463)},
 
1187
        {NT_STATUS(0xc0000167), W_ERROR(0x464)},
 
1188
        {NT_STATUS(0xc0000168), W_ERROR(0x465)},
 
1189
        {NT_STATUS(0xc0000169), W_ERROR(0x466)},
 
1190
        {NT_STATUS(0xc000016a), W_ERROR(0x467)},
 
1191
        {NT_STATUS(0xc000016b), W_ERROR(0x468)},
 
1192
        {NT_STATUS(0xc000016c), W_ERROR(0x45f)},
 
1193
        {NT_STATUS(0xc000016d), W_ERROR(0x45d)},
 
1194
        {NT_STATUS(0xc0000172), W_ERROR(0x451)},
 
1195
        {NT_STATUS(0xc0000173), W_ERROR(0x452)},
 
1196
        {NT_STATUS(0xc0000174), W_ERROR(0x453)},
 
1197
        {NT_STATUS(0xc0000175), W_ERROR(0x454)},
 
1198
        {NT_STATUS(0xc0000176), W_ERROR(0x455)},
 
1199
        {NT_STATUS(0xc0000177), W_ERROR(0x469)},
 
1200
        {NT_STATUS(0xc0000178), W_ERROR(0x458)},
 
1201
        {NT_STATUS(0xc000017a), W_ERROR(0x56b)},
 
1202
        {NT_STATUS(0xc000017b), W_ERROR(0x56c)},
 
1203
        {NT_STATUS(0xc000017c), W_ERROR(0x3fa)},
 
1204
        {NT_STATUS(0xc000017d), W_ERROR(0x3fb)},
 
1205
        {NT_STATUS(0xc000017e), W_ERROR(0x56d)},
 
1206
        {NT_STATUS(0xc000017f), W_ERROR(0x56e)},
 
1207
        {NT_STATUS(0xc0000180), W_ERROR(0x3fc)},
 
1208
        {NT_STATUS(0xc0000181), W_ERROR(0x3fd)},
 
1209
        {NT_STATUS(0xc0000182), W_ERROR(0x57)},
 
1210
        {NT_STATUS(0xc0000183), W_ERROR(0x45d)},
 
1211
        {NT_STATUS(0xc0000184), W_ERROR(0x16)},
 
1212
        {NT_STATUS(0xc0000185), W_ERROR(0x45d)},
 
1213
        {NT_STATUS(0xc0000186), W_ERROR(0x45d)},
 
1214
        {NT_STATUS(0xc0000188), W_ERROR(0x5de)},
 
1215
        {NT_STATUS(0xc0000189), W_ERROR(0x13)},
 
1216
        {NT_STATUS(0xc000018a), W_ERROR(0x6fa)},
 
1217
        {NT_STATUS(0xc000018b), W_ERROR(0x6fb)},
 
1218
        {NT_STATUS(0xc000018c), W_ERROR(0x6fc)},
 
1219
        {NT_STATUS(0xc000018d), W_ERROR(0x6fd)},
 
1220
        {NT_STATUS(0xc000018e), W_ERROR(0x5dc)},
 
1221
        {NT_STATUS(0xc000018f), W_ERROR(0x5dd)},
 
1222
        {NT_STATUS(0xc0000190), W_ERROR(0x6fe)},
 
1223
        {NT_STATUS(0xc0000192), W_ERROR(0x700)},
 
1224
        {NT_STATUS(0xc0000193), W_ERROR(0x701)},
 
1225
        {NT_STATUS(0xc0000194), W_ERROR(0x46b)},
 
1226
        {NT_STATUS(0xc0000195), W_ERROR(0x4c3)},
 
1227
        {NT_STATUS(0xc0000196), W_ERROR(0x4c4)},
 
1228
        {NT_STATUS(0xc0000197), W_ERROR(0x5df)},
 
1229
        {NT_STATUS(0xc0000198), W_ERROR(0x70f)},
 
1230
        {NT_STATUS(0xc0000199), W_ERROR(0x710)},
 
1231
        {NT_STATUS(0xc000019a), W_ERROR(0x711)},
 
1232
        {NT_STATUS(0xc000019b), W_ERROR(0x712)},
 
1233
        {NT_STATUS(0xc0000202), W_ERROR(0x572)},
 
1234
        {NT_STATUS(0xc0000203), W_ERROR(0x3b)},
 
1235
        {NT_STATUS(0xc0000204), W_ERROR(0x717)},
 
1236
        {NT_STATUS(0xc0000205), W_ERROR(0x46a)},
 
1237
        {NT_STATUS(0xc0000206), W_ERROR(0x6f8)},
 
1238
        {NT_STATUS(0xc0000207), W_ERROR(0x4be)},
 
1239
        {NT_STATUS(0xc0000208), W_ERROR(0x4be)},
 
1240
        {NT_STATUS(0xc0000209), W_ERROR(0x44)},
 
1241
        {NT_STATUS(0xc000020a), W_ERROR(0x34)},
 
1242
        {NT_STATUS(0xc000020b), W_ERROR(0x40)},
 
1243
        {NT_STATUS(0xc000020c), W_ERROR(0x40)},
 
1244
        {NT_STATUS(0xc000020d), W_ERROR(0x40)},
 
1245
        {NT_STATUS(0xc000020e), W_ERROR(0x44)},
 
1246
        {NT_STATUS(0xc000020f), W_ERROR(0x3b)},
 
1247
        {NT_STATUS(0xc0000210), W_ERROR(0x3b)},
 
1248
        {NT_STATUS(0xc0000211), W_ERROR(0x3b)},
 
1249
        {NT_STATUS(0xc0000212), W_ERROR(0x3b)},
 
1250
        {NT_STATUS(0xc0000213), W_ERROR(0x3b)},
 
1251
        {NT_STATUS(0xc0000214), W_ERROR(0x3b)},
 
1252
        {NT_STATUS(0xc0000215), W_ERROR(0x3b)},
 
1253
        {NT_STATUS(0xc0000216), W_ERROR(0x32)},
 
1254
        {NT_STATUS(0xc0000217), W_ERROR(0x32)},
 
1255
        {NT_STATUS(0xc000021c), W_ERROR(0x17e6)},
 
1256
        {NT_STATUS(0xc0000220), W_ERROR(0x46c)},
 
1257
        {NT_STATUS(0xc0000221), W_ERROR(0xc1)},
 
1258
        {NT_STATUS(0xc0000224), W_ERROR(0x773)},
 
1259
        {NT_STATUS(0xc0000225), W_ERROR(0x490)},
 
1260
        {NT_STATUS(0xc000022a), W_ERROR(0xc000022a)},
 
1261
        {NT_STATUS(0xc000022b), W_ERROR(0xc000022b)},
 
1262
        {NT_STATUS(0xc000022d), W_ERROR(0x4d5)},
 
1263
        {NT_STATUS(0xc0000230), W_ERROR(0x492)},
 
1264
        {NT_STATUS(0xc0000233), W_ERROR(0x774)},
 
1265
        {NT_STATUS(0xc0000234), W_ERROR(0x775)},
 
1266
        {NT_STATUS(0xc0000235), W_ERROR(0x6)},
 
1267
        {NT_STATUS(0xc0000236), W_ERROR(0x4c9)},
 
1268
        {NT_STATUS(0xc0000237), W_ERROR(0x4ca)},
 
1269
        {NT_STATUS(0xc0000238), W_ERROR(0x4cb)},
 
1270
        {NT_STATUS(0xc0000239), W_ERROR(0x4cc)},
 
1271
        {NT_STATUS(0xc000023a), W_ERROR(0x4cd)},
 
1272
        {NT_STATUS(0xc000023b), W_ERROR(0x4ce)},
 
1273
        {NT_STATUS(0xc000023c), W_ERROR(0x4cf)},
 
1274
        {NT_STATUS(0xc000023d), W_ERROR(0x4d0)},
 
1275
        {NT_STATUS(0xc000023e), W_ERROR(0x4d1)},
 
1276
        {NT_STATUS(0xc000023f), W_ERROR(0x4d2)},
 
1277
        {NT_STATUS(0xc0000240), W_ERROR(0x4d3)},
 
1278
        {NT_STATUS(0xc0000241), W_ERROR(0x4d4)},
 
1279
        {NT_STATUS(0xc0000243), W_ERROR(0x4c8)},
 
1280
        {NT_STATUS(0xc0000246), W_ERROR(0x4d6)},
 
1281
        {NT_STATUS(0xc0000247), W_ERROR(0x4d7)},
 
1282
        {NT_STATUS(0xc0000248), W_ERROR(0x4d8)},
 
1283
        {NT_STATUS(0xc0000249), W_ERROR(0xc1)},
 
1284
        {NT_STATUS(0xc0000253), W_ERROR(0x54f)},
 
1285
        {NT_STATUS(0xc0000257), W_ERROR(0x4d0)},
 
1286
        {NT_STATUS(0xc0000259), W_ERROR(0x573)},
 
1287
        {NT_STATUS(0xc000025e), W_ERROR(0x422)},
 
1288
        {NT_STATUS(0xc0000262), W_ERROR(0xb6)},
 
1289
        {NT_STATUS(0xc0000263), W_ERROR(0x7f)},
 
1290
        {NT_STATUS(0xc0000264), W_ERROR(0x120)},
 
1291
        {NT_STATUS(0xc0000265), W_ERROR(0x476)},
 
1292
        {NT_STATUS(0xc0000267), W_ERROR(0x10fe)},
 
1293
        {NT_STATUS(0xc000026c), W_ERROR(0x7d1)},
 
1294
        {NT_STATUS(0xc000026d), W_ERROR(0x4b1)},
 
1295
        {NT_STATUS(0xc000026e), W_ERROR(0x15)},
 
1296
        {NT_STATUS(0xc0000272), W_ERROR(0x491)},
 
1297
        {NT_STATUS(0xc0000275), W_ERROR(0x1126)},
 
1298
        {NT_STATUS(0xc0000276), W_ERROR(0x1129)},
 
1299
        {NT_STATUS(0xc0000277), W_ERROR(0x112a)},
 
1300
        {NT_STATUS(0xc0000278), W_ERROR(0x1128)},
 
1301
        {NT_STATUS(0xc0000279), W_ERROR(0x780)},
 
1302
        {NT_STATUS(0xc0000280), W_ERROR(0x781)},
 
1303
        {NT_STATUS(0xc0000281), W_ERROR(0xa1)},
 
1304
        {NT_STATUS(0xc0000283), W_ERROR(0x488)},
 
1305
        {NT_STATUS(0xc0000284), W_ERROR(0x489)},
 
1306
        {NT_STATUS(0xc0000285), W_ERROR(0x48a)},
 
1307
        {NT_STATUS(0xc0000286), W_ERROR(0x48b)},
 
1308
        {NT_STATUS(0xc0000287), W_ERROR(0x48c)},
 
1309
        {NT_STATUS(0xc000028a), W_ERROR(0x5)},
 
1310
        {NT_STATUS(0xc000028b), W_ERROR(0x5)},
 
1311
        {NT_STATUS(0xc000028d), W_ERROR(0x5)},
 
1312
        {NT_STATUS(0xc000028e), W_ERROR(0x5)},
 
1313
        {NT_STATUS(0xc000028f), W_ERROR(0x5)},
 
1314
        {NT_STATUS(0xc0000290), W_ERROR(0x5)},
 
1315
        {NT_STATUS(0xc0000291), W_ERROR(0x1777)},
 
1316
        {NT_STATUS(0xc0000292), W_ERROR(0x1778)},
 
1317
        {NT_STATUS(0xc0000293), W_ERROR(0x1772)},
 
1318
        {NT_STATUS(0xc0000295), W_ERROR(0x1068)},
 
1319
        {NT_STATUS(0xc0000296), W_ERROR(0x1069)},
 
1320
        {NT_STATUS(0xc0000297), W_ERROR(0x106a)},
 
1321
        {NT_STATUS(0xc0000298), W_ERROR(0x106b)},
 
1322
        {NT_STATUS(0xc0000299), W_ERROR(0x201a)},
 
1323
        {NT_STATUS(0xc000029a), W_ERROR(0x201b)},
 
1324
        {NT_STATUS(0xc000029b), W_ERROR(0x201c)},
 
1325
        {NT_STATUS(0xc000029c), W_ERROR(0x1)},
 
1326
        {NT_STATUS(0xc000029d), W_ERROR(0x10ff)},
 
1327
        {NT_STATUS(0xc000029e), W_ERROR(0x1100)},
 
1328
        {NT_STATUS(0xc000029f), W_ERROR(0x494)},
 
1329
        {NT_STATUS(0xc00002a1), W_ERROR(0x200a)},
 
1330
        {NT_STATUS(0xc00002a2), W_ERROR(0x200b)},
 
1331
        {NT_STATUS(0xc00002a3), W_ERROR(0x200c)},
 
1332
        {NT_STATUS(0xc00002a4), W_ERROR(0x200d)},
 
1333
        {NT_STATUS(0xc00002a5), W_ERROR(0x200e)},
 
1334
        {NT_STATUS(0xc00002a6), W_ERROR(0x200f)},
 
1335
        {NT_STATUS(0xc00002a7), W_ERROR(0x2010)},
 
1336
        {NT_STATUS(0xc00002a8), W_ERROR(0x2011)},
 
1337
        {NT_STATUS(0xc00002a9), W_ERROR(0x2012)},
 
1338
        {NT_STATUS(0xc00002aa), W_ERROR(0x2013)},
 
1339
        {NT_STATUS(0xc00002ab), W_ERROR(0x2014)},
 
1340
        {NT_STATUS(0xc00002ac), W_ERROR(0x2015)},
 
1341
        {NT_STATUS(0xc00002ad), W_ERROR(0x2016)},
 
1342
        {NT_STATUS(0xc00002ae), W_ERROR(0x2017)},
 
1343
        {NT_STATUS(0xc00002af), W_ERROR(0x2018)},
 
1344
        {NT_STATUS(0xc00002b0), W_ERROR(0x2019)},
 
1345
        {NT_STATUS(0xc00002b1), W_ERROR(0x211e)},
 
1346
        {NT_STATUS(0xc00002b2), W_ERROR(0x1127)},
 
1347
        {NT_STATUS(0xc00002b6), W_ERROR(0x651)},
 
1348
        {NT_STATUS(0xc00002b7), W_ERROR(0x49a)},
 
1349
        {NT_STATUS(0xc00002b8), W_ERROR(0x49b)},
 
1350
        {NT_STATUS(0xc00002c1), W_ERROR(0x2024)},
 
1351
        {NT_STATUS(0xc00002c3), W_ERROR(0x575)},
 
1352
        {NT_STATUS(0xc00002c5), W_ERROR(0x3e6)},
 
1353
        {NT_STATUS(0xc00002c6), W_ERROR(0x1075)},
 
1354
        {NT_STATUS(0xc00002c7), W_ERROR(0x1076)},
 
1355
        {NT_STATUS(0xc00002ca), W_ERROR(0x10e8)},
 
1356
        {NT_STATUS(0xc00002cb), W_ERROR(0x2138)},
 
1357
        {NT_STATUS(0xc00002cc), W_ERROR(0x4e3)},
 
1358
        {NT_STATUS(0xc00002cd), W_ERROR(0x2139)},
 
1359
        {NT_STATUS(0xc00002cf), W_ERROR(0x49d)},
 
1360
        {NT_STATUS(0xc00002d0), W_ERROR(0x213a)},
 
1361
        {NT_STATUS(0xc00002d4), W_ERROR(0x2141)},
 
1362
        {NT_STATUS(0xc00002d5), W_ERROR(0x2142)},
 
1363
        {NT_STATUS(0xc00002d6), W_ERROR(0x2143)},
 
1364
        {NT_STATUS(0xc00002d7), W_ERROR(0x2144)},
 
1365
        {NT_STATUS(0xc00002d8), W_ERROR(0x2145)},
 
1366
        {NT_STATUS(0xc00002d9), W_ERROR(0x2146)},
 
1367
        {NT_STATUS(0xc00002da), W_ERROR(0x2147)},
 
1368
        {NT_STATUS(0xc00002db), W_ERROR(0x2148)},
 
1369
        {NT_STATUS(0xc00002dc), W_ERROR(0x2149)},
 
1370
        {NT_STATUS(0xc00002dd), W_ERROR(0x32)},
 
1371
        {NT_STATUS(0xc00002df), W_ERROR(0x2151)},
 
1372
        {NT_STATUS(0xc00002e0), W_ERROR(0x2152)},
 
1373
        {NT_STATUS(0xc00002e1), W_ERROR(0x2153)},
 
1374
        {NT_STATUS(0xc00002e2), W_ERROR(0x2154)},
 
1375
        {NT_STATUS(0xc00002e3), W_ERROR(0x215d)},
 
1376
        {NT_STATUS(0xc00002e4), W_ERROR(0x2163)},
 
1377
        {NT_STATUS(0xc00002e5), W_ERROR(0x2164)},
 
1378
        {NT_STATUS(0xc00002e6), W_ERROR(0x2165)},
 
1379
        {NT_STATUS(0xc00002e7), W_ERROR(0x216d)},
 
1380
        {NT_STATUS(0xc00002fe), W_ERROR(0x45b)},
 
1381
        {NT_STATUS(0xc00002ff), W_ERROR(0x4e7)},
 
1382
        {NT_STATUS(0xc0000300), W_ERROR(0x4e6)},
 
1383
        {NT_STATUS(0x80000001), W_ERROR(0x80000001)},
 
1384
        {NT_STATUS(0x80000002), W_ERROR(0x3e6)},
 
1385
        {NT_STATUS(0x80000003), W_ERROR(0x80000003)},
 
1386
        {NT_STATUS(0x80000004), W_ERROR(0x80000004)},
 
1387
        {NT_STATUS(0x80000005), W_ERROR(0xea)},
 
1388
        {NT_STATUS(0x80000006), W_ERROR(0x12)},
 
1389
        {NT_STATUS(0x8000000b), W_ERROR(0x56f)},
 
1390
        {NT_STATUS(0x8000000d), W_ERROR(0x12b)},
 
1391
        {NT_STATUS(0x8000000e), W_ERROR(0x1c)},
 
1392
        {NT_STATUS(0x8000000f), W_ERROR(0x15)},
 
1393
        {NT_STATUS(0x80000010), W_ERROR(0x15)},
 
1394
        {NT_STATUS(0x80000011), W_ERROR(0xaa)},
 
1395
        {NT_STATUS(0x80000012), W_ERROR(0x103)},
 
1396
        {NT_STATUS(0x80000013), W_ERROR(0xfe)},
 
1397
        {NT_STATUS(0x80000014), W_ERROR(0xff)},
 
1398
        {NT_STATUS(0x80000015), W_ERROR(0xff)},
 
1399
        {NT_STATUS(0x80000016), W_ERROR(0x456)},
 
1400
        {NT_STATUS(0x8000001a), W_ERROR(0x103)},
 
1401
        {NT_STATUS(0x8000001b), W_ERROR(0x44d)},
 
1402
        {NT_STATUS(0x8000001c), W_ERROR(0x456)},
 
1403
        {NT_STATUS(0x8000001d), W_ERROR(0x457)},
 
1404
        {NT_STATUS(0x8000001e), W_ERROR(0x44c)},
 
1405
        {NT_STATUS(0x8000001f), W_ERROR(0x44e)},
 
1406
        {NT_STATUS(0x80000021), W_ERROR(0x44f)},
 
1407
        {NT_STATUS(0x80000022), W_ERROR(0x450)},
 
1408
        {NT_STATUS(0x80000025), W_ERROR(0x962)},
 
1409
        {NT_STATUS(0x80000288), W_ERROR(0x48d)},
 
1410
        {NT_STATUS(0x80000289), W_ERROR(0x48e)},
 
1411
        {NT_STATUS_OK, WERR_OK}};
 
1412
 
 
1413
static const struct {
 
1414
        WERROR werror;
 
1415
        NTSTATUS ntstatus;
 
1416
} werror_to_ntstatus_map[] = {
 
1417
        { W_ERROR(0x5), NT_STATUS_ACCESS_DENIED },
 
1418
        { WERR_OK, NT_STATUS_OK }
 
1419
};
 
1420
 
 
1421
/*****************************************************************************
 
1422
convert a dos eclas/ecode to a NT status32 code
 
1423
 *****************************************************************************/
 
1424
NTSTATUS dos_to_ntstatus(uint8 eclass, uint32 ecode)
 
1425
{
 
1426
        int i;
 
1427
        if (eclass == 0 && ecode == 0) return NT_STATUS_OK;
 
1428
        for (i=0; NT_STATUS_V(dos_to_ntstatus_map[i].ntstatus); i++) {
 
1429
                if (eclass == dos_to_ntstatus_map[i].dos_class &&
 
1430
                    ecode == dos_to_ntstatus_map[i].dos_code) {
 
1431
                        return dos_to_ntstatus_map[i].ntstatus;
 
1432
                }
 
1433
        }
 
1434
        return NT_STATUS_UNSUCCESSFUL;
 
1435
}
 
1436
 
 
1437
 
 
1438
/*****************************************************************************
 
1439
convert a NT status code to a dos class/code
 
1440
 *****************************************************************************/
 
1441
void ntstatus_to_dos(NTSTATUS ntstatus, uint8 *eclass, uint32 *ecode)
 
1442
{
 
1443
        int i;
 
1444
        if (NT_STATUS_IS_OK(ntstatus)) {
 
1445
                *eclass = 0;
 
1446
                *ecode = 0;
 
1447
                return;
 
1448
        }
 
1449
        for (i=0; NT_STATUS_V(ntstatus_to_dos_map[i].ntstatus); i++) {
 
1450
                if (NT_STATUS_V(ntstatus) == 
 
1451
                    NT_STATUS_V(ntstatus_to_dos_map[i].ntstatus)) {
 
1452
                        *eclass = ntstatus_to_dos_map[i].dos_class;
 
1453
                        *ecode = ntstatus_to_dos_map[i].dos_code;
 
1454
                        return;
 
1455
                }
 
1456
        }
 
1457
        *eclass = ERRHRD;
 
1458
        *ecode = ERRgeneral;
 
1459
}
 
1460
 
 
1461
 
 
1462
/*****************************************************************************
 
1463
convert a WERROR to a NT status32 code
 
1464
 *****************************************************************************/
 
1465
NTSTATUS werror_to_ntstatus(WERROR error)
 
1466
{
 
1467
        int i;
 
1468
        if (W_ERROR_IS_OK(error)) return NT_STATUS_OK;
 
1469
 
 
1470
        for (i=0; !W_ERROR_IS_OK(werror_to_ntstatus_map[i].werror); i++) {
 
1471
                if (W_ERROR_V(error) == 
 
1472
                    W_ERROR_V(werror_to_ntstatus_map[i].werror)) {
 
1473
                        return werror_to_ntstatus_map[i].ntstatus;
 
1474
                }
 
1475
        }
 
1476
 
 
1477
        for (i=0; NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus); i++) {
 
1478
                if (W_ERROR_V(error) == 
 
1479
                    W_ERROR_V(ntstatus_to_werror_map[i].werror)) {
 
1480
                        return ntstatus_to_werror_map[i].ntstatus;
 
1481
                }
 
1482
        }
 
1483
 
 
1484
        /* just guess ... */
 
1485
        return NT_STATUS(W_ERROR_V(error) | 0xc0000000);
 
1486
}
 
1487
 
 
1488
/*****************************************************************************
 
1489
convert a NTSTATUS to a WERROR
 
1490
 *****************************************************************************/
 
1491
WERROR ntstatus_to_werror(NTSTATUS error)
 
1492
{
 
1493
        int i;
 
1494
        if (NT_STATUS_IS_OK(error)) return WERR_OK;
 
1495
        for (i=0; NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus); i++) {
 
1496
                if (NT_STATUS_V(error) == 
 
1497
                    NT_STATUS_V(ntstatus_to_werror_map[i].ntstatus)) {
 
1498
                        return ntstatus_to_werror_map[i].werror;
 
1499
                }
 
1500
        }
 
1501
 
 
1502
        /* a lame guess */
 
1503
        return W_ERROR(NT_STATUS_V(error) & 0xffff);
 
1504
}
 
1505
 
 
1506
#if defined(HAVE_GSSAPI)
 
1507
/*******************************************************************************
 
1508
 Map between gssapi errors and NT status. I made these up :-(. JRA.
 
1509
*******************************************************************************/
 
1510
 
 
1511
static const struct {
 
1512
                unsigned long gss_err;
 
1513
                NTSTATUS ntstatus;
 
1514
} gss_to_ntstatus_errormap[] = {
 
1515
#if defined(GSS_S_CALL_INACCESSIBLE_READ)
 
1516
                {GSS_S_CALL_INACCESSIBLE_READ, NT_STATUS_INVALID_PARAMETER},
 
1517
#endif
 
1518
#if defined(GSS_S_CALL_INACCESSIBLE_WRITE)
 
1519
                {GSS_S_CALL_INACCESSIBLE_WRITE, NT_STATUS_INVALID_PARAMETER},
 
1520
#endif
 
1521
#if defined(GSS_S_CALL_BAD_STRUCTURE)
 
1522
                {GSS_S_CALL_BAD_STRUCTURE, NT_STATUS_INVALID_PARAMETER},
 
1523
#endif
 
1524
#if defined(GSS_S_BAD_MECH)
 
1525
                {GSS_S_BAD_MECH, NT_STATUS_INVALID_PARAMETER},
 
1526
#endif
 
1527
#if defined(GSS_S_BAD_NAME)
 
1528
                {GSS_S_BAD_NAME, NT_STATUS_INVALID_ACCOUNT_NAME},
 
1529
#endif
 
1530
#if defined(GSS_S_BAD_NAMETYPE)
 
1531
                {GSS_S_BAD_NAMETYPE, NT_STATUS_INVALID_PARAMETER},
 
1532
#endif
 
1533
#if defined(GSS_S_BAD_BINDINGS)
 
1534
                {GSS_S_BAD_BINDINGS, NT_STATUS_INVALID_PARAMETER},
 
1535
#endif
 
1536
#if defined(GSS_S_BAD_STATUS)
 
1537
                {GSS_S_BAD_STATUS, NT_STATUS_UNSUCCESSFUL},
 
1538
#endif
 
1539
#if defined(GSS_S_BAD_SIG)
 
1540
                {GSS_S_BAD_SIG, NT_STATUS_ACCESS_DENIED},
 
1541
#endif
 
1542
#if defined(GSS_S_NO_CRED)
 
1543
                {GSS_S_NO_CRED, NT_STATUS_ACCESS_DENIED},
 
1544
#endif
 
1545
#if defined(GSS_S_NO_CONTEXT)
 
1546
                {GSS_S_NO_CONTEXT, NT_STATUS_ACCESS_DENIED},
 
1547
#endif
 
1548
#if defined(GSS_S_DEFECTIVE_TOKEN)
 
1549
                {GSS_S_DEFECTIVE_TOKEN, NT_STATUS_ACCESS_DENIED},
 
1550
#endif
 
1551
#if defined(GSS_S_DEFECTIVE_CREDENTIAL)
 
1552
                {GSS_S_DEFECTIVE_CREDENTIAL, NT_STATUS_ACCESS_DENIED},
 
1553
#endif
 
1554
#if defined(GSS_S_CREDENTIALS_EXPIRED)
 
1555
                {GSS_S_CREDENTIALS_EXPIRED, NT_STATUS_PASSWORD_EXPIRED},
 
1556
#endif
 
1557
#if defined(GSS_S_CONTEXT_EXPIRED)
 
1558
                {GSS_S_CONTEXT_EXPIRED, NT_STATUS_PASSWORD_EXPIRED},
 
1559
#endif
 
1560
#if defined(GSS_S_BAD_QOP)
 
1561
                {GSS_S_BAD_QOP, NT_STATUS_ACCESS_DENIED},
 
1562
#endif
 
1563
#if defined(GSS_S_UNAUTHORIZED)
 
1564
                {GSS_S_UNAUTHORIZED, NT_STATUS_ACCESS_DENIED},
 
1565
#endif
 
1566
#if defined(GSS_S_UNAVAILABLE)
 
1567
                {GSS_S_UNAVAILABLE, NT_STATUS_UNSUCCESSFUL},
 
1568
#endif
 
1569
#if defined(GSS_S_DUPLICATE_ELEMENT)
 
1570
                {GSS_S_DUPLICATE_ELEMENT, NT_STATUS_INVALID_PARAMETER},
 
1571
#endif
 
1572
#if defined(GSS_S_NAME_NOT_MN)
 
1573
                {GSS_S_NAME_NOT_MN, NT_STATUS_INVALID_PARAMETER},
 
1574
#endif
 
1575
                { 0, NT_STATUS_OK }
 
1576
};
 
1577
 
 
1578
/*********************************************************************
 
1579
 Map an NT error code from a gssapi error code.
 
1580
*********************************************************************/
 
1581
 
 
1582
NTSTATUS map_nt_error_from_gss(uint32 gss_maj, uint32 minor)
 
1583
{
 
1584
        int i = 0;
 
1585
 
 
1586
        if (gss_maj == GSS_S_COMPLETE) {
 
1587
                return NT_STATUS_OK;
 
1588
        }
 
1589
 
 
1590
        if (gss_maj == GSS_S_CONTINUE_NEEDED) {
 
1591
                return NT_STATUS_MORE_PROCESSING_REQUIRED;
 
1592
        }
 
1593
 
 
1594
        if (gss_maj == GSS_S_FAILURE) {
 
1595
                return map_nt_error_from_unix((int)minor);
 
1596
        }
 
1597
        
 
1598
        /* Look through list */
 
1599
        while(gss_to_ntstatus_errormap[i].gss_err != 0) {
 
1600
                if (gss_to_ntstatus_errormap[i].gss_err == gss_maj) {
 
1601
                        return gss_to_ntstatus_errormap[i].ntstatus;
 
1602
                }
 
1603
                i++;
 
1604
        }
 
1605
 
 
1606
        /* Default return */
 
1607
        return NT_STATUS_ACCESS_DENIED;
 
1608
}
 
1609
#endif