Mark Harmstone : ntdll: Add error mapping for MUI statuses.

Alexandre Julliard julliard at winehq.org
Thu Mar 25 16:49:23 CDT 2021


Module: wine
Branch: master
Commit: 9ea1134eea7a0834a4efeafa380d1ed03eb271db
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9ea1134eea7a0834a4efeafa380d1ed03eb271db

Author: Mark Harmstone <mark at harmstone.com>
Date:   Thu Mar 25 01:56:21 2021 +0000

ntdll: Add error mapping for MUI statuses.

Signed-off-by: Mark Harmstone <mark at harmstone.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/error.c       | 18 +++++++++++++-----
 dlls/ntdll/make_errors   |  7 +++++++
 dlls/ntdll/tests/error.c |  7 +++++++
 3 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/dlls/ntdll/error.c b/dlls/ntdll/error.c
index fb630fa9864..738f55b42dc 100644
--- a/dlls/ntdll/error.c
+++ b/dlls/ntdll/error.c
@@ -143,7 +143,7 @@ void WINAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus( NTSTATUS status )
 
 /* conversion table, generated by ./make_errors */
 
-static const DWORD error_map[1579] =
+static const DWORD error_map[1586] =
 {
     ERROR_WAIT_1,                                      /* 00000001 (STATUS_WAIT_1) */
     ERROR_WAIT_2,                                      /* 00000002 (STATUS_WAIT_2) */
@@ -1544,6 +1544,13 @@ static const DWORD error_map[1579] =
     ERROR_CTX_SECURITY_LAYER_ERROR,                    /* c00a0038 (STATUS_CTX_SECURITY_LAYER_ERROR) */
     ERROR_TS_INCOMPATIBLE_SESSIONS,                    /* c00a0039 (STATUS_TS_INCOMPATIBLE_SESSIONS) */
     ERROR_TS_VIDEO_SUBSYSTEM_ERROR,                    /* c00a003a (STATUS_TS_VIDEO_SUBSYSTEM_ERROR) */
+    ERROR_MUI_FILE_NOT_FOUND,                          /* c00b0001 (STATUS_MUI_FILE_NOT_FOUND) */
+    ERROR_MUI_INVALID_FILE,                            /* c00b0002 (STATUS_MUI_INVALID_FILE) */
+    ERROR_MUI_INVALID_RC_CONFIG,                       /* c00b0003 (STATUS_MUI_INVALID_RC_CONFIG) */
+    ERROR_MUI_INVALID_LOCALE_NAME,                     /* c00b0004 (STATUS_MUI_INVALID_LOCALE_NAME) */
+    ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME,           /* c00b0005 (STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME) */
+    ERROR_MUI_FILE_NOT_LOADED,                         /* c00b0006 (STATUS_MUI_FILE_NOT_LOADED) */
+    ERROR_RESOURCE_ENUM_USER_STOP,                     /* c00b0007 (STATUS_RESOURCE_ENUM_USER_STOP) */
     ERROR_CLUSTER_INVALID_NODE,                        /* c0130001 (STATUS_CLUSTER_INVALID_NODE) */
     ERROR_CLUSTER_NODE_EXISTS,                         /* c0130002 (STATUS_CLUSTER_NODE_EXISTS) */
     ERROR_CLUSTER_JOIN_IN_PROGRESS,                    /* c0130003 (STATUS_CLUSTER_JOIN_IN_PROGRESS) */
@@ -1726,7 +1733,7 @@ static const DWORD error_map[1579] =
     ERROR_VOLMGR_RAID5_NOT_SUPPORTED,                  /* c038005c (STATUS_VOLMGR_RAID5_NOT_SUPPORTED) */
 };
 
-static const struct { ULONG start, end, offset; } table[42] =
+static const struct { ULONG start, end, offset; } table[43] =
 {
     { 0x00000001, 0x00000003, 0 },
     { 0x0000003f, 0x0000003f, 3 },
@@ -1767,9 +1774,10 @@ static const struct { ULONG start, end, offset; } table[42] =
     { 0xc0030059, 0xc0030061, 1341 },
     { 0xc00a0001, 0xc00a0018, 1350 },
     { 0xc00a0022, 0xc00a003a, 1374 },
-    { 0xc0130001, 0xc0130031, 1399 },
-    { 0xc0150001, 0xc0150027, 1448 },
-    { 0xc0380001, 0xc038005c, 1487 },
+    { 0xc00b0001, 0xc00b0007, 1399 },
+    { 0xc0130001, 0xc0130031, 1406 },
+    { 0xc0150001, 0xc0150027, 1455 },
+    { 0xc0380001, 0xc038005c, 1494 },
 };
 
 static ULONG map_status( NTSTATUS status )
