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