PageRenderTime 36ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/reactos/sdk/lib/rtl/error.c

https://gitlab.com/dj-tech/reactos
C | 798 lines | 661 code | 36 blank | 101 comment | 16 complexity | 1105bcef06c1cab52545e2000535b082 MD5 | raw file
  1. /*
  2. * NTDLL error handling
  3. *
  4. * Copyright 2000 Alexandre Julliard
  5. * Copyright 2002 Andriy Palamarchuk
  6. * Copyright 2010 André Hentschel
  7. *
  8. * This library is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU Lesser General Public
  10. * License as published by the Free Software Foundation; either
  11. * version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * This library 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 GNU
  16. * Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with this library; if not, write to the Free Software
  20. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  21. */
  22. #include <rtl.h>
  23. #define NDEBUG
  24. #include <debug.h>
  25. struct error_table
  26. {
  27. DWORD start;
  28. DWORD end;
  29. const DWORD *table;
  30. };
  31. static const struct error_table error_table[20];
  32. /**************************************************************************
  33. * RtlNtStatusToDosErrorNoTeb (NTDLL.@)
  34. *
  35. * Convert an NTSTATUS code to a Win32 error code.
  36. *
  37. * PARAMS
  38. * status [I] Nt error code to map.
  39. *
  40. * RETURNS
  41. * The mapped Win32 error code, or ERROR_MR_MID_NOT_FOUND if there is no
  42. * mapping defined.
  43. */
  44. ULONG
  45. NTAPI
  46. RtlNtStatusToDosErrorNoTeb(IN NTSTATUS Status)
  47. {
  48. const struct error_table *table = error_table;
  49. if (!Status || (Status & 0x20000000)) return Status;
  50. /* 0xd... is equivalent to 0xc... */
  51. if ((Status & 0xf0000000) == 0xd0000000) Status &= ~0x10000000;
  52. while (table->start)
  53. {
  54. if ((ULONG)Status < table->start) break;
  55. if ((ULONG)Status < table->end)
  56. {
  57. DWORD ret = table->table[Status - table->start];
  58. /* unknown entries are 0 */
  59. if (!ret) goto no_mapping;
  60. return ret;
  61. }
  62. table++;
  63. }
  64. /* now some special cases */
  65. if (HIWORD(Status) == 0xc001) return LOWORD(Status);
  66. if (HIWORD(Status) == 0x8007) return LOWORD(Status);
  67. no_mapping:
  68. DPRINT1( "no mapping for %08x\n", Status );
  69. return ERROR_MR_MID_NOT_FOUND;
  70. }
  71. /**************************************************************************
  72. * RtlNtStatusToDosError (NTDLL.@)
  73. *
  74. * Convert an NTSTATUS code to a Win32 error code.
  75. *
  76. * PARAMS
  77. * status [I] Nt error code to map.
  78. *
  79. * RETURNS
  80. * The mapped Win32 error code, or ERROR_MR_MID_NOT_FOUND if there is no
  81. * mapping defined.
  82. */
  83. ULONG
  84. NTAPI
  85. RtlNtStatusToDosError(IN NTSTATUS Status)
  86. {
  87. PTEB Teb = NtCurrentTeb();
  88. if (NULL != Teb)
  89. {
  90. Teb->LastStatusValue = Status;
  91. }
  92. return RtlNtStatusToDosErrorNoTeb(Status);
  93. }
  94. /**********************************************************************
  95. * RtlGetLastNtStatus (NTDLL.@)
  96. *
  97. * Get the current per-thread status.
  98. */
  99. NTSTATUS
  100. NTAPI
  101. RtlGetLastNtStatus(VOID)
  102. {
  103. return NtCurrentTeb()->LastStatusValue;
  104. }
  105. /**********************************************************************
  106. * RtlGetLastWin32Error (NTDLL.@)
  107. *
  108. * Get the current per-thread error value set by a system function or the user.
  109. *
  110. * PARAMS
  111. * None.
  112. *
  113. * RETURNS
  114. * The current error value for the thread, as set by SetLastWin32Error() or SetLastError().
  115. */
  116. ULONG
  117. NTAPI
  118. RtlGetLastWin32Error(VOID)
  119. {
  120. return NtCurrentTeb()->LastErrorValue;
  121. }
  122. /***********************************************************************
  123. * RtlSetLastWin32Error (NTDLL.@)
  124. * RtlRestoreLastWin32Error (NTDLL.@)
  125. *
  126. * Set the per-thread error value.
  127. *
  128. * PARAMS
  129. * err [I] The new error value to set
  130. *
  131. * RETURNS
  132. * Nothing.
  133. */
  134. VOID
  135. NTAPI
  136. RtlSetLastWin32Error(IN ULONG LastError)
  137. {
  138. NtCurrentTeb()->LastErrorValue = LastError;
  139. }
  140. /***********************************************************************
  141. * RtlSetLastWin32ErrorAndNtStatusFromNtStatus (NTDLL.@)
  142. *
  143. * Set the per-thread status and error values.
  144. *
  145. * PARAMS
  146. * err [I] The new status value to set
  147. *
  148. * RETURNS
  149. * Nothing.
  150. */
  151. VOID
  152. NTAPI
  153. RtlSetLastWin32ErrorAndNtStatusFromNtStatus(IN NTSTATUS Status)
  154. {
  155. NtCurrentTeb()->LastErrorValue = RtlNtStatusToDosError(Status);
  156. }
  157. /*
  158. * @unimplemented
  159. */
  160. NTSTATUS
  161. NTAPI
  162. RtlMapSecurityErrorToNtStatus(IN ULONG SecurityError)
  163. {
  164. UNIMPLEMENTED;
  165. return STATUS_NOT_IMPLEMENTED;
  166. }
  167. /*
  168. * @implemented
  169. */
  170. NTSTATUS
  171. NTAPI
  172. RtlSetThreadErrorMode(IN ULONG NewMode,
  173. OUT PULONG OldMode OPTIONAL)
  174. {
  175. PTEB Teb = NtCurrentTeb();
  176. /* Ignore invalid error modes */
  177. if (NewMode & ~(RTL_SEM_FAILCRITICALERRORS |
  178. RTL_SEM_NOGPFAULTERRORBOX |
  179. RTL_SEM_NOALIGNMENTFAULTEXCEPT))
  180. {
  181. DPRINT1("Invalid error mode\n");
  182. return STATUS_INVALID_PARAMETER_1;
  183. }
  184. /* Return old mode */
  185. if (OldMode) *OldMode = Teb->HardErrorMode;
  186. /* Set new one and return success */
  187. Teb->HardErrorMode = NewMode;
  188. return STATUS_SUCCESS;
  189. }
  190. /*
  191. * @implemented
  192. */
  193. ULONG
  194. NTAPI
  195. RtlGetThreadErrorMode(VOID)
  196. {
  197. /* Return it from the TEB */
  198. return NtCurrentTeb()->HardErrorMode;
  199. }
  200. /* conversion tables */
  201. static const DWORD table_00000102[32] =
  202. {
  203. ERROR_TIMEOUT, /* 00000102 (STATUS_TIMEOUT) */
  204. ERROR_IO_PENDING, /* 00000103 (STATUS_PENDING) */
  205. 0, /* 00000104 (STATUS_REPARSE) */
  206. ERROR_MORE_DATA, /* 00000105 (STATUS_MORE_ENTRIES) */
  207. ERROR_NOT_ALL_ASSIGNED, /* 00000106 (STATUS_NOT_ALL_ASSIGNED) */
  208. ERROR_SOME_NOT_MAPPED, /* 00000107 (STATUS_SOME_NOT_MAPPED) */
  209. 0, /* 00000108 (STATUS_OPLOCK_BREAK_IN_PROGRESS) */
  210. 0, /* 00000109 (STATUS_VOLUME_MOUNTED) */
  211. 0, /* 0000010a (STATUS_RXACT_COMMITTED) */
  212. 0, /* 0000010b (STATUS_NOTIFY_CLEANUP) */
  213. ERROR_NOTIFY_ENUM_DIR, /* 0000010c (STATUS_NOTIFY_ENUM_DIR) */
  214. ERROR_NO_QUOTAS_FOR_ACCOUNT, /* 0000010d (STATUS_NO_QUOTAS_FOR_ACCOUNT) */
  215. 0, /* 0000010e (STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED) */
  216. 0, /* 0000010f */
  217. 0, /* 00000110 (STATUS_PAGE_FAULT_TRANSITION) */
  218. 0, /* 00000111 (STATUS_PAGE_FAULT_DEMAND_ZERO) */
  219. 0, /* 00000112 (STATUS_PAGE_FAULT_COPY_ON_WRITE) */
  220. 0, /* 00000113 (STATUS_PAGE_FAULT_GUARD_PAGE) */
  221. 0, /* 00000114 (STATUS_PAGE_FAULT_PAGING_FILE) */
  222. 0, /* 00000115 (STATUS_CACHE_PAGE_LOCKED) */
  223. 0, /* 00000116 (STATUS_CRASH_DUMP) */
  224. 0, /* 00000117 (STATUS_BUFFER_ALL_ZEROS) */
  225. 0, /* 00000118 (STATUS_REPARSE_OBJECT) */
  226. 0, /* 00000119 (STATUS_RESOURCE_REQUIREMENTS_CHANGED) */
  227. 0, /* 0000011a */
  228. 0, /* 0000011b */
  229. 0, /* 0000011c */
  230. 0, /* 0000011d */
  231. 0, /* 0000011e */
  232. 0, /* 0000011f */
  233. 0, /* 00000120 (STATUS_TRANSLATION_COMPLETE) */
  234. ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY /* 00000121 (STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY) */
  235. };
  236. static const DWORD table_40000002[36] =
  237. {
  238. ERROR_INVALID_PARAMETER, /* 40000002 (STATUS_WORKING_SET_LIMIT_RANGE) */
  239. ERROR_IMAGE_NOT_AT_BASE, /* 40000003 (STATUS_IMAGE_NOT_AT_BASE) */
  240. 0, /* 40000004 (STATUS_RXACT_STATE_CREATED) */
  241. 0, /* 40000005 (STATUS_SEGMENT_NOTIFICATION) */
  242. ERROR_LOCAL_USER_SESSION_KEY, /* 40000006 (STATUS_LOCAL_USER_SESSION_KEY) */
  243. 0, /* 40000007 (STATUS_BAD_CURRENT_DIRECTORY) */
  244. ERROR_MORE_WRITES, /* 40000008 (STATUS_SERIAL_MORE_WRITES) */
  245. ERROR_REGISTRY_RECOVERED, /* 40000009 (STATUS_REGISTRY_RECOVERED) */
  246. 0, /* 4000000a (STATUS_FT_READ_RECOVERY_FROM_BACKUP) */
  247. 0, /* 4000000b (STATUS_FT_WRITE_RECOVERY) */
  248. ERROR_COUNTER_TIMEOUT, /* 4000000c (STATUS_SERIAL_COUNTER_TIMEOUT) */
  249. ERROR_NULL_LM_PASSWORD, /* 4000000d (STATUS_NULL_LM_PASSWORD) */
  250. ERROR_IMAGE_MACHINE_TYPE_MISMATCH, /* 4000000e (STATUS_IMAGE_MACHINE_TYPE_MISMATCH) */
  251. ERROR_RECEIVE_PARTIAL, /* 4000000f (STATUS_RECEIVE_PARTIAL) */
  252. ERROR_RECEIVE_EXPEDITED, /* 40000010 (STATUS_RECEIVE_EXPEDITED) */
  253. ERROR_RECEIVE_PARTIAL_EXPEDITED, /* 40000011 (STATUS_RECEIVE_PARTIAL_EXPEDITED) */
  254. ERROR_EVENT_DONE, /* 40000012 (STATUS_EVENT_DONE) */
  255. ERROR_EVENT_PENDING, /* 40000013 (STATUS_EVENT_PENDING) */
  256. ERROR_CHECKING_FILE_SYSTEM, /* 40000014 (STATUS_CHECKING_FILE_SYSTEM) */
  257. ERROR_FATAL_APP_EXIT, /* 40000015 (STATUS_FATAL_APP_EXIT) */
  258. ERROR_PREDEFINED_HANDLE, /* 40000016 (STATUS_PREDEFINED_HANDLE) */
  259. ERROR_WAS_UNLOCKED, /* 40000017 (STATUS_WAS_UNLOCKED) */
  260. ERROR_SERVICE_NOTIFICATION, /* 40000018 (STATUS_SERVICE_NOTIFICATION) */
  261. ERROR_WAS_LOCKED, /* 40000019 (STATUS_WAS_LOCKED) */
  262. ERROR_LOG_HARD_ERROR, /* 4000001a (STATUS_LOG_HARD_ERROR) */
  263. ERROR_ALREADY_WIN32, /* 4000001b (STATUS_ALREADY_WIN32) */
  264. 0, /* 4000001c (STATUS_WX86_UNSIMULATE) */
  265. 0, /* 4000001d (STATUS_WX86_CONTINUE) */
  266. 0, /* 4000001e (STATUS_WX86_SINGLE_STEP) */
  267. 0, /* 4000001f (STATUS_WX86_BREAKPOINT) */
  268. 0, /* 40000020 (STATUS_WX86_EXCEPTION_CONTINUE) */
  269. 0, /* 40000021 (STATUS_WX86_EXCEPTION_LASTCHANCE) */
  270. 0, /* 40000022 (STATUS_WX86_EXCEPTION_CHAIN) */
  271. ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE, /* 40000023 (STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE) */
  272. ERROR_NO_YIELD_PERFORMED, /* 40000024 (STATUS_NO_YIELD_PERFORMED) */
  273. ERROR_TIMER_RESUME_IGNORED /* 40000025 (STATUS_TIMER_RESUME_IGNORED) */
  274. };
  275. static const DWORD table_40000370[1] =
  276. {
  277. ERROR_DS_SHUTTING_DOWN /* 40000370 (STATUS_DS_SHUTTING_DOWN) */
  278. };
  279. static const DWORD table_40020056[1] =
  280. {
  281. RPC_S_UUID_LOCAL_ONLY /* 40020056 (RPC_NT_UUID_LOCAL_ONLY) */
  282. };
  283. static const DWORD table_400200af[1] =
  284. {
  285. RPC_S_SEND_INCOMPLETE /* 400200af (RPC_NT_SEND_INCOMPLETE) */
  286. };
  287. static const DWORD table_80000001[39] =
  288. {
  289. STATUS_GUARD_PAGE_VIOLATION, /* 80000001 (STATUS_GUARD_PAGE_VIOLATION) */
  290. ERROR_NOACCESS, /* 80000002 (STATUS_DATATYPE_MISALIGNMENT) */
  291. STATUS_BREAKPOINT, /* 80000003 (STATUS_BREAKPOINT) */
  292. STATUS_SINGLE_STEP, /* 80000004 (STATUS_SINGLE_STEP) */
  293. ERROR_MORE_DATA, /* 80000005 (STATUS_BUFFER_OVERFLOW) */
  294. ERROR_NO_MORE_FILES, /* 80000006 (STATUS_NO_MORE_FILES) */
  295. 0, /* 80000007 (STATUS_WAKE_SYSTEM_DEBUGGER) */
  296. 0, /* 80000008 */
  297. 0, /* 80000009 */
  298. ERROR_HANDLES_CLOSED, /* 8000000a (STATUS_HANDLES_CLOSED) */
  299. ERROR_NO_INHERITANCE, /* 8000000b (STATUS_NO_INHERITANCE) */
  300. 0, /* 8000000c (STATUS_GUID_SUBSTITUTION_MADE) */
  301. ERROR_PARTIAL_COPY, /* 8000000d (STATUS_PARTIAL_COPY) */
  302. ERROR_OUT_OF_PAPER, /* 8000000e (STATUS_DEVICE_PAPER_EMPTY) */
  303. ERROR_NOT_READY, /* 8000000f (STATUS_DEVICE_POWERED_OFF) */
  304. ERROR_NOT_READY, /* 80000010 (STATUS_DEVICE_OFF_LINE) */
  305. ERROR_BUSY, /* 80000011 (STATUS_DEVICE_BUSY) */
  306. ERROR_NO_MORE_ITEMS, /* 80000012 (STATUS_NO_MORE_EAS) */
  307. ERROR_INVALID_EA_NAME, /* 80000013 (STATUS_INVALID_EA_NAME) */
  308. ERROR_EA_LIST_INCONSISTENT, /* 80000014 (STATUS_EA_LIST_INCONSISTENT) */
  309. ERROR_EA_LIST_INCONSISTENT, /* 80000015 (STATUS_INVALID_EA_FLAG) */
  310. ERROR_MEDIA_CHANGED, /* 80000016 (STATUS_VERIFY_REQUIRED) */
  311. 0, /* 80000017 (STATUS_EXTRANEOUS_INFORMATION) */
  312. 0, /* 80000018 (STATUS_RXACT_COMMIT_NECESSARY) */
  313. 0, /* 80000019 */
  314. ERROR_NO_MORE_ITEMS, /* 8000001a (STATUS_NO_MORE_ENTRIES) */
  315. ERROR_FILEMARK_DETECTED, /* 8000001b (STATUS_FILEMARK_DETECTED) */
  316. ERROR_MEDIA_CHANGED, /* 8000001c (STATUS_MEDIA_CHANGED) */
  317. ERROR_BUS_RESET, /* 8000001d (STATUS_BUS_RESET) */
  318. ERROR_END_OF_MEDIA, /* 8000001e (STATUS_END_OF_MEDIA) */
  319. ERROR_BEGINNING_OF_MEDIA, /* 8000001f (STATUS_BEGINNING_OF_MEDIA) */
  320. 0, /* 80000020 (STATUS_MEDIA_CHECK) */
  321. ERROR_SETMARK_DETECTED, /* 80000021 (STATUS_SETMARK_DETECTED) */
  322. ERROR_NO_DATA_DETECTED, /* 80000022 (STATUS_NO_DATA_DETECTED) */
  323. 0, /* 80000023 (STATUS_REDIRECTOR_HAS_OPEN_HANDLES) */
  324. 0, /* 80000024 (STATUS_SERVER_HAS_OPEN_HANDLES) */
  325. ERROR_ACTIVE_CONNECTIONS, /* 80000025 (STATUS_ALREADY_DISCONNECTED) */
  326. 0, /* 80000026 (STATUS_LONGJUMP) */
  327. ERROR_CLEANER_CARTRIDGE_INSTALLED /* 80000027 (STATUS_CLEANER_CARTRIDGE_INSTALLED) */
  328. };
  329. static const DWORD table_80000288[2] =
  330. {
  331. ERROR_DEVICE_REQUIRES_CLEANING, /* 80000288 (STATUS_DEVICE_REQUIRES_CLEANING) */
  332. ERROR_DEVICE_DOOR_OPEN /* 80000289 (STATUS_DEVICE_DOOR_OPEN) */
  333. };
  334. static const DWORD table_80090300[72] =
  335. {
  336. ERROR_NO_SYSTEM_RESOURCES, /* 80090300 (SEC_E_INSUFFICIENT_MEMORY) */
  337. ERROR_INVALID_HANDLE, /* 80090301 (SEC_E_INVALID_HANDLE) */
  338. ERROR_INVALID_FUNCTION, /* 80090302 (SEC_E_UNSUPPORTED_FUNCTION) */
  339. ERROR_BAD_NETPATH, /* 80090303 (SEC_E_TARGET_UNKNOWN) */
  340. ERROR_INTERNAL_ERROR, /* 80090304 (SEC_E_INTERNAL_ERROR) */
  341. ERROR_NO_SUCH_PACKAGE, /* 80090305 (SEC_E_SECPKG_NOT_FOUND) */
  342. ERROR_NOT_OWNER, /* 80090306 (SEC_E_NOT_OWNER) */
  343. ERROR_NO_SUCH_PACKAGE, /* 80090307 (SEC_E_CANNOT_INSTALL) */
  344. ERROR_INVALID_PARAMETER, /* 80090308 (SEC_E_INVALID_TOKEN) */
  345. ERROR_INVALID_PARAMETER, /* 80090309 (SEC_E_CANNOT_PACK) */
  346. ERROR_NOT_SUPPORTED, /* 8009030a (SEC_E_QOP_NOT_SUPPORTED) */
  347. ERROR_CANNOT_IMPERSONATE, /* 8009030b (SEC_E_NO_IMPERSONATION) */
  348. ERROR_LOGON_FAILURE, /* 8009030c (SEC_E_LOGON_DENIED) */
  349. ERROR_INVALID_PARAMETER, /* 8009030d (SEC_E_UNKNOWN_CREDENTIALS) */
  350. ERROR_NO_SUCH_LOGON_SESSION, /* 8009030e (SEC_E_NO_CREDENTIALS) */
  351. ERROR_ACCESS_DENIED, /* 8009030f (SEC_E_MESSAGE_ALTERED) */
  352. ERROR_ACCESS_DENIED, /* 80090310 (SEC_E_OUT_OF_SEQUENCE) */
  353. ERROR_NO_LOGON_SERVERS, /* 80090311 (SEC_E_NO_AUTHENTICATING_AUTHORITY) */
  354. 0, /* 80090312 */
  355. 0, /* 80090313 */
  356. 0, /* 80090314 */
  357. 0, /* 80090315 */
  358. ERROR_NO_SUCH_PACKAGE, /* 80090316 (SEC_E_BAD_PKGID) */
  359. ERROR_CONTEXT_EXPIRED, /* 80090317 (SEC_E_CONTEXT_EXPIRED) */
  360. ERROR_INVALID_USER_BUFFER, /* 80090318 (SEC_E_INCOMPLETE_MESSAGE) */
  361. 0, /* 80090319 */
  362. 0, /* 8009031a */
  363. 0, /* 8009031b */
  364. 0, /* 8009031c */
  365. 0, /* 8009031d */
  366. 0, /* 8009031e */
  367. 0, /* 8009031f */
  368. ERROR_INVALID_PARAMETER, /* 80090320 (SEC_E_INCOMPLETE_CREDENTIALS) */
  369. ERROR_INSUFFICIENT_BUFFER, /* 80090321 (SEC_E_BUFFER_TOO_SMALL) */
  370. ERROR_WRONG_TARGET_NAME, /* 80090322 (SEC_E_WRONG_PRINCIPAL) */
  371. 0, /* 80090323 */
  372. 0, /* 80090324 (SEC_E_TIME_SKEW) */
  373. ERROR_TRUST_FAILURE, /* 80090325 (SEC_E_UNTRUSTED_ROOT) */
  374. ERROR_INVALID_PARAMETER, /* 80090326 (SEC_E_ILLEGAL_MESSAGE) */
  375. ERROR_INVALID_PARAMETER, /* 80090327 (SEC_E_CERT_UNKNOWN) */
  376. ERROR_PASSWORD_EXPIRED, /* 80090328 (SEC_E_CERT_EXPIRED) */
  377. ERROR_ENCRYPTION_FAILED, /* 80090329 (SEC_E_ENCRYPT_FAILURE) */
  378. 0, /* 8009032a */
  379. 0, /* 8009032b */
  380. 0, /* 8009032c */
  381. 0, /* 8009032d */
  382. 0, /* 8009032e */
  383. 0, /* 8009032f */
  384. ERROR_DECRYPTION_FAILED, /* 80090330 (SEC_E_DECRYPT_FAILURE) */
  385. ERROR_INVALID_FUNCTION, /* 80090331 (SEC_E_ALGORITHM_MISMATCH) */
  386. 0, /* 80090332 (SEC_E_SECURITY_QOS_FAILED) */
  387. 0, /* 80090333 (SEC_E_UNFINISHED_CONTEXT_DELETED) */
  388. 0, /* 80090334 (SEC_E_NO_TGT_REPLY) */
  389. 0, /* 80090335 (SEC_E_NO_IP_ADDRESSES) */
  390. 0, /* 80090336 (SEC_E_WRONG_CREDENTIAL_HANDLE) */
  391. 0, /* 80090337 (SEC_E_CRYPTO_SYSTEM_INVALID) */
  392. 0, /* 80090338 (SEC_E_MAX_REFERRALS_EXCEEDED) */
  393. 0, /* 80090339 (SEC_E_MUST_BE_KDC) */
  394. 0, /* 8009033a (SEC_E_STRONG_CRYPTO_NOT_SUPPORTED) */
  395. 0, /* 8009033b (SEC_E_TOO_MANY_PRINCIPALS) */
  396. 0, /* 8009033c (SEC_E_NO_PA_DATA) */
  397. 0, /* 8009033d (SEC_E_PKINIT_NAME_MISMATCH) */
  398. 0, /* 8009033e (SEC_E_SMARTCARD_LOGON_REQUIRED) */
  399. 0, /* 8009033f (SEC_E_SHUTDOWN_IN_PROGRESS) */
  400. 0, /* 80090340 (SEC_E_KDC_INVALID_REQUEST) */
  401. 0, /* 80090341 (SEC_E_KDC_UNABLE_TO_REFER) */
  402. 0, /* 80090342 (SEC_E_KDC_UNKNOWN_ETYPE) */
  403. 0, /* 80090343 (SEC_E_UNSUPPORTED_PREAUTH) */
  404. 0, /* 80090344 */
  405. 0, /* 80090345 (SEC_E_DELEGATION_REQUIRED) */
  406. 0, /* 80090346 (SEC_E_BAD_BINDINGS) */
  407. ERROR_CANNOT_IMPERSONATE /* 80090347 (SEC_E_MULTIPLE_ACCOUNTS) */
  408. };
  409. static const DWORD table_80092010[4] =
  410. {
  411. ERROR_MUTUAL_AUTH_FAILED, /* 80092010 (CRYPT_E_REVOKED) */
  412. 0, /* 80092011 (CRYPT_E_NO_REVOCATION_DLL) */
  413. ERROR_MUTUAL_AUTH_FAILED, /* 80092012 (CRYPT_E_NO_REVOCATION_CHECK) */
  414. ERROR_MUTUAL_AUTH_FAILED /* 80092013 (CRYPT_E_REVOCATION_OFFLINE) */
  415. };
  416. static const DWORD table_80096004[1] =
  417. {
  418. ERROR_MUTUAL_AUTH_FAILED /* 80096004 (TRUST_E_CERT_SIGNATURE) */
  419. };
  420. static const DWORD table_80130001[5] =
  421. {
  422. ERROR_CLUSTER_NODE_ALREADY_UP, /* 80130001 (STATUS_CLUSTER_NODE_ALREADY_UP) */
  423. ERROR_CLUSTER_NODE_ALREADY_DOWN, /* 80130002 (STATUS_CLUSTER_NODE_ALREADY_DOWN) */
  424. ERROR_CLUSTER_NETWORK_ALREADY_ONLINE, /* 80130003 (STATUS_CLUSTER_NETWORK_ALREADY_ONLINE) */
  425. ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE, /* 80130004 (STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE) */
  426. ERROR_CLUSTER_NODE_ALREADY_MEMBER /* 80130005 (STATUS_CLUSTER_NODE_ALREADY_MEMBER) */
  427. };
  428. static const DWORD table_c0000001[411] =
  429. {
  430. ERROR_GEN_FAILURE, /* c0000001 (STATUS_UNSUCCESSFUL) */
  431. ERROR_INVALID_FUNCTION, /* c0000002 (STATUS_NOT_IMPLEMENTED) */
  432. ERROR_INVALID_PARAMETER, /* c0000003 (STATUS_INVALID_INFO_CLASS) */
  433. ERROR_BAD_LENGTH, /* c0000004 (STATUS_INFO_LENGTH_MISMATCH) */
  434. ERROR_NOACCESS, /* c0000005 (STATUS_ACCESS_VIOLATION) */
  435. ERROR_SWAPERROR, /* c0000006 (STATUS_IN_PAGE_ERROR) */
  436. ERROR_PAGEFILE_QUOTA, /* c0000007 (STATUS_PAGEFILE_QUOTA) */
  437. ERROR_INVALID_HANDLE, /* c0000008 (STATUS_INVALID_HANDLE) */
  438. ERROR_STACK_OVERFLOW, /* c0000009 (STATUS_BAD_INITIAL_STACK) */
  439. ERROR_BAD_EXE_FORMAT, /* c000000a (STATUS_BAD_INITIAL_PC) */
  440. ERROR_INVALID_PARAMETER, /* c000000b (STATUS_INVALID_CID) */
  441. 0, /* c000000c (STATUS_TIMER_NOT_CANCELED) */
  442. ERROR_INVALID_PARAMETER, /* c000000d (STATUS_INVALID_PARAMETER) */
  443. ERROR_FILE_NOT_FOUND, /* c000000e (STATUS_NO_SUCH_DEVICE) */
  444. ERROR_FILE_NOT_FOUND, /* c000000f (STATUS_NO_SUCH_FILE) */
  445. ERROR_INVALID_FUNCTION, /* c0000010 (STATUS_INVALID_DEVICE_REQUEST) */
  446. ERROR_HANDLE_EOF, /* c0000011 (STATUS_END_OF_FILE) */
  447. ERROR_WRONG_DISK, /* c0000012 (STATUS_WRONG_VOLUME) */
  448. ERROR_NOT_READY, /* c0000013 (STATUS_NO_MEDIA_IN_DEVICE) */
  449. ERROR_UNRECOGNIZED_MEDIA, /* c0000014 (STATUS_UNRECOGNIZED_MEDIA) */
  450. ERROR_SECTOR_NOT_FOUND, /* c0000015 (STATUS_NONEXISTENT_SECTOR) */
  451. ERROR_MORE_DATA, /* c0000016 (STATUS_MORE_PROCESSING_REQUIRED) */
  452. ERROR_NOT_ENOUGH_MEMORY, /* c0000017 (STATUS_NO_MEMORY) */
  453. ERROR_INVALID_ADDRESS, /* c0000018 (STATUS_CONFLICTING_ADDRESSES) */
  454. ERROR_INVALID_ADDRESS, /* c0000019 (STATUS_NOT_MAPPED_VIEW) */
  455. ERROR_INVALID_PARAMETER, /* c000001a (STATUS_UNABLE_TO_FREE_VM) */
  456. ERROR_INVALID_PARAMETER, /* c000001b (STATUS_UNABLE_TO_DELETE_SECTION) */
  457. ERROR_INVALID_FUNCTION, /* c000001c (STATUS_INVALID_SYSTEM_SERVICE) */
  458. ERROR_INVALID_FUNCTION, /* c000001d (STATUS_ILLEGAL_INSTRUCTION) */
  459. ERROR_ACCESS_DENIED, /* c000001e (STATUS_INVALID_LOCK_SEQUENCE) */
  460. ERROR_ACCESS_DENIED, /* c000001f (STATUS_INVALID_VIEW_SIZE) */
  461. ERROR_BAD_EXE_FORMAT, /* c0000020 (STATUS_INVALID_FILE_FOR_SECTION) */
  462. ERROR_ACCESS_DENIED, /* c0000021 (STATUS_ALREADY_COMMITTED) */
  463. ERROR_ACCESS_DENIED, /* c0000022 (STATUS_ACCESS_DENIED) */
  464. ERROR_INSUFFICIENT_BUFFER, /* c0000023 (STATUS_BUFFER_TOO_SMALL) */
  465. ERROR_INVALID_HANDLE, /* c0000024 (STATUS_OBJECT_TYPE_MISMATCH) */
  466. STATUS_NONCONTINUABLE_EXCEPTION, /* c0000025 (STATUS_NONCONTINUABLE_EXCEPTION) */
  467. STATUS_INVALID_DISPOSITION, /* c0000026 (STATUS_INVALID_DISPOSITION) */
  468. 0, /* c0000027 (STATUS_UNWIND) */
  469. 0, /* c0000028 (STATUS_BAD_STACK) */
  470. 0, /* c0000029 (STATUS_INVALID_UNWIND_TARGET) */
  471. ERROR_NOT_LOCKED, /* c000002a (STATUS_NOT_LOCKED) */
  472. STATUS_PARITY_ERROR, /* c000002b (STATUS_PARITY_ERROR) */
  473. ERROR_INVALID_ADDRESS, /* c000002c (STATUS_UNABLE_TO_DECOMMIT_VM) */
  474. ERROR_INVALID_ADDRESS, /* c000002d (STATUS_NOT_COMMITTED) */
  475. 0, /* c000002e (STATUS_INVALID_PORT_ATTRIBUTES) */
  476. 0, /* c000002f (STATUS_PORT_MESSAGE_TOO_LONG) */
  477. ERROR_INVALID_PARAMETER, /* c0000030 (STATUS_INVALID_PARAMETER_MIX) */
  478. 0, /* c0000031 (STATUS_INVALID_QUOTA_LOWER) */
  479. ERROR_DISK_CORRUPT, /* c0000032 (STATUS_DISK_CORRUPT_ERROR) */
  480. ERROR_INVALID_NAME, /* c0000033 (STATUS_OBJECT_NAME_INVALID) */
  481. ERROR_FILE_NOT_FOUND, /* c0000034 (STATUS_OBJECT_NAME_NOT_FOUND) */
  482. ERROR_ALREADY_EXISTS, /* c0000035 (STATUS_OBJECT_NAME_COLLISION) */
  483. 0, /* c0000036 */
  484. ERROR_INVALID_HANDLE, /* c0000037 (STATUS_PORT_DISCONNECTED) */
  485. 0, /* c0000038 (STATUS_DEVICE_ALREADY_ATTACHED) */
  486. ERROR_BAD_PATHNAME, /* c0000039 (STATUS_OBJECT_PATH_INVALID) */
  487. ERROR_PATH_NOT_FOUND, /* c000003a (STATUS_OBJECT_PATH_NOT_FOUND) */
  488. ERROR_BAD_PATHNAME, /* c000003b (STATUS_OBJECT_PATH_SYNTAX_BAD) */
  489. ERROR_IO_DEVICE, /* c000003c (STATUS_DATA_OVERRUN) */
  490. ERROR_IO_DEVICE, /* c000003d (STATUS_DATA_LATE_ERROR) */
  491. ERROR_CRC, /* c000003e (STATUS_DATA_ERROR) */
  492. ERROR_CRC, /* c000003f (STATUS_CRC_ERROR) */
  493. ERROR_NOT_ENOUGH_MEMORY, /* c0000040 (STATUS_SECTION_TOO_BIG) */
  494. ERROR_ACCESS_DENIED, /* c0000041 (STATUS_PORT_CONNECTION_REFUSED) */
  495. ERROR_INVALID_HANDLE, /* c0000042 (STATUS_INVALID_PORT_HANDLE) */
  496. ERROR_SHARING_VIOLATION, /* c0000043 (STATUS_SHARING_VIOLATION) */
  497. ERROR_NOT_ENOUGH_QUOTA, /* c0000044 (STATUS_QUOTA_EXCEEDED) */
  498. ERROR_INVALID_PARAMETER, /* c0000045 (STATUS_INVALID_PAGE_PROTECTION) */
  499. ERROR_NOT_OWNER, /* c0000046 (STATUS_MUTANT_NOT_OWNED) */
  500. ERROR_TOO_MANY_POSTS, /* c0000047 (STATUS_SEMAPHORE_LIMIT_EXCEEDED) */
  501. ERROR_INVALID_PARAMETER, /* c0000048 (STATUS_PORT_ALREADY_SET) */
  502. ERROR_INVALID_PARAMETER, /* c0000049 (STATUS_SECTION_NOT_IMAGE) */
  503. ERROR_SIGNAL_REFUSED, /* c000004a (STATUS_SUSPEND_COUNT_EXCEEDED) */
  504. ERROR_ACCESS_DENIED, /* c000004b (STATUS_THREAD_IS_TERMINATING) */
  505. ERROR_INVALID_PARAMETER, /* c000004c (STATUS_BAD_WORKING_SET_LIMIT) */
  506. ERROR_INVALID_PARAMETER, /* c000004d (STATUS_INCOMPATIBLE_FILE_MAP) */
  507. ERROR_INVALID_PARAMETER, /* c000004e (STATUS_SECTION_PROTECTION) */
  508. ERROR_EAS_NOT_SUPPORTED, /* c000004f (STATUS_EAS_NOT_SUPPORTED) */
  509. ERROR_EA_LIST_INCONSISTENT, /* c0000050 (STATUS_EA_TOO_LARGE) */
  510. ERROR_FILE_CORRUPT, /* c0000051 (STATUS_NONEXISTENT_EA_ENTRY) */
  511. ERROR_FILE_CORRUPT, /* c0000052 (STATUS_NO_EAS_ON_FILE) */
  512. ERROR_FILE_CORRUPT, /* c0000053 (STATUS_EA_CORRUPT_ERROR) */
  513. ERROR_LOCK_VIOLATION, /* c0000054 (STATUS_FILE_LOCK_CONFLICT) */
  514. ERROR_LOCK_VIOLATION, /* c0000055 (STATUS_LOCK_NOT_GRANTED) */
  515. ERROR_ACCESS_DENIED, /* c0000056 (STATUS_DELETE_PENDING) */
  516. ERROR_NOT_SUPPORTED, /* c0000057 (STATUS_CTL_FILE_NOT_SUPPORTED) */
  517. ERROR_UNKNOWN_REVISION, /* c0000058 (STATUS_UNKNOWN_REVISION) */
  518. ERROR_REVISION_MISMATCH, /* c0000059 (STATUS_REVISION_MISMATCH) */
  519. ERROR_INVALID_OWNER, /* c000005a (STATUS_INVALID_OWNER) */
  520. ERROR_INVALID_PRIMARY_GROUP, /* c000005b (STATUS_INVALID_PRIMARY_GROUP) */
  521. ERROR_NO_IMPERSONATION_TOKEN, /* c000005c (STATUS_NO_IMPERSONATION_TOKEN) */
  522. ERROR_CANT_DISABLE_MANDATORY, /* c000005d (STATUS_CANT_DISABLE_MANDATORY) */
  523. ERROR_NO_LOGON_SERVERS, /* c000005e (STATUS_NO_LOGON_SERVERS) */
  524. ERROR_NO_SUCH_LOGON_SESSION, /* c000005f (STATUS_NO_SUCH_LOGON_SESSION) */
  525. ERROR_NO_SUCH_PRIVILEGE, /* c0000060 (STATUS_NO_SUCH_PRIVILEGE) */
  526. ERROR_PRIVILEGE_NOT_HELD, /* c0000061 (STATUS_PRIVILEGE_NOT_HELD) */
  527. ERROR_INVALID_ACCOUNT_NAME, /* c0000062 (STATUS_INVALID_ACCOUNT_NAME) */
  528. ERROR_USER_EXISTS, /* c0000063 (STATUS_USER_EXISTS) */
  529. ERROR_NO_SUCH_USER, /* c0000064 (STATUS_NO_SUCH_USER) */
  530. ERROR_GROUP_EXISTS, /* c0000065 (STATUS_GROUP_EXISTS) */
  531. ERROR_NO_SUCH_GROUP, /* c0000066 (STATUS_NO_SUCH_GROUP) */
  532. ERROR_MEMBER_IN_GROUP, /* c0000067 (STATUS_MEMBER_IN_GROUP) */
  533. ERROR_MEMBER_NOT_IN_GROUP, /* c0000068 (STATUS_MEMBER_NOT_IN_GROUP) */
  534. ERROR_LAST_ADMIN, /* c0000069 (STATUS_LAST_ADMIN) */
  535. ERROR_INVALID_PASSWORD, /* c000006a (STATUS_WRONG_PASSWORD) */
  536. ERROR_ILL_FORMED_PASSWORD, /* c000006b (STATUS_ILL_FORMED_PASSWORD) */
  537. ERROR_PASSWORD_RESTRICTION, /* c000006c (STATUS_PASSWORD_RESTRICTION) */
  538. ERROR_LOGON_FAILURE, /* c000006d (STATUS_LOGON_FAILURE) */
  539. ERROR_ACCOUNT_RESTRICTION, /* c000006e (STATUS_ACCOUNT_RESTRICTION) */
  540. ERROR_INVALID_LOGON_HOURS, /* c000006f (STATUS_INVALID_LOGON_HOURS) */
  541. ERROR_INVALID_WORKSTATION, /* c0000070 (STATUS_INVALID_WORKSTATION) */
  542. ERROR_PASSWORD_EXPIRED, /* c0000071 (STATUS_PASSWORD_EXPIRED) */
  543. ERROR_ACCOUNT_DISABLED, /* c0000072 (STATUS_ACCOUNT_DISABLED) */
  544. ERROR_NONE_MAPPED, /* c0000073 (STATUS_NONE_MAPPED) */
  545. ERROR_TOO_MANY_LUIDS_REQUESTED, /* c0000074 (STATUS_TOO_MANY_LUIDS_REQUESTED) */
  546. ERROR_LUIDS_EXHAUSTED, /* c0000075 (STATUS_LUIDS_EXHAUSTED) */
  547. ERROR_INVALID_SUB_AUTHORITY, /* c0000076 (STATUS_INVALID_SUB_AUTHORITY) */
  548. ERROR_INVALID_ACL, /* c0000077 (STATUS_INVALID_ACL) */
  549. ERROR_INVALID_SID, /* c0000078 (STATUS_INVALID_SID) */
  550. ERROR_INVALID_SECURITY_DESCR, /* c0000079 (STATUS_INVALID_SECURITY_DESCR) */
  551. ERROR_PROC_NOT_FOUND, /* c000007a (STATUS_PROCEDURE_NOT_FOUND) */
  552. ERROR_BAD_EXE_FORMAT, /* c000007b (STATUS_INVALID_IMAGE_FORMAT) */
  553. ERROR_NO_TOKEN, /* c000007c (STATUS_NO_TOKEN) */
  554. ERROR_BAD_INHERITANCE_ACL, /* c000007d (STATUS_BAD_INHERITANCE_ACL) */
  555. ERROR_NOT_LOCKED, /* c000007e (STATUS_RANGE_NOT_LOCKED) */
  556. ERROR_DISK_FULL, /* c000007f (STATUS_DISK_FULL) */
  557. ERROR_SERVER_DISABLED, /* c0000080 (STATUS_SERVER_DISABLED) */
  558. ERROR_SERVER_NOT_DISABLED, /* c0000081 (STATUS_SERVER_NOT_DISABLED) */
  559. ERROR_TOO_MANY_NAMES, /* c0000082 (STATUS_TOO_MANY_GUIDS_REQUESTED) */
  560. ERROR_NO_MORE_ITEMS, /* c0000083 (STATUS_GUIDS_EXHAUSTED) */
  561. ERROR_INVALID_ID_AUTHORITY, /* c0000084 (STATUS_INVALID_ID_AUTHORITY) */
  562. ERROR_NO_MORE_ITEMS, /* c0000085 (STATUS_AGENTS_EXHAUSTED) */
  563. ERROR_LABEL_TOO_LONG, /* c0000086 (STATUS_INVALID_VOLUME_LABEL) */
  564. ERROR_OUTOFMEMORY, /* c0000087 (STATUS_SECTION_NOT_EXTENDED) */
  565. ERROR_INVALID_ADDRESS, /* c0000088 (STATUS_NOT_MAPPED_DATA) */
  566. ERROR_RESOURCE_DATA_NOT_FOUND, /* c0000089 (STATUS_RESOURCE_DATA_NOT_FOUND) */
  567. ERROR_RESOURCE_TYPE_NOT_FOUND, /* c000008a (STATUS_RESOURCE_TYPE_NOT_FOUND) */
  568. ERROR_RESOURCE_NAME_NOT_FOUND, /* c000008b (STATUS_RESOURCE_NAME_NOT_FOUND) */
  569. STATUS_ARRAY_BOUNDS_EXCEEDED, /* c000008c (STATUS_ARRAY_BOUNDS_EXCEEDED) */
  570. STATUS_FLOAT_DENORMAL_OPERAND, /* c000008d (STATUS_FLOAT_DENORMAL_OPERAND) */
  571. STATUS_FLOAT_DIVIDE_BY_ZERO, /* c000008e (STATUS_FLOAT_DIVIDE_BY_ZERO) */
  572. STATUS_FLOAT_INEXACT_RESULT, /* c000008f (STATUS_FLOAT_INEXACT_RESULT) */
  573. STATUS_FLOAT_INVALID_OPERATION, /* c0000090 (STATUS_FLOAT_INVALID_OPERATION) */
  574. STATUS_FLOAT_OVERFLOW, /* c0000091 (STATUS_FLOAT_OVERFLOW) */
  575. STATUS_FLOAT_STACK_CHECK, /* c0000092 (STATUS_FLOAT_STACK_CHECK) */
  576. STATUS_FLOAT_UNDERFLOW, /* c0000093 (STATUS_FLOAT_UNDERFLOW) */
  577. STATUS_INTEGER_DIVIDE_BY_ZERO, /* c0000094 (STATUS_INTEGER_DIVIDE_BY_ZERO) */
  578. ERROR_ARITHMETIC_OVERFLOW, /* c0000095 (STATUS_INTEGER_OVERFLOW) */
  579. STATUS_PRIVILEGED_INSTRUCTION, /* c0000096 (STATUS_PRIVILEGED_INSTRUCTION) */
  580. ERROR_NOT_ENOUGH_MEMORY, /* c0000097 (STATUS_TOO_MANY_PAGING_FILES) */
  581. ERROR_FILE_INVALID, /* c0000098 (STATUS_FILE_INVALID) */
  582. ERROR_ALLOTTED_SPACE_EXCEEDED, /* c0000099 (STATUS_ALLOTTED_SPACE_EXCEEDED) */
  583. ERROR_NO_SYSTEM_RESOURCES, /* c000009a (STATUS_INSUFFICIENT_RESOURCES) */
  584. ERROR_PATH_NOT_FOUND, /* c000009b (STATUS_DFS_EXIT_PATH_FOUND) */
  585. ERROR_CRC, /* c000009c (STATUS_DEVICE_DATA_ERROR) */
  586. ERROR_DEVICE_NOT_CONNECTED, /* c000009d (STATUS_DEVICE_NOT_CONNECTED) */
  587. ERROR_NOT_READY, /* c000009e (STATUS_DEVICE_POWER_FAILURE) */
  588. ERROR_INVALID_ADDRESS, /* c000009f (STATUS_FREE_VM_NOT_AT_BASE) */
  589. ERROR_INVALID_ADDRESS, /* c00000a0 (STATUS_MEMORY_NOT_ALLOCATED) */
  590. ERROR_WORKING_SET_QUOTA, /* c00000a1 (STATUS_WORKING_SET_QUOTA) */
  591. ERROR_WRITE_PROTECT, /* c00000a2 (STATUS_MEDIA_WRITE_PROTECTED) */
  592. ERROR_NOT_READY, /* c00000a3 (STATUS_DEVICE_NOT_READY) */
  593. ERROR_INVALID_GROUP_ATTRIBUTES, /* c00000a4 (STATUS_INVALID_GROUP_ATTRIBUTES) */
  594. ERROR_BAD_IMPERSONATION_LEVEL, /* c00000a5 (STATUS_BAD_IMPERSONATION_LEVEL) */
  595. ERROR_CANT_OPEN_ANONYMOUS, /* c00000a6 (STATUS_CANT_OPEN_ANONYMOUS) */
  596. ERROR_BAD_VALIDATION_CLASS, /* c00000a7 (STATUS_BAD_VALIDATION_CLASS) */
  597. ERROR_BAD_TOKEN_TYPE, /* c00000a8 (STATUS_BAD_TOKEN_TYPE) */
  598. ERROR_INVALID_PARAMETER, /* c00000a9 (STATUS_BAD_MASTER_BOOT_RECORD) */
  599. 0, /* c00000aa (STATUS_INSTRUCTION_MISALIGNMENT) */
  600. ERROR_PIPE_BUSY, /* c00000ab (STATUS_INSTANCE_NOT_AVAILABLE) */
  601. ERROR_PIPE_BUSY, /* c00000ac (STATUS_PIPE_NOT_AVAILABLE) */
  602. ERROR_BAD_PIPE, /* c00000ad (STATUS_INVALID_PIPE_STATE) */
  603. ERROR_PIPE_BUSY, /* c00000ae (STATUS_PIPE_BUSY) */
  604. ERROR_INVALID_FUNCTION, /* c00000af (STATUS_ILLEGAL_FUNCTION) */
  605. ERROR_PIPE_NOT_CONNECTED, /* c00000b0 (STATUS_PIPE_DISCONNECTED) */
  606. ERROR_NO_DATA, /* c00000b1 (STATUS_PIPE_CLOSING) */
  607. ERROR_PIPE_CONNECTED, /* c00000b2 (STATUS_PIPE_CONNECTED) */
  608. ERROR_PIPE_LISTENING, /* c00000b3 (STATUS_PIPE_LISTENING) */
  609. ERROR_BAD_PIPE, /* c00000b4 (STATUS_INVALID_READ_MODE) */
  610. ERROR_SEM_TIMEOUT, /* c00000b5 (STATUS_IO_TIMEOUT) */
  611. ERROR_HANDLE_EOF, /* c00000b6 (STATUS_FILE_FORCED_CLOSED) */
  612. 0, /* c00000b7 (STATUS_PROFILING_NOT_STARTED) */
  613. 0, /* c00000b8 (STATUS_PROFILING_NOT_STOPPED) */
  614. 0, /* c00000b9 (STATUS_COULD_NOT_INTERPRET) */
  615. ERROR_ACCESS_DENIED, /* c00000ba (STATUS_FILE_IS_A_DIRECTORY) */
  616. ERROR_NOT_SUPPORTED, /* c00000bb (STATUS_NOT_SUPPORTED) */
  617. ERROR_REM_NOT_LIST, /* c00000bc (STATUS_REMOTE_NOT_LISTENING) */
  618. ERROR_DUP_NAME, /* c00000bd (STATUS_DUPLICATE_NAME) */
  619. ERROR_BAD_NETPATH, /* c00000be (STATUS_BAD_NETWORK_PATH) */
  620. ERROR_NETWORK_BUSY, /* c00000bf (STATUS_NETWORK_BUSY) */
  621. ERROR_DEV_NOT_EXIST, /* c00000c0 (STATUS_DEVICE_DOES_NOT_EXIST) */
  622. ERROR_TOO_MANY_CMDS, /* c00000c1 (STATUS_TOO_MANY_COMMANDS) */
  623. ERROR_ADAP_HDW_ERR, /* c00000c2 (STATUS_ADAPTER_HARDWARE_ERROR) */
  624. ERROR_BAD_NET_RESP, /* c00000c3 (STATUS_INVALID_NETWORK_RESPONSE) */
  625. ERROR_UNEXP_NET_ERR, /* c00000c4 (STATUS_UNEXPECTED_NETWORK_ERROR) */
  626. ERROR_BAD_REM_ADAP, /* c00000c5 (STATUS_BAD_REMOTE_ADAPTER) */
  627. ERROR_PRINTQ_FULL, /* c00000c6 (STATUS_PRINT_QUEUE_FULL) */
  628. ERROR_NO_SPOOL_SPACE, /* c00000c7 (STATUS_NO_SPOOL_SPACE) */
  629. ERROR_PRINT_CANCELLED, /* c00000c8 (STATUS_PRINT_CANCELLED) */
  630. ERROR_NETNAME_DELETED, /* c00000c9 (STATUS_NETWORK_NAME_DELETED) */
  631. ERROR_NETWORK_ACCESS_DENIED, /* c00000ca (STATUS_NETWORK_ACCESS_DENIED) */
  632. ERROR_BAD_DEV_TYPE, /* c00000cb (STATUS_BAD_DEVICE_TYPE) */
  633. ERROR_BAD_NET_NAME, /* c00000cc (STATUS_BAD_NETWORK_NAME) */
  634. ERROR_TOO_MANY_NAMES, /* c00000cd (STATUS_TOO_MANY_NAMES) */
  635. ERROR_TOO_MANY_SESS, /* c00000ce (STATUS_TOO_MANY_SESSIONS) */
  636. ERROR_SHARING_PAUSED, /* c00000cf (STATUS_SHARING_PAUSED) */
  637. ERROR_REQ_NOT_ACCEP, /* c00000d0 (STATUS_REQUEST_NOT_ACCEPTED) */
  638. ERROR_REDIR_PAUSED, /* c00000d1 (STATUS_REDIRECTOR_PAUSED) */
  639. ERROR_NET_WRITE_FAULT, /* c00000d2 (STATUS_NET_WRITE_FAULT) */
  640. 0, /* c00000d3 (STATUS_PROFILING_AT_LIMIT) */
  641. ERROR_NOT_SAME_DEVICE, /* c00000d4 (STATUS_NOT_SAME_DEVICE) */
  642. ERROR_ACCESS_DENIED, /* c00000d5 (STATUS_FILE_RENAMED) */
  643. ERROR_VC_DISCONNECTED, /* c00000d6 (STATUS_VIRTUAL_CIRCUIT_CLOSED) */
  644. ERROR_NO_SECURITY_ON_OBJECT, /* c00000d7 (STATUS_NO_SECURITY_ON_OBJECT) */
  645. 0, /* c00000d8 (STATUS_CANT_WAIT) */
  646. ERROR_NO_DATA, /* c00000d9 (STATUS_PIPE_EMPTY) */
  647. ERROR_CANT_ACCESS_DOMAIN_INFO, /* c00000da (STATUS_CANT_ACCESS_DOMAIN_INFO) */
  648. 0, /* c00000db (STATUS_CANT_TERMINATE_SELF) */
  649. ERROR_INVALID_SERVER_STATE, /* c00000dc (STATUS_INVALID_SERVER_STATE) */
  650. ERROR_INVALID_DOMAIN_STATE, /* c00000dd (STATUS_INVALID_DOMAIN_STATE) */
  651. ERROR_INVALID_DOMAIN_ROLE, /* c00000de (STATUS_INVALID_DOMAIN_ROLE) */
  652. ERROR_NO_SUCH_DOMAIN, /* c00000df (STATUS_NO_SUCH_DOMAIN) */
  653. ERROR_DOMAIN_EXISTS, /* c00000e0 (STATUS_DOMAIN_EXISTS) */
  654. ERROR_DOMAIN_LIMIT_EXCEEDED, /* c00000e1 (STATUS_DOMAIN_LIMIT_EXCEEDED) */
  655. ERROR_OPLOCK_NOT_GRANTED, /* c00000e2 (STATUS_OPLOCK_NOT_GRANTED) */
  656. ERROR_INVALID_OPLOCK_PROTOCOL, /* c00000e3 (STATUS_INVALID_OPLOCK_PROTOCOL) */
  657. ERROR_INTERNAL_DB_CORRUPTION, /* c00000e4 (STATUS_INTERNAL_DB_CORRUPTION) */
  658. ERROR_INTERNAL_ERROR, /* c00000e5 (STATUS_INTERNAL_ERROR) */
  659. ERROR_GENERIC_NOT_MAPPED, /* c00000e6 (STATUS_GENERIC_NOT_MAPPED) */
  660. ERROR_BAD_DESCRIPTOR_FORMAT, /* c00000e7 (STATUS_BAD_DESCRIPTOR_FORMAT) */
  661. ERROR_INVALID_USER_BUFFER, /* c00000e8 (STATUS_INVALID_USER_BUFFER) */
  662. 0, /* c00000e9 (STATUS_UNEXPECTED_IO_ERROR) */
  663. 0, /* c00000ea (STATUS_UNEXPECTED_MM_CREATE_ERR) */
  664. 0, /* c00000eb (STATUS_UNEXPECTED_MM_MAP_ERROR) */
  665. 0, /* c00000ec (STATUS_UNEXPECTED_MM_EXTEND_ERR) */
  666. ERROR_NOT_LOGON_PROCESS, /* c00000ed (STATUS_NOT_LOGON_PROCESS) */
  667. ERROR_LOGON_SESSION_EXISTS, /* c00000ee (STATUS_LOGON_SESSION_EXISTS) */
  668. ERROR_INVALID_PARAMETER, /* c00000ef (STATUS_INVALID_PARAMETER_1) */
  669. ERROR_INVALID_PARAMETER, /* c00000f0 (STATUS_INVALID_PARAMETER_2) */
  670. ERROR_INVALID_PARAMETER, /* c00000f1 (STATUS_INVALID_PARAMETER_3) */
  671. ERROR_INVALID_PARAMETER, /* c00000f2 (STATUS_INVALID_PARAMETER_4) */
  672. ERROR_INVALID_PARAMETER, /* c00000f3 (STATUS_INVALID_PARAMETER_5) */
  673. ERROR_INVALID_PARAMETER, /* c00000f4 (STATUS_INVALID_PARAMETER_6) */
  674. ERROR_INVALID_PARAMETER, /* c00000f5 (STATUS_INVALID_PARAMETER_7) */
  675. ERROR_INVALID_PARAMETER, /* c00000f6 (STATUS_INVALID_PARAMETER_8) */
  676. ERROR_INVALID_PARAMETER, /* c00000f7 (STATUS_INVALID_PARAMETER_9) */
  677. ERROR_INVALID_PARAMETER, /* c00000f8 (STATUS_INVALID_PARAMETER_10) */
  678. ERROR_INVALID_PARAMETER, /* c00000f9 (STATUS_INVALID_PARAMETER_11) */
  679. ERROR_INVALID_PARAMETER, /* c00000fa (STATUS_INVALID_PARAMETER_12) */
  680. ERROR_PATH_NOT_FOUND, /* c00000fb (STATUS_REDIRECTOR_NOT_STARTED) */
  681. ERROR_SERVICE_ALREADY_RUNNING, /* c00000fc (STATUS_REDIRECTOR_STARTED) */
  682. ERROR_STACK_OVERFLOW, /* c00000fd (STATUS_STACK_OVERFLOW) */
  683. ERROR_NO_SUCH_PACKAGE, /* c00000fe (STATUS_NO_SUCH_PACKAGE) */
  684. 0, /* c00000ff (STATUS_BAD_FUNCTION_TABLE) */
  685. ERROR_ENVVAR_NOT_FOUND, /* c0000100 (STATUS_VARIABLE_NOT_FOUND) */
  686. ERROR_DIR_NOT_EMPTY, /* c0000101 (STATUS_DIRECTORY_NOT_EMPTY) */
  687. ERROR_FILE_CORRUPT, /* c0000102 (STATUS_FILE_CORRUPT_ERROR) */
  688. ERROR_DIRECTORY, /* c0000103 (STATUS_NOT_A_DIRECTORY) */
  689. ERROR_BAD_LOGON_SESSION_STATE, /* c0000104 (STATUS_BAD_LOGON_SESSION_STATE) */
  690. ERROR_LOGON_SESSION_COLLISION, /* c0000105 (STATUS_LOGON_SESSION_COLLISION) */
  691. ERROR_FILENAME_EXCED_RANGE, /* c0000106 (STATUS_NAME_TOO_LONG) */
  692. ERROR_OPEN_FILES, /* c0000107 (STATUS_FILES_OPEN) */
  693. ERROR_DEVICE_IN_USE, /* c0000108 (STATUS_CONNECTION_IN_USE) */
  694. ERROR_MR_MID_NOT_FOUND, /* c0000109 (STATUS_MESSAGE_NOT_FOUND) */
  695. ERROR_ACCESS_DENIED, /* c000010a (STATUS_PROCESS_IS_TERMINATING) */
  696. ERROR_INVALID_LOGON_TYPE, /* c000010b (STATUS_INVALID_LOGON_TYPE) */
  697. 0, /* c000010c (STATUS_NO_GUID_TRANSLATION) */
  698. ERROR_CANNOT_IMPERSONATE, /* c000010d (STATUS_CANNOT_IMPERSONATE) */
  699. ERROR_SERVICE_ALREADY_RUNNING, /* c000010e (STATUS_IMAGE_ALREADY_LOADED) */
  700. 0, /* c000010f (STATUS_ABIOS_NOT_PRESENT) */
  701. 0, /* c0000110 (STATUS_ABIOS_LID_NOT_EXIST) */
  702. 0, /* c0000111 (STATUS_ABIOS_LID_ALREADY_OWNED) */
  703. 0, /* c0000112 (STATUS_ABIOS_NOT_LID_OWNER) */
  704. 0, /* c0000113 (STATUS_ABIOS_INVALID_COMMAND) */
  705. 0, /* c0000114 (STATUS_ABIOS_INVALID_LID) */
  706. 0, /* c0000115 (STATUS_ABIOS_SELECTOR_NOT_AVAILABLE) */
  707. 0, /* c0000116 (STATUS_ABIOS_INVALID_SELECTOR) */
  708. ERROR_INVALID_THREAD_ID, /* c0000117 (STATUS_NO_LDT) */
  709. ERROR_INVALID_LDT_SIZE, /* c0000118 (STATUS_INVALID_LDT_SIZE) */
  710. ERROR_INVALID_LDT_OFFSET, /* c0000119 (STATUS_INVALID_LDT_OFFSET) */
  711. ERROR_INVALID_LDT_DESCRIPTOR, /* c000011a (STATUS_INVALID_LDT_DESCRIPTOR) */
  712. ERROR_BAD_EXE_FORMAT, /* c000011b (STATUS_INVALID_IMAGE_NE_FORMAT) */
  713. ERROR_RXACT_INVALID_STATE, /* c000011c (STATUS_RXACT_INVALID_STATE) */
  714. ERROR_RXACT_COMMIT_FAILURE, /* c000011d (STATUS_RXACT_COMMIT_FAILURE) */
  715. ERROR_FILE_INVALID, /* c000011e (STATUS_MAPPED_FILE_SIZE_ZERO) */
  716. ERROR_TOO_MANY_OPEN_FILES, /* c000011f (STATUS_TOO_MANY_OPENED_FILES) */
  717. ERROR_OPERATION_ABORTED, /* c0000120 (STATUS_CANCELLED) */
  718. ERROR_ACCESS_DENIED, /* c0000121 (STATUS_CANNOT_DELETE) */
  719. ERROR_INVALID_COMPUTERNAME, /* c0000122 (STATUS_INVALID_COMPUTER_NAME) */
  720. ERROR_ACCESS_DENIED, /* c0000123 (STATUS_FILE_DELETED) */
  721. ERROR_SPECIAL_ACCOUNT, /* c0000124 (STATUS_SPECIAL_ACCOUNT) */
  722. ERROR_SPECIAL_GROUP, /* c0000125 (STATUS_SPECIAL_GROUP) */
  723. ERROR_SPECIAL_USER, /* c0000126 (STATUS_SPECIAL_USER) */
  724. ERROR_MEMBERS_PRIMARY_GROUP, /* c0000127 (STATUS_MEMBERS_PRIMARY_GROUP) */
  725. ERROR_INVALID_HANDLE, /* c0000128 (STATUS_FILE_CLOSED) */
  726. 0, /* c0000129 (STATUS_TOO_MANY_THREADS) */
  727. 0, /* c000012a (STATUS_THREAD_NOT_IN_PROCESS) */
  728. ERROR_TOKEN_ALREADY_IN_USE, /* c000012b (STATUS_TOKEN_ALREADY_IN_USE) */
  729. 0, /* c000012c (STATUS_PAGEFILE_QUOTA_EXCEEDED) */
  730. ERROR_COMMITMENT_LIMIT, /* c000012d (STATUS_COMMITMENT_LIMIT) */
  731. ERROR_BAD_EXE_FORMAT, /* c000012e (STATUS_INVALID_IMAGE_LE_FORMAT) */
  732. ERROR_BAD_EXE_FORMAT, /* c000012f (STATUS_INVALID_IMAGE_NOT_MZ) */
  733. ERROR_BAD_EXE_FORMAT, /* c0000130 (STATUS_INVALID_IMAGE_PROTECT) */
  734. ERROR_BAD_EXE_FORMAT, /* c0000131 (STATUS_INVALID_IMAGE_WIN_16) */
  735. 0, /* c0000132 (STATUS_LOGON_SERVER_CONFLICT) */
  736. ERROR_TIME_SKEW, /* c0000133 (STATUS_TIME_DIFFERENCE_AT_DC) */
  737. 0, /* c0000134 (STATUS_SYNCHRONIZATION_REQUIRED) */
  738. ERROR_MOD_NOT_FOUND, /* c0000135 (STATUS_DLL_NOT_FOUND) */
  739. ERROR_NET_OPEN_FAILED, /* c0000136 (STATUS_OPEN_FAILED) */
  740. ERROR_IO_PRIVILEGE_FAILED, /* c0000137 (STATUS_IO_PRIVILEGE_FAILED) */
  741. ERROR_INVALID_ORDINAL, /* c0000138 (STATUS_ORDINAL_NOT_FOUND) */
  742. ERROR_PROC_NOT_FOUND, /* c0000139 (STATUS_ENTRYPOINT_NOT_FOUND) */
  743. ERROR_CONTROL_C_EXIT, /* c000013a (STATUS_CONTROL_C_EXIT) */
  744. ERROR_NETNAME_DELETED, /* c000013b (STATUS_LOCAL_DISCONNECT) */
  745. ERROR_NETNAME_DELETED, /* c000013c (STATUS_REMOTE_DISCONNECT) */
  746. ERROR_REM_NOT_LIST, /* c000013d (STATUS_REMOTE_RESOURCES) */
  747. ERROR_UNEXP_NET_ERR, /* c000013e (STATUS_LINK_FAILED) */
  748. ERROR_UNEXP_NET_ERR, /* c000013f (STATUS_LINK_TIMEOUT) */
  749. ERROR_UNEXP_NET_ERR, /* c0000140 (STATUS_INVALID_CONNECTION) */
  750. ERROR_UNEXP_NET_ERR, /* c0000141 (STATUS_INVALID_ADDRESS) */
  751. ERROR_DLL_INIT_FAILED, /* c0000142 (STATUS_DLL_INIT_FAILED) */
  752. ERROR_MISSING_SYSTEMFILE, /* c0000143 (STATUS_MISSING_SYSTEMFILE) */
  753. ERROR_UNHANDLED_EXCEPTION, /* c0000144 (STATUS_UNHANDLED_EXCEPTION) */
  754. ERROR_APP_INIT_FAILURE, /* c0000145 (STATUS_APP_INIT_FAILURE) */
  755. ERROR_PAGEFILE_CREATE_FAILED, /* c0000146 (STATUS_PAGEFILE_CREATE_FAILED) */
  756. ERROR_NO_PAGEFILE, /* c0000147 (STATUS_NO_PAGEFILE) */
  757. ERROR_INVALID_LEVEL, /* c0000148 (STATUS_INVALID_LEVEL) */
  758. ERROR_INVALID_PASSWORD, /* c0000149 (STATUS_WRONG_PASSWORD_CORE) */
  759. ERROR_ILLEGAL_FLOAT_CONTEXT, /* c000014a (STATUS_ILLEGAL_FLOAT_CONTEXT) */
  760. ERROR_BROKEN_PIPE, /* c000014b (STATUS_PIPE_BROKEN) */
  761. ERROR_BADDB, /* c000014c (STATUS_REGISTRY_CORRUPT) */
  762. ERROR_REGISTRY_IO_FAILED, /* c000014d (STATUS_REGISTRY_IO_FAILED) */