diff --git a/dlls/ntdll/make_errors b/dlls/ntdll/make_errors
index bedce57fe7a..5b7885e0427 100755
--- a/dlls/ntdll/make_errors
+++ b/dlls/ntdll/make_errors
@@ -1314,6 +1314,13 @@ my %error_map = qw(
     STATUS_CTX_SECURITY_LAYER_ERROR                     ERROR_CTX_SECURITY_LAYER_ERROR
     STATUS_TS_INCOMPATIBLE_SESSIONS                     ERROR_TS_INCOMPATIBLE_SESSIONS
     STATUS_TS_VIDEO_SUBSYSTEM_ERROR                     ERROR_TS_VIDEO_SUBSYSTEM_ERROR
+    STATUS_MUI_FILE_NOT_FOUND                           ERROR_MUI_FILE_NOT_FOUND
+    STATUS_MUI_INVALID_FILE                             ERROR_MUI_INVALID_FILE
+    STATUS_MUI_INVALID_RC_CONFIG                        ERROR_MUI_INVALID_RC_CONFIG
+    STATUS_MUI_INVALID_LOCALE_NAME                      ERROR_MUI_INVALID_LOCALE_NAME
+    STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME            ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME
+    STATUS_MUI_FILE_NOT_LOADED                          ERROR_MUI_FILE_NOT_LOADED
+    STATUS_RESOURCE_ENUM_USER_STOP                      ERROR_RESOURCE_ENUM_USER_STOP
     STATUS_CLUSTER_INVALID_NODE                         ERROR_CLUSTER_INVALID_NODE
     STATUS_CLUSTER_NODE_EXISTS                          ERROR_CLUSTER_NODE_EXISTS
     STATUS_CLUSTER_JOIN_IN_PROGRESS                     ERROR_CLUSTER_JOIN_IN_PROGRESS
diff --git a/dlls/ntdll/tests/error.c b/dlls/ntdll/tests/error.c
index 05ba22223e3..c812aa779cc 100644
--- a/dlls/ntdll/tests/error.c
+++ b/dlls/ntdll/tests/error.c
@@ -1455,6 +1455,13 @@ static void run_error_tests(void)
     cmp2(STATUS_CTX_SECURITY_LAYER_ERROR,        ERROR_CTX_SECURITY_LAYER_ERROR);
     cmp2(STATUS_TS_INCOMPATIBLE_SESSIONS,        ERROR_TS_INCOMPATIBLE_SESSIONS);
     cmp2(STATUS_TS_VIDEO_SUBSYSTEM_ERROR,        ERROR_TS_VIDEO_SUBSYSTEM_ERROR);
+    cmp2(STATUS_MUI_FILE_NOT_FOUND,              ERROR_MUI_FILE_NOT_FOUND);
+    cmp2(STATUS_MUI_INVALID_FILE,                ERROR_MUI_INVALID_FILE);
+    cmp2(STATUS_MUI_INVALID_RC_CONFIG,           ERROR_MUI_INVALID_RC_CONFIG);
+    cmp2(STATUS_MUI_INVALID_LOCALE_NAME,         ERROR_MUI_INVALID_LOCALE_NAME);
+    cmp2(STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME, ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME);
+    cmp2(STATUS_MUI_FILE_NOT_LOADED,             ERROR_MUI_FILE_NOT_LOADED);
+    cmp2(STATUS_RESOURCE_ENUM_USER_STOP,         ERROR_RESOURCE_ENUM_USER_STOP);
     cmp2(STATUS_CLUSTER_NO_NET_ADAPTERS,         ERROR_CLUSTER_NO_NET_ADAPTERS);
     cmp2(STATUS_CLUSTER_POISONED,                ERROR_CLUSTER_POISONED);
     cmp2(STATUS_CLUSTER_NON_CSV_PATH,            ERROR_NON_CSV_PATH);




More information about the wine-cvs mailing list