This is a series of patches to support MUI, Microsoft's resource direction feature introduced with Vista. I'm not sure whether this should be staging or not...
With these patches, modern versions of Notepad will work, at least up to 1909 or so (which requires some stuff to do with shcore). You will need to have en-US\notepad.exe.mui placed relative to the main EXE.
See https://bugs.winehq.org/show_bug.cgi?id=43670 - I couldn't actually get Paint to work as it fails with some (unrelated?) Ribbon stuff, but YMMV.
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/Makefile.in | 1 + dlls/ntdll/mui.c | 38 ++++++++++++++++++++++++++++++++++++++ dlls/ntdll/ntdll.spec | 1 + 3 files changed, 40 insertions(+) create mode 100644 dlls/ntdll/mui.c
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in index 179d00b29ef..0e7a8bf3b96 100644 --- a/dlls/ntdll/Makefile.in +++ b/dlls/ntdll/Makefile.in @@ -22,6 +22,7 @@ C_SRCS = \ loader.c \ locale.c \ misc.c \ + mui.c \ nt.c \ path.c \ printf.c \ diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c new file mode 100644 index 00000000000..4a9af642f47 --- /dev/null +++ b/dlls/ntdll/mui.c @@ -0,0 +1,38 @@ +/* + * MUI functions + * + * Copyright 2021 Mark Harmstone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> + +#include "winternl.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(mui); + +/*********************************************************************** + * RtlLCIDToCultureName (NTDLL.@) + * + * Return the text name of a numeric language ID. + */ +BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) +{ + FIXME("(%04x, %p)\n", lcid, string); + + return FALSE; +} diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index c8622ba21f4..d27aaf1da58 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -827,6 +827,7 @@ @ stdcall -arch=win32 -ret64 RtlLargeIntegerShiftRight(int64 long) @ stdcall -arch=win32 -ret64 RtlLargeIntegerSubtract(int64 int64) @ stdcall RtlLargeIntegerToChar(ptr long long ptr) +@ stdcall RtlLCIDToCultureName(long ptr) @ stdcall RtlLeaveCriticalSection(ptr) @ stdcall RtlLengthRequiredSid(long) @ stdcall RtlLengthSecurityDescriptor(ptr)
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/tests/Makefile.in | 1 + dlls/ntdll/tests/mui.c | 625 +++++++++++++++++++++++++++++++++++ 2 files changed, 626 insertions(+) create mode 100644 dlls/ntdll/tests/mui.c
diff --git a/dlls/ntdll/tests/Makefile.in b/dlls/ntdll/tests/Makefile.in index ed15c51339f..e8896fe25cb 100644 --- a/dlls/ntdll/tests/Makefile.in +++ b/dlls/ntdll/tests/Makefile.in @@ -12,6 +12,7 @@ C_SRCS = \ generated.c \ info.c \ large_int.c \ + mui.c \ om.c \ path.c \ pipe.c \ diff --git a/dlls/ntdll/tests/mui.c b/dlls/ntdll/tests/mui.c new file mode 100644 index 00000000000..2b424dce5f7 --- /dev/null +++ b/dlls/ntdll/tests/mui.c @@ -0,0 +1,625 @@ +/* + * Unit test suite for MUI functions + * + * Copyright 2021 Mark Harmstone + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "ntdll_test.h" +#include "winternl.h" +#include "winuser.h" + +static BOOLEAN (NTAPI *pRtlLCIDToCultureName)(LCID, PUNICODE_STRING); +static NTSTATUS (NTAPI *pNtQueryDefaultLocale)(BOOLEAN, PLCID); +static LONG (NTAPI *pRtlCompareUnicodeString)(PCUNICODE_STRING, PCUNICODE_STRING, BOOLEAN); + +static const char *debugstr_us( const UNICODE_STRING *us ) +{ + if (!us) return "<null>"; + return debugstr_wn( us->Buffer, us->Length / sizeof(WCHAR) ); +} + +static void test_lcid_to_culture_name(void) +{ + struct lang + { + LCID lcid; + const WCHAR *name; + }; + + static const struct lang list[] = + { + { 0x0001, L"ar" }, + { 0x0002, L"bg" }, + { 0x0003, L"ca" }, + { 0x0004, L"zh-Hans" }, + { 0x0005, L"cs" }, + { 0x0006, L"da" }, + { 0x0007, L"de" }, + { 0x0008, L"el" }, + { 0x0009, L"en" }, + { 0x000a, L"es" }, + { 0x000b, L"fi" }, + { 0x000c, L"fr" }, + { 0x000d, L"he" }, + { 0x000e, L"hu" }, + { 0x000f, L"is" }, + { 0x0010, L"it" }, + { 0x0011, L"ja" }, + { 0x0012, L"ko" }, + { 0x0013, L"nl" }, + { 0x0014, L"no" }, + { 0x0015, L"pl" }, + { 0x0016, L"pt" }, + { 0x0017, L"rm" }, + { 0x0018, L"ro" }, + { 0x0019, L"ru" }, + { 0x001a, L"hr" }, + { 0x001b, L"sk" }, + { 0x001c, L"sq" }, + { 0x001d, L"sv" }, + { 0x001e, L"th" }, + { 0x001f, L"tr" }, + { 0x0020, L"ur" }, + { 0x0021, L"id" }, + { 0x0022, L"uk" }, + { 0x0023, L"be" }, + { 0x0024, L"sl" }, + { 0x0025, L"et" }, + { 0x0026, L"lv" }, + { 0x0027, L"lt" }, + { 0x0028, L"tg" }, + { 0x0029, L"fa" }, + { 0x002a, L"vi" }, + { 0x002b, L"hy" }, + { 0x002c, L"az" }, + { 0x002d, L"eu" }, + { 0x002e, L"hsb" }, + { 0x002f, L"mk" }, + { 0x0032, L"tn" }, + { 0x0034, L"xh" }, + { 0x0035, L"zu" }, + { 0x0036, L"af" }, + { 0x0037, L"ka" }, + { 0x0038, L"fo" }, + { 0x0039, L"hi" }, + { 0x003a, L"mt" }, + { 0x003b, L"se" }, + { 0x003c, L"ga" }, + { 0x003e, L"ms" }, + { 0x003f, L"kk" }, + { 0x0040, L"ky" }, + { 0x0041, L"sw" }, + { 0x0042, L"tk" }, + { 0x0043, L"uz" }, + { 0x0044, L"tt" }, + { 0x0045, L"bn" }, + { 0x0046, L"pa" }, + { 0x0047, L"gu" }, + { 0x0048, L"or" }, + { 0x0049, L"ta" }, + { 0x004a, L"te" }, + { 0x004b, L"kn" }, + { 0x004c, L"ml" }, + { 0x004d, L"as" }, + { 0x004e, L"mr" }, + { 0x004f, L"sa" }, + { 0x0050, L"mn" }, + { 0x0051, L"bo" }, + { 0x0052, L"cy" }, + { 0x0053, L"km" }, + { 0x0054, L"lo" }, + { 0x0056, L"gl" }, + { 0x0057, L"kok" }, + { 0x005a, L"syr" }, + { 0x005b, L"si" }, + { 0x005d, L"iu" }, + { 0x005e, L"am" }, + { 0x005f, L"tzm" }, + { 0x0061, L"ne" }, + { 0x0062, L"fy" }, + { 0x0063, L"ps" }, + { 0x0064, L"fil" }, + { 0x0065, L"dv" }, + { 0x0068, L"ha" }, + { 0x006a, L"yo" }, + { 0x006b, L"quz" }, + { 0x006c, L"nso" }, + { 0x006d, L"ba" }, + { 0x006e, L"lb" }, + { 0x006f, L"kl" }, + { 0x0070, L"ig" }, + { 0x0078, L"ii" }, + { 0x007a, L"arn" }, + { 0x007c, L"moh" }, + { 0x007e, L"br" }, + { 0x007f, L"" }, + { 0x0080, L"ug" }, + { 0x0081, L"mi" }, + { 0x0082, L"oc" }, + { 0x0083, L"co" }, + { 0x0084, L"gsw" }, + { 0x0085, L"sah" }, + { 0x0087, L"rw" }, + { 0x0088, L"wo" }, + { 0x008c, L"prs" }, + { 0x0401, L"ar-SA" }, + { 0x0402, L"bg-BG" }, + { 0x0403, L"ca-ES" }, + { 0x0404, L"zh-TW" }, + { 0x0405, L"cs-CZ" }, + { 0x0406, L"da-DK" }, + { 0x0407, L"de-DE" }, + { 0x0408, L"el-GR" }, + { 0x0409, L"en-US" }, + { 0x040a, L"es-ES_tradnl" }, + { 0x040b, L"fi-FI" }, + { 0x040c, L"fr-FR" }, + { 0x040d, L"he-IL" }, + { 0x040e, L"hu-HU" }, + { 0x040f, L"is-IS" }, + { 0x0410, L"it-IT" }, + { 0x0411, L"ja-JP" }, + { 0x0412, L"ko-KR" }, + { 0x0413, L"nl-NL" }, + { 0x0414, L"nb-NO" }, + { 0x0415, L"pl-PL" }, + { 0x0416, L"pt-BR" }, + { 0x0417, L"rm-CH" }, + { 0x0418, L"ro-RO" }, + { 0x0419, L"ru-RU" }, + { 0x041a, L"hr-HR" }, + { 0x041b, L"sk-SK" }, + { 0x041c, L"sq-AL" }, + { 0x041d, L"sv-SE" }, + { 0x041e, L"th-TH" }, + { 0x041f, L"tr-TR" }, + { 0x0420, L"ur-PK" }, + { 0x0421, L"id-ID" }, + { 0x0422, L"uk-UA" }, + { 0x0423, L"be-BY" }, + { 0x0424, L"sl-SI" }, + { 0x0425, L"et-EE" }, + { 0x0426, L"lv-LV" }, + { 0x0427, L"lt-LT" }, + { 0x0428, L"tg-Cyrl-TJ" }, + { 0x0429, L"fa-IR" }, + { 0x042a, L"vi-VN" }, + { 0x042b, L"hy-AM" }, + { 0x042c, L"az-Latn-AZ" }, + { 0x042d, L"eu-ES" }, + { 0x042e, L"hsb-DE" }, + { 0x042f, L"mk-MK" }, + { 0x0432, L"tn-ZA" }, + { 0x0434, L"xh-ZA" }, + { 0x0435, L"zu-ZA" }, + { 0x0436, L"af-ZA" }, + { 0x0437, L"ka-GE" }, + { 0x0438, L"fo-FO" }, + { 0x0439, L"hi-IN" }, + { 0x043a, L"mt-MT" }, + { 0x043b, L"se-NO" }, + { 0x043e, L"ms-MY" }, + { 0x043f, L"kk-KZ" }, + { 0x0440, L"ky-KG" }, + { 0x0441, L"sw-KE" }, + { 0x0442, L"tk-TM" }, + { 0x0443, L"uz-Latn-UZ" }, + { 0x0444, L"tt-RU" }, + { 0x0445, L"bn-IN" }, + { 0x0446, L"pa-IN" }, + { 0x0447, L"gu-IN" }, + { 0x0448, L"or-IN" }, + { 0x0449, L"ta-IN" }, + { 0x044a, L"te-IN" }, + { 0x044b, L"kn-IN" }, + { 0x044c, L"ml-IN" }, + { 0x044d, L"as-IN" }, + { 0x044e, L"mr-IN" }, + { 0x044f, L"sa-IN" }, + { 0x0450, L"mn-MN" }, + { 0x0451, L"bo-CN" }, + { 0x0452, L"cy-GB" }, + { 0x0453, L"km-KH" }, + { 0x0454, L"lo-LA" }, + { 0x0456, L"gl-ES" }, + { 0x0457, L"kok-IN" }, + { 0x045a, L"syr-SY" }, + { 0x045b, L"si-LK" }, + { 0x045d, L"iu-Cans-CA" }, + { 0x045e, L"am-ET" }, + { 0x0461, L"ne-NP" }, + { 0x0462, L"fy-NL" }, + { 0x0463, L"ps-AF" }, + { 0x0464, L"fil-PH" }, + { 0x0465, L"dv-MV" }, + { 0x0468, L"ha-Latn-NG" }, + { 0x046a, L"yo-NG" }, + { 0x046b, L"quz-BO" }, + { 0x046c, L"nso-ZA" }, + { 0x046d, L"ba-RU" }, + { 0x046e, L"lb-LU" }, + { 0x046f, L"kl-GL" }, + { 0x0470, L"ig-NG" }, + { 0x0478, L"ii-CN" }, + { 0x047a, L"arn-CL" }, + { 0x047c, L"moh-CA" }, + { 0x047e, L"br-FR" }, + { 0x0480, L"ug-CN" }, + { 0x0481, L"mi-NZ" }, + { 0x0482, L"oc-FR" }, + { 0x0483, L"co-FR" }, + { 0x0484, L"gsw-FR" }, + { 0x0485, L"sah-RU" }, + { 0x0487, L"rw-RW" }, + { 0x0488, L"wo-SN" }, + { 0x048c, L"prs-AF" }, + { 0x0501, L"qps-ploc" }, + { 0x05fe, L"qps-ploca" }, + { 0x0801, L"ar-IQ" }, + { 0x0804, L"zh-CN" }, + { 0x0807, L"de-CH" }, + { 0x0809, L"en-GB" }, + { 0x080a, L"es-MX" }, + { 0x080c, L"fr-BE" }, + { 0x0810, L"it-CH" }, + { 0x0813, L"nl-BE" }, + { 0x0814, L"nn-NO" }, + { 0x0816, L"pt-PT" }, + { 0x081a, L"sr-Latn-CS" }, + { 0x081d, L"sv-FI" }, + { 0x082c, L"az-Cyrl-AZ" }, + { 0x082e, L"dsb-DE" }, + { 0x083b, L"se-SE" }, + { 0x083c, L"ga-IE" }, + { 0x083e, L"ms-BN" }, + { 0x0843, L"uz-Cyrl-UZ" }, + { 0x0845, L"bn-BD" }, + { 0x0850, L"mn-Mong-CN" }, + { 0x085d, L"iu-Latn-CA" }, + { 0x085f, L"tzm-Latn-DZ" }, + { 0x086b, L"quz-EC" }, + { 0x09ff, L"qps-plocm" }, + { 0x0c01, L"ar-EG" }, + { 0x0c04, L"zh-HK" }, + { 0x0c07, L"de-AT" }, + { 0x0c09, L"en-AU" }, + { 0x0c0a, L"es-ES" }, + { 0x0c0c, L"fr-CA" }, + { 0x0c1a, L"sr-Cyrl-CS" }, + { 0x0c3b, L"se-FI" }, + { 0x0c6b, L"quz-PE" }, + { 0x1001, L"ar-LY" }, + { 0x1004, L"zh-SG" }, + { 0x1007, L"de-LU" }, + { 0x1009, L"en-CA" }, + { 0x100a, L"es-GT" }, + { 0x100c, L"fr-CH" }, + { 0x101a, L"hr-BA" }, + { 0x103b, L"smj-NO" }, + { 0x1401, L"ar-DZ" }, + { 0x1404, L"zh-MO" }, + { 0x1407, L"de-LI" }, + { 0x1409, L"en-NZ" }, + { 0x140a, L"es-CR" }, + { 0x140c, L"fr-LU" }, + { 0x141a, L"bs-Latn-BA" }, + { 0x143b, L"smj-SE" }, + { 0x1801, L"ar-MA" }, + { 0x1809, L"en-IE" }, + { 0x180a, L"es-PA" }, + { 0x180c, L"fr-MC" }, + { 0x181a, L"sr-Latn-BA" }, + { 0x183b, L"sma-NO" }, + { 0x1c01, L"ar-TN" }, + { 0x1c09, L"en-ZA" }, + { 0x1c0a, L"es-DO" }, + { 0x1c1a, L"sr-Cyrl-BA" }, + { 0x1c3b, L"sma-SE" }, + { 0x2001, L"ar-OM" }, + { 0x2009, L"en-JM" }, + { 0x200a, L"es-VE" }, + { 0x201a, L"bs-Cyrl-BA" }, + { 0x203b, L"sms-FI" }, + { 0x2401, L"ar-YE" }, + { 0x2409, L"en-029" }, + { 0x240a, L"es-CO" }, + { 0x243b, L"smn-FI" }, + { 0x2801, L"ar-SY" }, + { 0x2809, L"en-BZ" }, + { 0x280a, L"es-PE" }, + { 0x2c01, L"ar-JO" }, + { 0x2c09, L"en-TT" }, + { 0x2c0a, L"es-AR" }, + { 0x3001, L"ar-LB" }, + { 0x3009, L"en-ZW" }, + { 0x300a, L"es-EC" }, + { 0x3401, L"ar-KW" }, + { 0x3409, L"en-PH" }, + { 0x340a, L"es-CL" }, + { 0x3801, L"ar-AE" }, + { 0x380a, L"es-UY" }, + { 0x3c01, L"ar-BH" }, + { 0x3c0a, L"es-PY" }, + { 0x4001, L"ar-QA" }, + { 0x4009, L"en-IN" }, + { 0x400a, L"es-BO" }, + { 0x4409, L"en-MY" }, + { 0x440a, L"es-SV" }, + { 0x4809, L"en-SG" }, + { 0x480a, L"es-HN" }, + { 0x4c0a, L"es-NI" }, + { 0x500a, L"es-PR" }, + { 0x540a, L"es-US" }, + { 0x781a, L"bs" }, + { 0x7c04, L"zh-Hant" }, + { 0x7c1a, L"sr" }, + { 0, NULL } + }; + + /* Languages introduced after Vista */ + static const struct lang opt_list[] = + { + { 0x0030, L"st" }, + { 0x0031, L"ts" }, + { 0x0033, L"ve" }, + { 0x003d, L"yi" }, + { 0x0055, L"my" }, + { 0x0058, L"mni" }, + { 0x0059, L"sd" }, + { 0x005c, L"chr" }, + { 0x0060, L"ks" }, + { 0x0066, L"bin" }, + { 0x0067, L"ff" }, + { 0x0069, L"ibb" }, + { 0x0071, L"kr" }, + { 0x0072, L"om" }, + { 0x0073, L"ti" }, + { 0x0074, L"gn" }, + { 0x0075, L"haw" }, + { 0x0076, L"la" }, + { 0x0077, L"so" }, + { 0x0079, L"pap" }, + { 0x0091, L"gd" }, + { 0x0092, L"ku" }, + { 0x0430, L"st-ZA" }, + { 0x0431, L"ts-ZA" }, + { 0x0433, L"ve-ZA" }, + { 0x043d, L"yi-001" }, + { 0x0455, L"my-MM" }, + { 0x0458, L"mni-IN" }, + { 0x0459, L"sd-Deva-IN" }, + { 0x045c, L"chr-Cher-US" }, + { 0x045f, L"tzm-Arab-MA" }, + { 0x0460, L"ks-Arab" }, + { 0x0466, L"bin-NG" }, + { 0x0469, L"ibb-NG" }, + { 0x0472, L"om-ET" }, + { 0x0473, L"ti-ET" }, + { 0x0474, L"gn-PY" }, + { 0x0475, L"haw-US" }, + { 0x0476, L"la-001" }, + { 0x0477, L"so-SO" }, + { 0x0479, L"pap-029" }, + { 0x0491, L"gd-GB" }, + { 0x0492, L"ku-Arab-IQ" }, + { 0x0803, L"ca-ES-valencia" }, + { 0x0818, L"ro-MD" }, + { 0x0819, L"ru-MD" }, + { 0x0820, L"ur-IN" }, + { 0x0832, L"tn-BW" }, + { 0x0846, L"pa-Arab-PK" }, + { 0x0849, L"ta-LK" }, + { 0x0859, L"sd-Arab-PK" }, + { 0x0860, L"ks-Deva-IN" }, + { 0x0861, L"ne-IN" }, + { 0x0867, L"ff-Latn-SN" }, + { 0x0873, L"ti-ER" }, + { 0x0901, L"qps-Latn-x-sh" }, + { 0x0c50, L"mn-Mong-MN" }, + { 0x0c51, L"dz-BT" }, + { 0x105f, L"tzm-Tfng-MA" }, + { 0x1c0c, L"fr-029" }, + { 0x200c, L"fr-RE" }, + { 0x240c, L"fr-CD" }, + { 0x241a, L"sr-Latn-RS" }, + { 0x280c, L"fr-SN" }, + { 0x281a, L"sr-Cyrl-RS" }, + { 0x2c0c, L"fr-CM" }, + { 0x2c1a, L"sr-Latn-ME" }, + { 0x300c, L"fr-CI" }, + { 0x301a, L"sr-Cyrl-ME" }, + { 0x340c, L"fr-ML" }, + { 0x3809, L"en-ID" }, + { 0x380c, L"fr-MA" }, + { 0x3c09, L"en-HK" }, + { 0x3c0c, L"fr-HT" }, + { 0x580a, L"es-419" }, + { 0x5c0a, L"es-CU" }, + { 0x641a, L"bs-Cyrl" }, + { 0x681a, L"bs-Latn" }, + { 0x6c1a, L"sr-Cyrl" }, + { 0x701a, L"sr-Latn" }, + { 0x703b, L"smn" }, + { 0x742c, L"az-Cyrl" }, + { 0x743b, L"sms" }, + { 0x7804, L"zh" }, + { 0x7814, L"nn" }, + { 0x782c, L"az-Latn" }, + { 0x783b, L"sma" }, + { 0x7843, L"uz-Cyrl" }, + { 0x7850, L"mn-Cyrl" }, + { 0x785d, L"iu-Cans" }, + { 0x785f, L"tzm-Tfng" }, + { 0x7c14, L"nb" }, + { 0x7c28, L"tg-Cyrl" }, + { 0x7c2e, L"dsb" }, + { 0x7c3b, L"smj" }, + { 0x7c43, L"uz-Latn" }, + { 0x7c46, L"pa-Arab" }, + { 0x7c50, L"mn-Mong" }, + { 0x7c59, L"sd-Arab" }, + { 0x7c5c, L"chr-Cher" }, + { 0x7c5d, L"iu-Latn" }, + { 0x7c5f, L"tzm-Latn" }, + { 0x7c67, L"ff-Latn" }, + { 0x7c68, L"ha-Latn" }, + { 0x7c86, L"quc-Latn" }, + { 0x7c92, L"ku-Arab" }, + { 0, NULL } + }; + + unsigned int i; + WCHAR buf[255]; + UNICODE_STRING us; + NTSTATUS nts; + LCID user_lcid, system_lcid; + + if (!pRtlLCIDToCultureName) + { + win_skip("RtlLCIDToCultureName not supported\n"); + return; + } + + us.Buffer = buf; + us.Length = us.MaximumLength = sizeof(buf); + + i = 0; + while (list[i].name) + { + BOOLEAN ret; + + ret = pRtlLCIDToCultureName(list[i].lcid, &us); + + ok(ret, "RtlLCIDTOCultureName failed for LCID %04x\n", list[i].lcid); + + if (ret) + { + ok(us.Length == wcslen(list[i].name) * sizeof(WCHAR) + && !memcmp(us.Buffer, list[i].name, us.Length), + "RtlLCIDTOCultureName returned wrong value for LCID %04x (%s, expected %s)\n", + list[i].lcid, debugstr_us(&us), debugstr_w(list[i].name)); + } + + i++; + } + + i = 0; + while (opt_list[i].name) + { + BOOLEAN ret; + + ret = pRtlLCIDToCultureName(opt_list[i].lcid, &us); + + if (!ret) + { + win_skip("RtlLCIDTOCultureName does not recognize LCID %04x\n", + opt_list[i].lcid); + } + else + { + ok(us.Length == wcslen(opt_list[i].name) * sizeof(WCHAR) + && !memcmp(us.Buffer, opt_list[i].name, us.Length), + "RtlLCIDTOCultureName returned wrong value for LCID %04x (%s, expected %s)\n", + opt_list[i].lcid, debugstr_us(&us), debugstr_w(opt_list[i].name)); + } + + i++; + } + + if (!pNtQueryDefaultLocale) + { + win_skip("NtQueryDefaultLocale not supported\n"); + return; + } + + nts = pNtQueryDefaultLocale(TRUE, &user_lcid); + + ok(NT_SUCCESS(nts), "NtQueryDefaultLocale(TRUE) returned %08x, expected STATUS_SUCCESS\n", + nts); + + if (NT_SUCCESS(nts)) + { + WCHAR buf2[255]; + UNICODE_STRING us2; + BOOLEAN ret; + + us2.Buffer = buf2; + us2.Length = us2.MaximumLength = sizeof(buf2); + + ret = pRtlLCIDToCultureName(user_lcid, &us2); + + ok(ret, "RtlLCIDTOCultureName failed for LCID %04x\n", list[i].lcid); + + if (ret) + { + ret = pRtlLCIDToCultureName(LOCALE_USER_DEFAULT, &us); + + ok(ret, "RtlLCIDTOCultureName failed for LOCALE_USER_DEFAULT\n"); + + if (ret) + { + ok(!pRtlCompareUnicodeString(&us, &us2, FALSE), + "RtlLCIDTOCultureName returned incorrect value for LOCALE_USER_DEFAULT (%s, expected %s)\n", + debugstr_us(&us), debugstr_us(&us2)); + } + } + } + + nts = pNtQueryDefaultLocale(FALSE, &system_lcid); + + ok(NT_SUCCESS(nts), "NtQueryDefaultLocale(FALSE) returned %08x, expected STATUS_SUCCESS\n", + nts); + + if (NT_SUCCESS(nts)) + { + WCHAR buf2[255]; + UNICODE_STRING us2; + BOOLEAN ret; + + us2.Buffer = buf2; + us2.Length = us2.MaximumLength = sizeof(buf2); + + ret = pRtlLCIDToCultureName(system_lcid, &us2); + + ok(ret, "RtlLCIDTOCultureName failed for LCID %04x\n", list[i].lcid); + + if (ret) + { + ret = pRtlLCIDToCultureName(LOCALE_SYSTEM_DEFAULT, &us); + + ok(ret, "RtlLCIDTOCultureName failed for LOCALE_SYSTEM_DEFAULT\n"); + + if (ret) + { + ok(!pRtlCompareUnicodeString(&us, &us2, FALSE), + "RtlLCIDTOCultureName returned incorrect value for LOCALE_SYSTEM_DEFAULT (%s, expected %s)\n", + debugstr_us(&us), debugstr_us(&us2)); + } + } + } +} + +START_TEST(mui) +{ + HMODULE hntdll = GetModuleHandleA( "ntdll.dll" ); + + pRtlCompareUnicodeString = (void*)GetProcAddress( hntdll, "RtlCompareUnicodeString" ); + pRtlLCIDToCultureName = (void*)GetProcAddress( hntdll, "RtlLCIDToCultureName" ); + pNtQueryDefaultLocale = (void*)GetProcAddress( hntdll, "NtQueryDefaultLocale" ); + + test_lcid_to_culture_name(); +}
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=87829
Your paranoid android.
=== debiant2 (32 bit report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
=== debiant2 (32 bit French report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
=== debiant2 (32 bit Japanese:Japan report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
=== debiant2 (32 bit Chinese:China report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
=== debiant2 (32 bit WoW report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
=== debiant2 (64 bit WoW report) ===
ntdll: mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0002 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0003 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0005 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0006 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0008 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 000f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0010 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0011 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0012 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0013 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0014 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0015 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0016 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0017 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0018 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0019 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 001f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0020 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0021 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0022 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0023 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0024 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0025 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0026 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0027 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0028 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0029 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 002f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0032 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0034 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0035 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0036 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0037 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0038 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0039 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 003f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0040 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0041 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0042 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0043 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0044 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0045 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0046 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0047 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0048 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0049 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 004f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0050 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0051 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0052 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0053 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0054 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0056 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0057 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 005f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0061 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0062 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0063 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0064 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0065 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0068 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 006f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0070 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0078 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 007f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0080 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0082 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0083 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0084 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0085 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0087 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0088 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 008c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0402 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0403 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0405 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0406 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0408 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 040f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0410 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0411 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0412 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0413 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0414 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0415 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0416 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0417 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0418 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0419 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 041f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0420 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0421 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0422 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0423 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0424 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0425 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0426 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0427 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0428 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0429 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 042f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0432 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0434 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0435 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0436 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0437 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0438 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0439 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 043f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0440 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0441 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0442 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0443 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0444 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0445 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0446 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0447 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0448 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0449 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 044f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0450 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0451 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0452 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0453 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0454 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0456 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0457 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 045e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0461 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0462 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0463 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0464 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0465 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0468 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 046f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0470 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0478 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 047e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0480 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0481 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0482 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0483 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0484 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0485 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0487 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0488 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 048c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0501 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 05fe mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0804 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0807 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 080c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0810 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0813 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0814 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0816 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 081d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 082e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 083e mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0843 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0845 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0850 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085d mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 085f mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 086b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 09ff mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c07 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c0c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 0c6b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1004 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1007 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 100c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 101a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 103b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1404 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1407 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 140c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 141a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 143b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 180c mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 181a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 183b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c1a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 1c3b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 200a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 201a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 203b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 240a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 243b mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 280a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c09 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 2c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 300a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3401 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 340a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3801 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 380a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c01 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 3c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4001 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4009 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 400a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4409 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 440a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4809 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 480a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 4c0a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 500a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 540a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 781a mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c04 mui.c:507: Test failed: RtlLCIDTOCultureName failed for LCID 7c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0030 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0031 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0033 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 003d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0055 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0058 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0059 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 005c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0060 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0066 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0067 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0069 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0071 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0072 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0073 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0074 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0075 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0076 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0077 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0079 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0091 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0092 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0430 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0431 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0433 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 043d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0455 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0458 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0459 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 045f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0460 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0466 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0469 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0472 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0473 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0474 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0475 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0476 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0477 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0479 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0491 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0492 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0803 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0818 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0819 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0820 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0832 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0846 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0849 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0859 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0860 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0861 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0867 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0873 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0901 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 0c51 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 105f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 1c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 200c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 240c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 241a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 280c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 281a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 2c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 300c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 301a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 340c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3809 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 380c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c09 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 3c0c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 580a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 5c0a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 641a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 681a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 6c1a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 701a mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 703b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 742c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 743b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7804 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7814 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 782c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 783b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7843 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7850 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 785f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c14 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c28 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c2e mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c3b mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c43 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c46 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c50 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c59 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5c mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5d mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c5f mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c67 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c68 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c86 mui.c:529: Test failed: RtlLCIDTOCultureName does not recognize LCID 7c92 mui.c:565: Test failed: RtlLCIDTOCultureName failed for LCID 0081 mui.c:598: Test failed: RtlLCIDTOCultureName failed for LCID 0081
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 476 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 475 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index 4a9af642f47..e27a1fba1b8 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -32,7 +32,481 @@ WINE_DEFAULT_DEBUG_CHANNEL(mui); */ BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) { - FIXME("(%04x, %p)\n", lcid, string); + unsigned int i; + + /* Normally we'd use MAKELCID and MAKELANGID rather than raw constants, + * but a few of these don't have SUBLANG_* definitions, or are otherwise + * irregular. */ + static const struct + { + LCID lcid; + const WCHAR *name; + } list[] = { + { 0x0001, L"ar" }, + { 0x0002, L"bg" }, + { 0x0003, L"ca" }, + { 0x0004, L"zh-Hans" }, + { 0x0005, L"cs" }, + { 0x0006, L"da" }, + { 0x0007, L"de" }, + { 0x0008, L"el" }, + { 0x0009, L"en" }, + { 0x000a, L"es" }, + { 0x000b, L"fi" }, + { 0x000c, L"fr" }, + { 0x000d, L"he" }, + { 0x000e, L"hu" }, + { 0x000f, L"is" }, + { 0x0010, L"it" }, + { 0x0011, L"ja" }, + { 0x0012, L"ko" }, + { 0x0013, L"nl" }, + { 0x0014, L"no" }, + { 0x0015, L"pl" }, + { 0x0016, L"pt" }, + { 0x0017, L"rm" }, + { 0x0018, L"ro" }, + { 0x0019, L"ru" }, + { 0x001a, L"hr" }, + { 0x001b, L"sk" }, + { 0x001c, L"sq" }, + { 0x001d, L"sv" }, + { 0x001e, L"th" }, + { 0x001f, L"tr" }, + { 0x0020, L"ur" }, + { 0x0021, L"id" }, + { 0x0022, L"uk" }, + { 0x0023, L"be" }, + { 0x0024, L"sl" }, + { 0x0025, L"et" }, + { 0x0026, L"lv" }, + { 0x0027, L"lt" }, + { 0x0028, L"tg" }, + { 0x0029, L"fa" }, + { 0x002a, L"vi" }, + { 0x002b, L"hy" }, + { 0x002c, L"az" }, + { 0x002d, L"eu" }, + { 0x002e, L"hsb" }, + { 0x002f, L"mk" }, + { 0x0030, L"st" }, + { 0x0031, L"ts" }, + { 0x0032, L"tn" }, + { 0x0033, L"ve" }, + { 0x0034, L"xh" }, + { 0x0035, L"zu" }, + { 0x0036, L"af" }, + { 0x0037, L"ka" }, + { 0x0038, L"fo" }, + { 0x0039, L"hi" }, + { 0x003a, L"mt" }, + { 0x003b, L"se" }, + { 0x003c, L"ga" }, + { 0x003d, L"yi" }, + { 0x003e, L"ms" }, + { 0x003f, L"kk" }, + { 0x0040, L"ky" }, + { 0x0041, L"sw" }, + { 0x0042, L"tk" }, + { 0x0043, L"uz" }, + { 0x0044, L"tt" }, + { 0x0045, L"bn" }, + { 0x0046, L"pa" }, + { 0x0047, L"gu" }, + { 0x0048, L"or" }, + { 0x0049, L"ta" }, + { 0x004a, L"te" }, + { 0x004b, L"kn" }, + { 0x004c, L"ml" }, + { 0x004d, L"as" }, + { 0x004e, L"mr" }, + { 0x004f, L"sa" }, + { 0x0050, L"mn" }, + { 0x0051, L"bo" }, + { 0x0052, L"cy" }, + { 0x0053, L"km" }, + { 0x0054, L"lo" }, + { 0x0055, L"my" }, + { 0x0056, L"gl" }, + { 0x0057, L"kok" }, + { 0x0058, L"mni" }, + { 0x0059, L"sd" }, + { 0x005a, L"syr" }, + { 0x005b, L"si" }, + { 0x005c, L"chr" }, + { 0x005d, L"iu" }, + { 0x005e, L"am" }, + { 0x005f, L"tzm" }, + { 0x0060, L"ks" }, + { 0x0061, L"ne" }, + { 0x0062, L"fy" }, + { 0x0063, L"ps" }, + { 0x0064, L"fil" }, + { 0x0065, L"dv" }, + { 0x0066, L"bin" }, + { 0x0067, L"ff" }, + { 0x0068, L"ha" }, + { 0x0069, L"ibb" }, + { 0x006a, L"yo" }, + { 0x006b, L"quz" }, + { 0x006c, L"nso" }, + { 0x006d, L"ba" }, + { 0x006e, L"lb" }, + { 0x006f, L"kl" }, + { 0x0070, L"ig" }, + { 0x0071, L"kr" }, + { 0x0072, L"om" }, + { 0x0073, L"ti" }, + { 0x0074, L"gn" }, + { 0x0075, L"haw" }, + { 0x0076, L"la" }, + { 0x0077, L"so" }, + { 0x0078, L"ii" }, + { 0x0079, L"pap" }, + { 0x007a, L"arn" }, + { 0x007c, L"moh" }, + { 0x007e, L"br" }, + { 0x007f, L"" }, + { 0x0080, L"ug" }, + { 0x0081, L"mi" }, + { 0x0082, L"oc" }, + { 0x0083, L"co" }, + { 0x0084, L"gsw" }, + { 0x0085, L"sah" }, + { 0x0087, L"rw" }, + { 0x0088, L"wo" }, + { 0x008c, L"prs" }, + { 0x0091, L"gd" }, + { 0x0092, L"ku" }, + { 0x0401, L"ar-SA" }, + { 0x0402, L"bg-BG" }, + { 0x0403, L"ca-ES" }, + { 0x0404, L"zh-TW" }, + { 0x0405, L"cs-CZ" }, + { 0x0406, L"da-DK" }, + { 0x0407, L"de-DE" }, + { 0x0408, L"el-GR" }, + { 0x0409, L"en-US" }, + { 0x040a, L"es-ES_tradnl" }, + { 0x040b, L"fi-FI" }, + { 0x040c, L"fr-FR" }, + { 0x040d, L"he-IL" }, + { 0x040e, L"hu-HU" }, + { 0x040f, L"is-IS" }, + { 0x0410, L"it-IT" }, + { 0x0411, L"ja-JP" }, + { 0x0412, L"ko-KR" }, + { 0x0413, L"nl-NL" }, + { 0x0414, L"nb-NO" }, + { 0x0415, L"pl-PL" }, + { 0x0416, L"pt-BR" }, + { 0x0417, L"rm-CH" }, + { 0x0418, L"ro-RO" }, + { 0x0419, L"ru-RU" }, + { 0x041a, L"hr-HR" }, + { 0x041b, L"sk-SK" }, + { 0x041c, L"sq-AL" }, + { 0x041d, L"sv-SE" }, + { 0x041e, L"th-TH" }, + { 0x041f, L"tr-TR" }, + { 0x0420, L"ur-PK" }, + { 0x0421, L"id-ID" }, + { 0x0422, L"uk-UA" }, + { 0x0423, L"be-BY" }, + { 0x0424, L"sl-SI" }, + { 0x0425, L"et-EE" }, + { 0x0426, L"lv-LV" }, + { 0x0427, L"lt-LT" }, + { 0x0428, L"tg-Cyrl-TJ" }, + { 0x0429, L"fa-IR" }, + { 0x042a, L"vi-VN" }, + { 0x042b, L"hy-AM" }, + { 0x042c, L"az-Latn-AZ" }, + { 0x042d, L"eu-ES" }, + { 0x042e, L"hsb-DE" }, + { 0x042f, L"mk-MK" }, + { 0x0430, L"st-ZA" }, + { 0x0431, L"ts-ZA" }, + { 0x0432, L"tn-ZA" }, + { 0x0433, L"ve-ZA" }, + { 0x0434, L"xh-ZA" }, + { 0x0435, L"zu-ZA" }, + { 0x0436, L"af-ZA" }, + { 0x0437, L"ka-GE" }, + { 0x0438, L"fo-FO" }, + { 0x0439, L"hi-IN" }, + { 0x043a, L"mt-MT" }, + { 0x043b, L"se-NO" }, + { 0x043d, L"yi-001" }, + { 0x043e, L"ms-MY" }, + { 0x043f, L"kk-KZ" }, + { 0x0440, L"ky-KG" }, + { 0x0441, L"sw-KE" }, + { 0x0442, L"tk-TM" }, + { 0x0443, L"uz-Latn-UZ" }, + { 0x0444, L"tt-RU" }, + { 0x0445, L"bn-IN" }, + { 0x0446, L"pa-IN" }, + { 0x0447, L"gu-IN" }, + { 0x0448, L"or-IN" }, + { 0x0449, L"ta-IN" }, + { 0x044a, L"te-IN" }, + { 0x044b, L"kn-IN" }, + { 0x044c, L"ml-IN" }, + { 0x044d, L"as-IN" }, + { 0x044e, L"mr-IN" }, + { 0x044f, L"sa-IN" }, + { 0x0450, L"mn-MN" }, + { 0x0451, L"bo-CN" }, + { 0x0452, L"cy-GB" }, + { 0x0453, L"km-KH" }, + { 0x0454, L"lo-LA" }, + { 0x0455, L"my-MM" }, + { 0x0456, L"gl-ES" }, + { 0x0457, L"kok-IN" }, + { 0x0458, L"mni-IN" }, + { 0x0459, L"sd-Deva-IN" }, + { 0x045a, L"syr-SY" }, + { 0x045b, L"si-LK" }, + { 0x045c, L"chr-Cher-US" }, + { 0x045d, L"iu-Cans-CA" }, + { 0x045e, L"am-ET" }, + { 0x045f, L"tzm-Arab-MA" }, + { 0x0460, L"ks-Arab" }, + { 0x0461, L"ne-NP" }, + { 0x0462, L"fy-NL" }, + { 0x0463, L"ps-AF" }, + { 0x0464, L"fil-PH" }, + { 0x0465, L"dv-MV" }, + { 0x0466, L"bin-NG" }, + { 0x0468, L"ha-Latn-NG" }, + { 0x0469, L"ibb-NG" }, + { 0x046a, L"yo-NG" }, + { 0x046b, L"quz-BO" }, + { 0x046c, L"nso-ZA" }, + { 0x046d, L"ba-RU" }, + { 0x046e, L"lb-LU" }, + { 0x046f, L"kl-GL" }, + { 0x0470, L"ig-NG" }, + { 0x0472, L"om-ET" }, + { 0x0473, L"ti-ET" }, + { 0x0474, L"gn-PY" }, + { 0x0475, L"haw-US" }, + { 0x0476, L"la-001" }, + { 0x0477, L"so-SO" }, + { 0x0478, L"ii-CN" }, + { 0x0479, L"pap-029" }, + { 0x047a, L"arn-CL" }, + { 0x047c, L"moh-CA" }, + { 0x047e, L"br-FR" }, + { 0x0480, L"ug-CN" }, + { 0x0481, L"mi-NZ" }, + { 0x0482, L"oc-FR" }, + { 0x0483, L"co-FR" }, + { 0x0484, L"gsw-FR" }, + { 0x0485, L"sah-RU" }, + { 0x0487, L"rw-RW" }, + { 0x0488, L"wo-SN" }, + { 0x048c, L"prs-AF" }, + { 0x0491, L"gd-GB" }, + { 0x0492, L"ku-Arab-IQ" }, + { 0x0501, L"qps-ploc" }, + { 0x05fe, L"qps-ploca" }, + { 0x0801, L"ar-IQ" }, + { 0x0803, L"ca-ES-valencia" }, + { 0x0804, L"zh-CN" }, + { 0x0807, L"de-CH" }, + { 0x0809, L"en-GB" }, + { 0x080a, L"es-MX" }, + { 0x080c, L"fr-BE" }, + { 0x0810, L"it-CH" }, + { 0x0813, L"nl-BE" }, + { 0x0814, L"nn-NO" }, + { 0x0816, L"pt-PT" }, + { 0x0818, L"ro-MD" }, + { 0x0819, L"ru-MD" }, + { 0x081a, L"sr-Latn-CS" }, + { 0x081d, L"sv-FI" }, + { 0x0820, L"ur-IN" }, + { 0x082c, L"az-Cyrl-AZ" }, + { 0x082e, L"dsb-DE" }, + { 0x0832, L"tn-BW" }, + { 0x083b, L"se-SE" }, + { 0x083c, L"ga-IE" }, + { 0x083e, L"ms-BN" }, + { 0x0843, L"uz-Cyrl-UZ" }, + { 0x0845, L"bn-BD" }, + { 0x0846, L"pa-Arab-PK" }, + { 0x0849, L"ta-LK" }, + { 0x0850, L"mn-Mong-CN" }, + { 0x0859, L"sd-Arab-PK" }, + { 0x085d, L"iu-Latn-CA" }, + { 0x085f, L"tzm-Latn-DZ" }, + { 0x0860, L"ks-Deva-IN" }, + { 0x0861, L"ne-IN" }, + { 0x0867, L"ff-Latn-SN" }, + { 0x086b, L"quz-EC" }, + { 0x0873, L"ti-ER" }, + { 0x0901, L"qps-Latn-x-sh" }, + { 0x09ff, L"qps-plocm" }, + { 0x0c01, L"ar-EG" }, + { 0x0c04, L"zh-HK" }, + { 0x0c07, L"de-AT" }, + { 0x0c09, L"en-AU" }, + { 0x0c0a, L"es-ES" }, + { 0x0c0c, L"fr-CA" }, + { 0x0c1a, L"sr-Cyrl-CS" }, + { 0x0c3b, L"se-FI" }, + { 0x0c50, L"mn-Mong-MN" }, + { 0x0c51, L"dz-BT" }, + { 0x0c6b, L"quz-PE" }, + { 0x1001, L"ar-LY" }, + { 0x1004, L"zh-SG" }, + { 0x1007, L"de-LU" }, + { 0x1009, L"en-CA" }, + { 0x100a, L"es-GT" }, + { 0x100c, L"fr-CH" }, + { 0x101a, L"hr-BA" }, + { 0x103b, L"smj-NO" }, + { 0x105f, L"tzm-Tfng-MA" }, + { 0x1401, L"ar-DZ" }, + { 0x1404, L"zh-MO" }, + { 0x1407, L"de-LI" }, + { 0x1409, L"en-NZ" }, + { 0x140a, L"es-CR" }, + { 0x140c, L"fr-LU" }, + { 0x141a, L"bs-Latn-BA" }, + { 0x143b, L"smj-SE" }, + { 0x1801, L"ar-MA" }, + { 0x1809, L"en-IE" }, + { 0x180a, L"es-PA" }, + { 0x180c, L"fr-MC" }, + { 0x181a, L"sr-Latn-BA" }, + { 0x183b, L"sma-NO" }, + { 0x1c01, L"ar-TN" }, + { 0x1c09, L"en-ZA" }, + { 0x1c0a, L"es-DO" }, + { 0x1c0c, L"fr-029" }, + { 0x1c1a, L"sr-Cyrl-BA" }, + { 0x1c3b, L"sma-SE" }, + { 0x2001, L"ar-OM" }, + { 0x2009, L"en-JM" }, + { 0x200a, L"es-VE" }, + { 0x200c, L"fr-RE" }, + { 0x201a, L"bs-Cyrl-BA" }, + { 0x203b, L"sms-FI" }, + { 0x2401, L"ar-YE" }, + { 0x2409, L"en-029" }, + { 0x240a, L"es-CO" }, + { 0x240c, L"fr-CD" }, + { 0x241a, L"sr-Latn-RS" }, + { 0x243b, L"smn-FI" }, + { 0x2801, L"ar-SY" }, + { 0x2809, L"en-BZ" }, + { 0x280a, L"es-PE" }, + { 0x280c, L"fr-SN" }, + { 0x281a, L"sr-Cyrl-RS" }, + { 0x2c01, L"ar-JO" }, + { 0x2c09, L"en-TT" }, + { 0x2c0a, L"es-AR" }, + { 0x2c0c, L"fr-CM" }, + { 0x2c1a, L"sr-Latn-ME" }, + { 0x3001, L"ar-LB" }, + { 0x3009, L"en-ZW" }, + { 0x300a, L"es-EC" }, + { 0x300c, L"fr-CI" }, + { 0x301a, L"sr-Cyrl-ME" }, + { 0x3401, L"ar-KW" }, + { 0x3409, L"en-PH" }, + { 0x340a, L"es-CL" }, + { 0x340c, L"fr-ML" }, + { 0x3801, L"ar-AE" }, + { 0x3809, L"en-ID" }, + { 0x380a, L"es-UY" }, + { 0x380c, L"fr-MA" }, + { 0x3c01, L"ar-BH" }, + { 0x3c09, L"en-HK" }, + { 0x3c0a, L"es-PY" }, + { 0x3c0c, L"fr-HT" }, + { 0x4001, L"ar-QA" }, + { 0x4009, L"en-IN" }, + { 0x400a, L"es-BO" }, + { 0x4409, L"en-MY" }, + { 0x440a, L"es-SV" }, + { 0x4809, L"en-SG" }, + { 0x480a, L"es-HN" }, + { 0x4c0a, L"es-NI" }, + { 0x500a, L"es-PR" }, + { 0x540a, L"es-US" }, + { 0x580a, L"es-419" }, + { 0x5c0a, L"es-CU" }, + { 0x641a, L"bs-Cyrl" }, + { 0x681a, L"bs-Latn" }, + { 0x6c1a, L"sr-Cyrl" }, + { 0x701a, L"sr-Latn" }, + { 0x703b, L"smn" }, + { 0x742c, L"az-Cyrl" }, + { 0x743b, L"sms" }, + { 0x7804, L"zh" }, + { 0x7814, L"nn" }, + { 0x781a, L"bs" }, + { 0x782c, L"az-Latn" }, + { 0x783b, L"sma" }, + { 0x7843, L"uz-Cyrl" }, + { 0x7850, L"mn-Cyrl" }, + { 0x785d, L"iu-Cans" }, + { 0x785f, L"tzm-Tfng" }, + { 0x7c04, L"zh-Hant" }, + { 0x7c14, L"nb" }, + { 0x7c1a, L"sr" }, + { 0x7c28, L"tg-Cyrl" }, + { 0x7c2e, L"dsb" }, + { 0x7c3b, L"smj" }, + { 0x7c43, L"uz-Latn" }, + { 0x7c46, L"pa-Arab" }, + { 0x7c50, L"mn-Mong" }, + { 0x7c59, L"sd-Arab" }, + { 0x7c5c, L"chr-Cher" }, + { 0x7c5d, L"iu-Latn" }, + { 0x7c5f, L"tzm-Latn" }, + { 0x7c67, L"ff-Latn" }, + { 0x7c68, L"ha-Latn" }, + { 0x7c86, L"quc-Latn" }, + { 0x7c92, L"ku-Arab" }, + { 0, NULL } + }; + + TRACE("(%04x, %p)\n", lcid, string); + + if (lcid == LOCALE_USER_DEFAULT) + { + if (!NT_SUCCESS(NtQueryDefaultLocale( TRUE, &lcid ))) + return FALSE; + } + else if (lcid == LOCALE_SYSTEM_DEFAULT) + { + if (!NT_SUCCESS(NtQueryDefaultLocale( FALSE, &lcid ))) + return FALSE; + } + + i = 0; + while (list[i].name) + { + if (list[i].lcid == lcid) + { + size_t len = wcslen( list[i].name ); + + if (string->MaximumLength < len * sizeof(WCHAR)) + return FALSE; + + string->Length = len * sizeof(WCHAR); + memcpy( string->Buffer, list[i].name, len * sizeof(WCHAR) ); + + return TRUE; + } + + i++; + }
return FALSE; }
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 28 ++++++++++++++++++++++++++++ dlls/ntdll/ntdll.spec | 2 ++ include/winternl.h | 2 ++ 3 files changed, 32 insertions(+)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index e27a1fba1b8..36b1af72591 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -20,6 +20,8 @@
#include <stdarg.h>
+#include "ntstatus.h" +#define WIN32_NO_STATUS #include "winternl.h" #include "wine/debug.h"
@@ -510,3 +512,29 @@ BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string )
return FALSE; } + +/*********************************************************************** + * LdrAddLoadAsDataTable (NTDLL.@) + * + * Called when a data-only PE image is mapped. + */ +NTSTATUS NTAPI LdrAddLoadAsDataTable( PVOID module, PWSTR file_path, SIZE_T size, HANDLE handle ) +{ + FIXME("(%p, %s, %lx, %p)\n", module, debugstr_w(file_path), size, handle); + + return STATUS_NOT_IMPLEMENTED; +} + +/*********************************************************************** + * LdrRemoveLoadAsDataTable (NTDLL.@) + * + * Called when a PE image is unloaded, that had been mapped for data + * access only. + */ +NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module, PSIZE_T size, + ULONG flags ) +{ + FIXME("(%p, %p, %p, %x)\n", init_module, base_module, size, flags); + + return STATUS_NOT_IMPLEMENTED; +} diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index d27aaf1da58..11a233d4e9b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -73,6 +73,7 @@ # @ stub LdrAccessOutOfProcessResource @ stdcall LdrAccessResource(long ptr ptr ptr) @ stdcall LdrAddDllDirectory(ptr ptr) +@ stdcall LdrAddLoadAsDataTable(ptr ptr long ptr) @ stdcall LdrAddRefDll(long ptr) # @ stub LdrAlternateResourcesEnabled # @ stub LdrCreateOutOfProcessImage @@ -102,6 +103,7 @@ @ stdcall LdrQueryProcessModuleInformation(ptr long ptr) @ stdcall LdrRegisterDllNotification(long ptr ptr ptr) @ stdcall LdrRemoveDllDirectory(ptr) +@ stdcall LdrRemoveLoadAsDataTable(ptr ptr ptr long) @ stdcall LdrResolveDelayLoadedAPI(ptr ptr ptr ptr ptr long) @ stub LdrSetAppCompatDllRedirectionCallback @ stdcall LdrSetDefaultDllDirectories(long) diff --git a/include/winternl.h b/include/winternl.h index fcdedaec8aa..a14feba0a8a 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -3444,6 +3444,7 @@ NTSYSAPI NTSTATUS WINAPI DbgUiWaitStateChange(DBGUI_WAIT_STATE_CHANGE*,LARGE_IN NTSYSAPI void WINAPI DbgUserBreakPoint(void); NTSYSAPI NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG); NTSYSAPI NTSTATUS WINAPI LdrAddDllDirectory(const UNICODE_STRING*,void**); +NTSYSAPI NTSTATUS WINAPI LdrAddLoadAsDataTable(PVOID, PWSTR, SIZE_T, HANDLE); NTSYSAPI NTSTATUS WINAPI LdrAddRefDll(ULONG,HMODULE); NTSYSAPI NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE); NTSYSAPI NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_DATA_TABLE_ENTRY*); @@ -3460,6 +3461,7 @@ NTSYSAPI NTSTATUS WINAPI LdrQueryImageFileExecutionOptions(const UNICODE_STRING NTSYSAPI NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULONG, ULONG*); NTSYSAPI NTSTATUS WINAPI LdrRegisterDllNotification(ULONG,PLDR_DLL_NOTIFICATION_FUNCTION,void*,void**); NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); +NTSYSAPI NTSTATUS WINAPI LdrRemoveLoadAsDataTable(PVOID, PVOID*, PSIZE_T, ULONG); NTSYSAPI NTSTATUS WINAPI LdrSetDefaultDllDirectories(ULONG); NTSYSAPI NTSTATUS WINAPI LdrSetDllDirectory(const UNICODE_STRING*); NTSYSAPI void WINAPI LdrShutdownProcess(void);
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/kernelbase/loader.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/dlls/kernelbase/loader.c b/dlls/kernelbase/loader.c index fc9b0ce0083..38eeccc0b61 100644 --- a/dlls/kernelbase/loader.c +++ b/dlls/kernelbase/loader.c @@ -85,6 +85,8 @@ static BOOL load_library_as_datafile( LPCWSTR load_path, DWORD flags, LPCWSTR na HANDLE mapping, file = INVALID_HANDLE_VALUE; HMODULE module = 0; DWORD protect = PAGE_READONLY; + SECTION_BASIC_INFORMATION sect_info; + size_t size = 0;
*mod_ret = 0;
@@ -101,6 +103,10 @@ static BOOL load_library_as_datafile( LPCWSTR load_path, DWORD flags, LPCWSTR na if (!mapping) goto failed;
module = MapViewOfFile( mapping, FILE_MAP_READ, 0, 0, 0 ); + + if (NT_SUCCESS(NtQuerySection( mapping, SectionBasicInformation, §_info, sizeof(sect_info), NULL ))) + size = sect_info.Size.QuadPart; + CloseHandle( mapping ); if (!module) goto failed;
@@ -123,6 +129,8 @@ static BOOL load_library_as_datafile( LPCWSTR load_path, DWORD flags, LPCWSTR na } else *mod_ret = (HMODULE)((char *)module + 2); /* set bit 1 for image resource module */
+ LdrAddLoadAsDataTable( *mod_ret, filenameW, size, NULL ); + CloseHandle( file ); return TRUE;
@@ -261,6 +269,9 @@ BOOL WINAPI DECLSPEC_HOTPATCH FreeLibrary( HINSTANCE module ) } LdrUnlockLoaderLock( 0, magic ); } + + LdrRemoveLoadAsDataTable( module, NULL, NULL, 0 ); + return UnmapViewOfFile( ptr ); }
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/tests/mui.c | 782 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 782 insertions(+)
diff --git a/dlls/ntdll/tests/mui.c b/dlls/ntdll/tests/mui.c index 2b424dce5f7..5e732210783 100644 --- a/dlls/ntdll/tests/mui.c +++ b/dlls/ntdll/tests/mui.c @@ -22,9 +22,86 @@ #include "winternl.h" #include "winuser.h"
+typedef struct _MUI_DATA_BLOCK +{ + DWORD Signature; + DWORD Size; + DWORD RCConfigVersion; + DWORD PathType; + DWORD FileType; + DWORD SystemAttributes; + DWORD UltimateFallbackLocation; + BYTE ServiceChecksum[16]; + BYTE Checksum[16]; + DWORD Unknown1; + DWORD Unknown2; + DWORD Unknown3; + DWORD Unknown4; + DWORD Unknown5; + DWORD Unknown6; + DWORD MainNameTypesOffset; + DWORD MainNameTypesLength; + DWORD MainIDTypesOffset; + DWORD MainIDTypesLength; + DWORD MuiNameTypesOffset; + DWORD MuiNameTypesLength; + DWORD MuiIDTypesOffset; + DWORD MuiIDTypesLength; + DWORD LanguageOffset; + DWORD LanguageLength; + DWORD UltimateFallbackLanguageOffset; + DWORD UltimateFallbackLanguageLength; +} MUI_DATA_BLOCK; + +#define MUI_TYPE L"MUI" +#define MUI_SIGNATURE 0xfecdfecd +#define MUI_TYPE_LANGUAGE_NEUTRAL 0x01 +#define MUI_TYPE_LANGUAGE_SPECIFIC 0x02 + +#define SECTION_ALIGNMENT 0x1000 +#define FILE_ALIGNMENT 0x200 + +#define ALIGN(x, a) (((x) + a - 1) & ~((unsigned int)a - 1)) + +static const WCHAR greeting_type[] = L"GREETING"; + +static const char generic_greeting[] = "hello"; +static const char en_US_greeting[] = "howdy"; +static const char en_AU_greeting[] = "g'day"; +static const char fr_greeting[] = "bonjour"; +static const char hr_greeting[] = "zdravo"; +static const char az_Latn_greeting[] = "salam"; +static const char es_greeting[] = "hola"; +static const char it_greeting[] = "ciao"; +static const char de_greeting[] = "guten Tag"; +static const char et_greeting[] = "tere"; +static const char pt_greeting[] = "oi"; + +static const unsigned char checksum1[] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, + 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }; +static const unsigned char checksum2[] = { 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10, + 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }; +static const unsigned char checksum3[] = { 0xfe, 0xba, 0x76, 0x32, 0xdc, 0x98, 0x54, 0x10, + 0x23, 0x67, 0xab, 0xef, 0x01, 0x45, 0x89, 0xcd }; +static const unsigned char checksum4[] = { 0x23, 0x67, 0xab, 0xef, 0x01, 0x45, 0x89, 0xcd, + 0xfe, 0xba, 0x76, 0x32, 0xdc, 0x98, 0x54, 0x10}; + +enum mui_error +{ + mui_error_none, + mui_error_wrong_checksum, + mui_error_wrong_language, + mui_error_wrong_signature, + mui_error_not_an_image, + mui_error_missing_file, + mui_error_wrong_file_type +}; + static BOOLEAN (NTAPI *pRtlLCIDToCultureName)(LCID, PUNICODE_STRING); static NTSTATUS (NTAPI *pNtQueryDefaultLocale)(BOOLEAN, PLCID); static LONG (NTAPI *pRtlCompareUnicodeString)(PCUNICODE_STRING, PCUNICODE_STRING, BOOLEAN); +static NTSTATUS (NTAPI *pLdrFindResource_U)(HMODULE, const LDR_RESOURCE_INFO*, ULONG, const IMAGE_RESOURCE_DATA_ENTRY**); +static NTSTATUS (NTAPI *pLdrAccessResource)(HMODULE, const IMAGE_RESOURCE_DATA_ENTRY*, void**, ULONG*);
static const char *debugstr_us( const UNICODE_STRING *us ) { @@ -613,6 +690,708 @@ static void test_lcid_to_culture_name(void) } }
+static void create_main_mui_block(MUI_DATA_BLOCK **ret) +{ + MUI_DATA_BLOCK *mui; + unsigned int size; + + static const WCHAR fallback_language[] = L"en-US"; + static const WCHAR main_name_types[] = L"MUI\0\0"; + static const WCHAR mui_name_types[] = L"MUI\0GREETING\0\0"; + + size = sizeof(MUI_DATA_BLOCK); + size += sizeof(main_name_types) - sizeof(WCHAR); + size += sizeof(mui_name_types) - sizeof(WCHAR); + size += sizeof(fallback_language) - sizeof(WCHAR); + + mui = malloc(size); + + memset(mui, 0, size); + + mui->Signature = MUI_SIGNATURE; + mui->Size = size; + mui->RCConfigVersion = 0x10000; + mui->FileType = MUI_TYPE_LANGUAGE_NEUTRAL; + mui->UltimateFallbackLocation = 2; /* 1 = internal, 2 = external */ + memcpy(mui->ServiceChecksum, checksum1, sizeof(checksum1)); + memcpy(mui->Checksum, checksum2, sizeof(checksum2)); + + mui->MainNameTypesOffset = sizeof(MUI_DATA_BLOCK); + mui->MainNameTypesLength = sizeof(main_name_types) - sizeof(WCHAR); + + mui->MuiNameTypesOffset = mui->MainNameTypesOffset + mui->MainNameTypesLength; + mui->MuiNameTypesLength = sizeof(mui_name_types) - sizeof(WCHAR); + + mui->UltimateFallbackLanguageOffset = mui->MuiNameTypesOffset + mui->MuiNameTypesLength; + mui->UltimateFallbackLanguageLength = sizeof(fallback_language) - sizeof(WCHAR); + + memcpy((char*)mui + mui->MainNameTypesOffset, main_name_types, mui->MainNameTypesLength); + memcpy((char*)mui + mui->MuiNameTypesOffset, mui_name_types, mui->MuiNameTypesLength); + memcpy((char*)mui + mui->UltimateFallbackLanguageOffset, fallback_language, mui->UltimateFallbackLanguageLength); + + *ret = mui; +} + +#pragma pack(push,1) + +typedef struct { + IMAGE_RESOURCE_DIRECTORY type_dir; + IMAGE_RESOURCE_DIRECTORY_ENTRY type_dir_entry; + IMAGE_RESOURCE_DIRECTORY_ENTRY type_dir_entry2; + IMAGE_RESOURCE_DIRECTORY name_dir; + IMAGE_RESOURCE_DIRECTORY_ENTRY name_dir_entry; + IMAGE_RESOURCE_DIRECTORY name_dir2; + IMAGE_RESOURCE_DIRECTORY_ENTRY name_dir_entry2; + IMAGE_RESOURCE_DIRECTORY lang_dir; + IMAGE_RESOURCE_DIRECTORY_ENTRY lang_dir_entry; + IMAGE_RESOURCE_DIRECTORY lang_dir2; + IMAGE_RESOURCE_DIRECTORY_ENTRY lang_dir_entry2; + IMAGE_RESOURCE_DATA_ENTRY entry; + IMAGE_RESOURCE_DATA_ENTRY entry2; + USHORT mui_name_len; + WCHAR mui[sizeof(MUI_TYPE) / sizeof(WCHAR)]; + USHORT name_len; +} rsrc; + +#pragma pack(pop) + +static void make_rsrc(void **data, unsigned int *len, MUI_DATA_BLOCK *mui, const char *value) +{ + rsrc *h; + unsigned char *ptr; + size_t value_len = (DWORD)strlen(value); + + *len = (unsigned int)(sizeof(rsrc) + sizeof(greeting_type) - sizeof(WCHAR) + value_len + mui->Size); + *data = malloc(*len); + + h = (rsrc*)*data; + + h->type_dir.Characteristics = 0; + h->type_dir.TimeDateStamp = 0; + h->type_dir.MajorVersion = 0; + h->type_dir.MinorVersion = 0; + h->type_dir.NumberOfNamedEntries = 2; + h->type_dir.NumberOfIdEntries = 0; + + h->type_dir_entry.NameOffset = offsetof(rsrc, name_len); + h->type_dir_entry.NameIsString = 1; + h->type_dir_entry.OffsetToDirectory = offsetof(rsrc, name_dir); + h->type_dir_entry.DataIsDirectory = 1; + + h->type_dir_entry2.NameOffset = offsetof(rsrc, mui_name_len); + h->type_dir_entry2.NameIsString = 1; + h->type_dir_entry2.OffsetToDirectory = offsetof(rsrc, name_dir2); + h->type_dir_entry2.DataIsDirectory = 1; + + h->name_dir.Characteristics = 0; + h->name_dir.TimeDateStamp = 0; + h->name_dir.MajorVersion = 0; + h->name_dir.MinorVersion = 0; + h->name_dir.NumberOfNamedEntries = 0; + h->name_dir.NumberOfIdEntries = 1; + + h->name_dir_entry.Name = 1; + h->name_dir_entry.OffsetToDirectory = offsetof(rsrc, lang_dir); + h->name_dir_entry.DataIsDirectory = 1; + + h->name_dir2.Characteristics = 0; + h->name_dir2.TimeDateStamp = 0; + h->name_dir2.MajorVersion = 0; + h->name_dir2.MinorVersion = 0; + h->name_dir2.NumberOfNamedEntries = 0; + h->name_dir2.NumberOfIdEntries = 1; + + h->name_dir_entry2.Name = 1; + h->name_dir_entry2.OffsetToDirectory = offsetof(rsrc, lang_dir2); + h->name_dir_entry2.DataIsDirectory = 1; + + h->lang_dir.Characteristics = 0; + h->lang_dir.TimeDateStamp = 0; + h->lang_dir.MajorVersion = 0; + h->lang_dir.MinorVersion = 0; + h->lang_dir.NumberOfNamedEntries = 0; + h->lang_dir.NumberOfIdEntries = 1; + + h->lang_dir_entry.Name = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US); + h->lang_dir_entry.OffsetToData = offsetof(rsrc, entry); + + h->lang_dir2.Characteristics = 0; + h->lang_dir2.TimeDateStamp = 0; + h->lang_dir2.MajorVersion = 0; + h->lang_dir2.MinorVersion = 0; + h->lang_dir2.NumberOfNamedEntries = 0; + h->lang_dir2.NumberOfIdEntries = 1; + + h->lang_dir_entry2.Name = 0; + h->lang_dir_entry2.OffsetToData = offsetof(rsrc, entry2); + + h->entry.OffsetToData = 0x1000 + sizeof(rsrc) + sizeof(greeting_type) - sizeof(WCHAR); + h->entry.Size = (DWORD)value_len; + h->entry.CodePage = 0; + h->entry.Reserved = 0; + + h->entry2.OffsetToData = h->entry.OffsetToData + h->entry.Size; + h->entry2.Size = mui->Size; + h->entry2.CodePage = 0; + h->entry2.Reserved = 0; + + h->mui_name_len = (sizeof(MUI_TYPE) / sizeof(WCHAR)) - 1; + + memcpy(h->mui, MUI_TYPE, sizeof(MUI_TYPE)); + + h->name_len = (sizeof(greeting_type) / sizeof(WCHAR)) - 1; + + ptr = (unsigned char*)*data + sizeof(rsrc); + + memcpy(ptr, greeting_type, sizeof(greeting_type) - sizeof(WCHAR)); + ptr += sizeof(greeting_type) - sizeof(WCHAR); + + memcpy(ptr, value, value_len); + ptr += value_len; + + memcpy(ptr, mui, mui->Size); +} + +static BOOLEAN make_image(const WCHAR *fn, void *rsrc, unsigned int rsrclen) +{ + IMAGE_DOS_HEADER h; + IMAGE_NT_HEADERS32 nth; + IMAGE_SECTION_HEADER sect; + HANDLE file; + ULONG header_size; + DWORD written; + + /* Write PE file consisting of .rsrc section only */ + + static const char stub[] = "\x0e\x1f\xba\x0e\x00\xb4\x09\xcd\x21\xb8\x01\x4c\xcd\x21This program cannot be run in DOS mode.\r\r\n\x24\x00\x00\x00\x00\x00\x00\x00"; + + file = CreateFileW(fn, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + ok(file != INVALID_HANDLE_VALUE, "CreateFile failed creating image %s (error %u)\n", + debugstr_w(fn), GetLastError()); + + if (file == INVALID_HANDLE_VALUE) + return FALSE; + + memset(&h, 0, sizeof(h)); + + h.e_magic = IMAGE_DOS_SIGNATURE; + h.e_cblp = 0x90; + h.e_cp = 0x3; + h.e_cparhdr = 0x4; + h.e_maxalloc = 0xffff; + h.e_sp = 0xb8; + h.e_lfarlc = 0x40; + h.e_lfanew = sizeof(h) + sizeof(stub) - 1; + + if (!WriteFile(file, &h, sizeof(h), &written, NULL)) + { + fprintf(stderr, "WriteFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (!WriteFile(file, stub, sizeof(stub) - 1, &written, NULL)) + { + fprintf(stderr, "WriteFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + memset(&nth, 0, sizeof(nth)); + + nth.Signature = IMAGE_NT_SIGNATURE; + nth.FileHeader.Machine = IMAGE_FILE_MACHINE_I386; + nth.FileHeader.NumberOfSections = 1; + nth.FileHeader.SizeOfOptionalHeader = sizeof(IMAGE_OPTIONAL_HEADER32); + nth.FileHeader.Characteristics = IMAGE_FILE_EXECUTABLE_IMAGE; + + header_size = (ULONG)ALIGN((unsigned int)h.e_lfanew + sizeof(nth) + sizeof(sect), FILE_ALIGNMENT); + + nth.OptionalHeader.Magic = IMAGE_NT_OPTIONAL_HDR32_MAGIC; + nth.OptionalHeader.MajorLinkerVersion = 0x2; + nth.OptionalHeader.MinorLinkerVersion = 0x23; + nth.OptionalHeader.SizeOfCode = 0; + nth.OptionalHeader.SizeOfInitializedData = (ULONG)ALIGN(rsrclen, SECTION_ALIGNMENT); + nth.OptionalHeader.SizeOfUninitializedData = 0; + nth.OptionalHeader.AddressOfEntryPoint = 0; + nth.OptionalHeader.BaseOfCode = 0x1000; + nth.OptionalHeader.BaseOfData = 0x1000; + nth.OptionalHeader.ImageBase = 0x10000000; + nth.OptionalHeader.SectionAlignment = SECTION_ALIGNMENT; + nth.OptionalHeader.FileAlignment = FILE_ALIGNMENT; + nth.OptionalHeader.MajorOperatingSystemVersion = 4; + nth.OptionalHeader.MinorOperatingSystemVersion = 0; + nth.OptionalHeader.MajorImageVersion = 0; + nth.OptionalHeader.MinorImageVersion = 0; + nth.OptionalHeader.MajorSubsystemVersion = 5; + nth.OptionalHeader.MinorSubsystemVersion = 2; + nth.OptionalHeader.Win32VersionValue = 0; + nth.OptionalHeader.SizeOfImage = + (ULONG)(ALIGN(header_size, SECTION_ALIGNMENT) + ALIGN(rsrclen, SECTION_ALIGNMENT)); + nth.OptionalHeader.SizeOfHeaders = header_size; + nth.OptionalHeader.Subsystem = IMAGE_SUBSYSTEM_WINDOWS_GUI; + nth.OptionalHeader.DllCharacteristics = 0; + nth.OptionalHeader.SizeOfStackReserve = 0x100000; + nth.OptionalHeader.SizeOfStackCommit = 0x1000; + nth.OptionalHeader.SizeOfHeapReserve = 0x100000; + nth.OptionalHeader.SizeOfHeapCommit = 0x1000; + nth.OptionalHeader.LoaderFlags = 0; + nth.OptionalHeader.NumberOfRvaAndSizes = IMAGE_NUMBEROF_DIRECTORY_ENTRIES; + + nth.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].VirtualAddress = + ALIGN(header_size, SECTION_ALIGNMENT); + nth.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE].Size = rsrclen; + + if (!WriteFile(file, &nth, sizeof(nth), &written, NULL)) + { + fprintf(stderr, "WriteFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + memcpy(sect.Name, ".rsrc\0\0\0", 8); + sect.Misc.VirtualSize = (ULONG)ALIGN(rsrclen, SECTION_ALIGNMENT); + sect.VirtualAddress = ALIGN(header_size, SECTION_ALIGNMENT); + sect.SizeOfRawData = (ULONG)ALIGN(rsrclen, FILE_ALIGNMENT); + sect.PointerToRawData = header_size; + sect.PointerToRelocations = 0; + sect.PointerToLinenumbers = 0; + sect.NumberOfRelocations = 0; + sect.NumberOfLinenumbers = 0; + sect.Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA; + + if (!WriteFile(file, §, sizeof(sect), &written, NULL)) + { + fprintf(stderr, "WriteFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (SetFilePointer(file, (LONG)header_size, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER) + { + fprintf(stderr, "SetFilePointer failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (!SetEndOfFile(file)) + { + fprintf(stderr, "SetEndOfFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (!WriteFile(file, rsrc, rsrclen, &written, NULL)) + { + fprintf(stderr, "WriteFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (SetFilePointer(file, (LONG)(header_size + sect.SizeOfRawData), NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER) + { + fprintf(stderr, "SetFilePointer failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + if (!SetEndOfFile(file)) + { + fprintf(stderr, "SetEndOfFile failed (error %u)\n", GetLastError()); + CloseHandle(file); + return FALSE; + } + + CloseHandle(file); + + return TRUE; +} + +static void create_lang_mui_block(MUI_DATA_BLOCK **ret, const WCHAR *lang, enum mui_error error) +{ + MUI_DATA_BLOCK *mui; + unsigned int size; + size_t lang_size = wcslen( lang ) * sizeof(WCHAR); + + static const WCHAR main_name_types[] = L"MUI\0GREETING\0\0"; + + size = sizeof(MUI_DATA_BLOCK); + size += sizeof(main_name_types) - sizeof(WCHAR); + size += (unsigned int)lang_size; + + mui = malloc(size); + + memset(mui, 0, size); + + mui->Signature = error == mui_error_wrong_signature ? 0x12345678 : MUI_SIGNATURE; + mui->Size = size; + mui->RCConfigVersion = 0x10000; + mui->FileType = error == mui_error_wrong_file_type ? + MUI_TYPE_LANGUAGE_NEUTRAL : MUI_TYPE_LANGUAGE_SPECIFIC; + + if (error == mui_error_wrong_checksum) + { + memcpy(mui->ServiceChecksum, checksum3, sizeof(checksum3)); + memcpy(mui->Checksum, checksum4, sizeof(checksum4)); + } + else + { + memcpy(mui->ServiceChecksum, checksum1, sizeof(checksum1)); + memcpy(mui->Checksum, checksum2, sizeof(checksum2)); + } + + mui->MainNameTypesOffset = sizeof(MUI_DATA_BLOCK); + mui->MainNameTypesLength = sizeof(main_name_types) - sizeof(WCHAR); + + mui->LanguageOffset = mui->MainNameTypesOffset + mui->MainNameTypesLength; + mui->LanguageLength = (unsigned int)lang_size; + + memcpy((char*)mui + mui->MainNameTypesOffset, main_name_types, mui->MainNameTypesLength); + memcpy((char*)mui + mui->LanguageOffset, lang, mui->LanguageLength); + + *ret = mui; +} + +static BOOLEAN create_lang( const WCHAR *lang, const char *greeting, enum mui_error error ) +{ + void *rsrc; + unsigned int rsrclen; + MUI_DATA_BLOCK *mui; + WCHAR filename[MAX_PATH]; + BOOL ret; + + if (error != mui_error_not_an_image && error != mui_error_missing_file) + { + create_lang_mui_block(&mui, error == mui_error_wrong_language ? L"en-NZ" : lang, error); + make_rsrc(&rsrc, &rsrclen, mui, greeting); + free(mui); + } + + ret = CreateDirectoryW(lang, NULL); + ok(ret || GetLastError() == ERROR_ALREADY_EXISTS, + "CreateDirectory failed (error %u)\n", GetLastError()); + if (!ret && GetLastError() != ERROR_ALREADY_EXISTS) + return FALSE; + + wcscpy(filename, lang); + wcscat(filename, L"\out.exe.mui"); + + if (error == mui_error_not_an_image) + { + HANDLE file; + DWORD written; + + static const char msg[] = "not an image"; + + file = CreateFileW(filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + ok(file != INVALID_HANDLE_VALUE, "CreateFile failed for %s (error %u)\n", + debugstr_w(filename), GetLastError()); + if (file == INVALID_HANDLE_VALUE) + return FALSE; + + ret = WriteFile(file, msg, sizeof(msg) - 1, &written, NULL); + ok(ret, "WriteFile failed (error %u)\n", GetLastError()); + + CloseHandle(file); + + if (!ret) + return FALSE; + } + else if (error != mui_error_missing_file) + { + if (!make_image(filename, rsrc, rsrclen)) + { + free(rsrc); + return FALSE; + } + + free(rsrc); + } + + return TRUE; +} + +static NTSTATUS get_greeting( HMODULE mod, LCID lang, void **ptr, ULONG *size, const char *text_lang ) +{ + LDR_RESOURCE_INFO info; + const IMAGE_RESOURCE_DATA_ENTRY *entry; + NTSTATUS status, status2; + + info.Type = (ULONG_PTR)greeting_type; + info.Name = 1; + info.Language = lang; + + status = pLdrFindResource_U(mod, &info, 3, &entry); + + if (!NT_SUCCESS(status)) + return status; + + status2 = pLdrAccessResource(mod, entry, ptr, size); + ok(status2 == STATUS_SUCCESS, "LdrFindResource_U returned %08x for lang %04x (%s), expected STATUS_SUCCESS\n", + status2, lang, text_lang); + + return status; +} + +static void test_mui(void) +{ + void *rsrc; + unsigned int rsrclen; + MUI_DATA_BLOCK *mui; + HMODULE mod; + void *ptr; + ULONG size; + NTSTATUS status; + + /* Create language-neutral file */ + + create_main_mui_block(&mui); + make_rsrc(&rsrc, &rsrclen, mui, generic_greeting); + free(mui); + + if (!make_image(L"out.exe", rsrc, rsrclen)) { + free(rsrc); + return; + } + + free(rsrc); + + /* Create MUI files */ + + if (!create_lang( L"en-US", en_US_greeting, mui_error_none )) + return; + + if (!create_lang( L"en-AU", en_AU_greeting, mui_error_none )) + return; + + if (!create_lang( L"fr", fr_greeting, mui_error_none )) + return; + + if (!create_lang( L"hr", hr_greeting, mui_error_none )) + return; + + if (!create_lang( L"az-Latn", az_Latn_greeting, mui_error_none )) + return; + + if (!create_lang( L"es", es_greeting, mui_error_wrong_checksum )) + return; + + if (!create_lang( L"it", it_greeting, mui_error_wrong_language )) + return; + + if (!create_lang( L"de", de_greeting, mui_error_wrong_signature )) + return; + + if (!create_lang( L"et", et_greeting, mui_error_not_an_image )) + return; + + if (!create_lang( L"pt", pt_greeting, mui_error_wrong_file_type )) + return; + + mod = LoadLibraryExW( L"out.exe", NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE ); + ok(!!mod, "LoadLibraryEx failed (error %u)\n", GetLastError() ); + if (!mod) + return; + + /* Test en-US */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), &ptr, &size, + "en-US" ); + + ok(status == STATUS_SUCCESS, "LdrFindResource_U returned %08x for lang en-US, expected STATUS_SUCCESS\n", + status); + + if (NT_SUCCESS(status)) + { + if (size == sizeof(generic_greeting) - 1 && !memcmp( ptr, generic_greeting, size )) + { + win_skip("MUI not supported on this platform\n"); + FreeLibrary(mod); + return; + } + + ok(size == sizeof(en_US_greeting) - 1 && !memcmp( ptr, en_US_greeting, size ), + "en-US greeting was %.*s, expected %s\n", + size, (char*)ptr, en_US_greeting); + } + + /* Test en-AU */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_AUS), &ptr, &size, + "en-AU" ); + + ok(status == STATUS_SUCCESS, "LdrFindResource_U returned %08x for lang en-AU, expected STATUS_SUCCESS\n", + status); + + if (NT_SUCCESS(status)) + { + ok(size == sizeof(en_AU_greeting) - 1 && !memcmp( ptr, en_AU_greeting, size ), + "en-AU greeting was %.*s, expected %s\n", + size, (char*)ptr, en_AU_greeting); + } + + /* Test fr-FR (falls back to fr) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), &ptr, &size, + "fr-FR" ); + + ok(status == STATUS_SUCCESS, "LdrFindResource_U returned %08x for lang fr-FR, expected STATUS_SUCCESS\n", + status); + + if (NT_SUCCESS(status)) + { + ok(size == sizeof(fr_greeting) - 1 && !memcmp(ptr, fr_greeting, size), + "fr greeting was %.*s, expected %s\n", + size, (char*)ptr, fr_greeting); + } + + /* Test sr-Latn (doesn't fall back to hr on 7+) */ + + size = 0; + status = get_greeting( mod, 0x701a, &ptr, &size, "sr-Latn" ); + + ok(status == STATUS_MUI_FILE_NOT_FOUND || status == STATUS_SUCCESS, + "LdrFindResource_U returned %08x for lang sr-Latn, expected STATUS_MUI_FILE_NOT_FOUND or STATUS_SUCCESS\n", + status); + + if (NT_SUCCESS(status)) + { + /* On w1064v1809, uses value in LN file if language MUI not found. */ + ok((size == sizeof(hr_greeting) - 1 && !memcmp( ptr, hr_greeting, size )) || + broken(size == sizeof(generic_greeting) - 1 && !memcmp( ptr, generic_greeting, size )), + "sr-Latn greeting was %.*s, expected %s\n", + size, (char*)ptr, hr_greeting); + } + + /* Test az-Latn-AZ (falls back to az-Latn on 7+) */ + + size = 0; + status = get_greeting( mod, 0x042c, &ptr, &size, "az-Latn-AZ" ); + + ok(status == STATUS_SUCCESS || status == STATUS_MUI_FILE_NOT_FOUND, + "LdrFindResource_U returned %08x for lang az-Latn-AZ, expected STATUS_SUCCESS or STATUS_MUI_FILE_NOT_FOUND\n", + status); + + if (NT_SUCCESS(status)) + { + ok(size == sizeof(az_Latn_greeting) - 1 && !memcmp( ptr, az_Latn_greeting, size ), + "az-Latn-AZ greeting was %.*s, expected %s\n", + size, (char*)ptr, az_Latn_greeting); + } + + /* Test with invalid language */ + + size = 0; + status = get_greeting( mod, 0x0805, &ptr, &size, "???" ); + + ok(status == STATUS_INVALID_PARAMETER || status == STATUS_MUI_FILE_NOT_FOUND, + "LdrFindResource_U returned %08x for invalid language, expected STATUS_INVALID_PARAMETER or STATUS_MUI_FILE_NOT_FOUND\n", + status); + + if (NT_SUCCESS(status)) + { + ok(FALSE, "invalid language greeting was %.*s, expected error\n", + size, (char*)ptr); + } + + /* Test es (wrong checksum) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_SPANISH, SUBLANG_NEUTRAL), &ptr, &size, + "es" ); + + ok(status == STATUS_MUI_INVALID_FILE, + "LdrFindResource_U returned %08x for lang es, expected STATUS_MUI_INVALID_FILE\n", + status); + + if (NT_SUCCESS(status)) + { + ok(FALSE, "es greeting was %.*s, expected error\n", + size, (char*)ptr); + } + + /* Test it (wrong language) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_ITALIAN, SUBLANG_NEUTRAL), &ptr, &size, + "it" ); + + ok(status == STATUS_MUI_INVALID_FILE, + "LdrFindResource_U returned %08x for lang it, expected STATUS_MUI_INVALID_FILE\n", + status); + + if (NT_SUCCESS(status)) + { + ok(FALSE, "it greeting was %.*s, expected error\n", + size, (char*)ptr); + } + + /* Test de (wrong signature) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_GERMAN, SUBLANG_NEUTRAL), &ptr, &size, + "de" ); + + ok(status == STATUS_MUI_INVALID_FILE, + "LdrFindResource_U returned %08x for lang de, expected STATUS_MUI_INVALID_FILE\n", + status); + + if (NT_SUCCESS(status)) + { + ok(FALSE, "de greeting was %.*s, expected error\n", + size, (char*)ptr); + } + + /* Test et (not an image) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_ESTONIAN, SUBLANG_NEUTRAL), &ptr, &size, + "et" ); + + ok(status == STATUS_INVALID_IMAGE_FORMAT, + "LdrFindResource_U returned %08x for lang et, expected STATUS_INVALID_IMAGE_FORMAT\n", + status); + + if (NT_SUCCESS(status)) + { + ok(FALSE, "et greeting was %.*s, expected error\n", + size, (char*)ptr); + } + + /* Test hu (missing file) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_HUNGARIAN, SUBLANG_NEUTRAL), &ptr, &size, + "hu" ); + + /* On w1064v1809, uses value in LN file if language MUI not found. */ + ok(status == STATUS_MUI_FILE_NOT_FOUND || broken(status == STATUS_SUCCESS), + "LdrFindResource_U returned %08x for lang hu, expected STATUS_MUI_FILE_NOT_FOUND\n", + status); + + /* Test pt (wrong file type) */ + + size = 0; + status = get_greeting( mod, MAKELANGID(LANG_PORTUGUESE, SUBLANG_NEUTRAL), &ptr, + &size, "pt" ); + + ok(status == STATUS_SUCCESS, + "LdrFindResource_U returned %08x for lang pt, expected STATUS_SUCCESS\n", + status); + + if (NT_SUCCESS(status)) + { + ok(size == sizeof(pt_greeting) - 1 && !memcmp(ptr, pt_greeting, size), + "pt greeting was %.*s, expected %s\n", + size, (char*)ptr, pt_greeting); + } + + FreeLibrary(mod); +} + START_TEST(mui) { HMODULE hntdll = GetModuleHandleA( "ntdll.dll" ); @@ -620,6 +1399,9 @@ START_TEST(mui) pRtlCompareUnicodeString = (void*)GetProcAddress( hntdll, "RtlCompareUnicodeString" ); pRtlLCIDToCultureName = (void*)GetProcAddress( hntdll, "RtlLCIDToCultureName" ); pNtQueryDefaultLocale = (void*)GetProcAddress( hntdll, "NtQueryDefaultLocale" ); + pLdrFindResource_U = (void*)GetProcAddress( hntdll, "LdrFindResource_U" ); + pLdrAccessResource = (void*)GetProcAddress( hntdll, "LdrAccessResource" );
test_lcid_to_culture_name(); + test_mui(); }
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=87833
Your paranoid android.
=== debiant2 (32 bit report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit French report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit Japanese:Japan report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit Chinese:China report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (64 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 66 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index 36b1af72591..132525967bb 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -24,9 +24,30 @@ #define WIN32_NO_STATUS #include "winternl.h" #include "wine/debug.h" +#include "wine/list.h"
WINE_DEFAULT_DEBUG_CHANNEL(mui);
+static RTL_CRITICAL_SECTION data_modules_section; +static RTL_CRITICAL_SECTION_DEBUG data_modules_critsect_debug = +{ + 0, 0, &data_modules_section, + { &data_modules_critsect_debug.ProcessLocksList, &data_modules_critsect_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": data_modules_section") } +}; +static RTL_CRITICAL_SECTION data_modules_section = { &data_modules_critsect_debug, -1, 0, 0, 0, 0 }; + +typedef struct +{ + struct list entry; + HMODULE module; + SIZE_T size; + HANDLE handle; + WCHAR path[1]; +} data_module; + +static struct list data_modules = LIST_INIT(data_modules); + /*********************************************************************** * RtlLCIDToCultureName (NTDLL.@) * @@ -520,9 +541,30 @@ BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) */ NTSTATUS NTAPI LdrAddLoadAsDataTable( PVOID module, PWSTR file_path, SIZE_T size, HANDLE handle ) { - FIXME("(%p, %s, %lx, %p)\n", module, debugstr_w(file_path), size, handle); + data_module *dm; + size_t path_len = wcslen( file_path ); + + TRACE("(%p, %s, %lx, %p)\n", module, debugstr_w(file_path), size, handle); + + dm = RtlAllocateHeap( GetProcessHeap(), 0, offsetof(data_module, path) + ((path_len + 1) * sizeof(WCHAR)) ); + if (!dm) + return STATUS_INSUFFICIENT_RESOURCES; + + dm->module = module; + + if (file_path) + memcpy(dm->path, file_path, (path_len + 1) * sizeof(WCHAR)); + else + dm->path[0] = 0; + + dm->size = size; + dm->handle = handle;
- return STATUS_NOT_IMPLEMENTED; + RtlEnterCriticalSection( &data_modules_section ); + list_add_tail( &data_modules, &dm->entry ); + RtlLeaveCriticalSection( &data_modules_section ); + + return STATUS_SUCCESS; }
/*********************************************************************** @@ -534,7 +576,23 @@ NTSTATUS NTAPI LdrAddLoadAsDataTable( PVOID module, PWSTR file_path, SIZE_T size NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module, PSIZE_T size, ULONG flags ) { - FIXME("(%p, %p, %p, %x)\n", init_module, base_module, size, flags); + data_module *dm; + + TRACE("(%p, %p, %p, %x)\n", init_module, base_module, size, flags); + + RtlEnterCriticalSection( &data_modules_section ); + + LIST_FOR_EACH_ENTRY( dm, &data_modules, data_module, entry ) + { + if (dm->module == init_module) + { + list_remove( &dm->entry ); + RtlFreeHeap( GetProcessHeap(), 0, dm ); + break; + } + } + + RtlLeaveCriticalSection( &data_modules_section );
- return STATUS_NOT_IMPLEMENTED; + return STATUS_SUCCESS; }
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=87834
Your paranoid android.
=== debiant2 (32 bit report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit Chinese:China report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (64 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 667 ++++++++++++++++++++++++++++++++++++++++ dlls/ntdll/ntdll_misc.h | 8 + dlls/ntdll/resource.c | 10 +- 3 files changed, 681 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index 132525967bb..dcdfefcbeb8 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -25,9 +25,19 @@ #include "winternl.h" #include "wine/debug.h" #include "wine/list.h" +#include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL(mui);
+static RTL_CRITICAL_SECTION mui_section; +static RTL_CRITICAL_SECTION_DEBUG mui_critsect_debug = +{ + 0, 0, &mui_section, + { &mui_critsect_debug.ProcessLocksList, &mui_critsect_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": mui_section") } +}; +static RTL_CRITICAL_SECTION mui_section = { &mui_critsect_debug, -1, 0, 0, 0, 0 }; + static RTL_CRITICAL_SECTION data_modules_section; static RTL_CRITICAL_SECTION_DEBUG data_modules_critsect_debug = { @@ -37,6 +47,61 @@ static RTL_CRITICAL_SECTION_DEBUG data_modules_critsect_debug = }; static RTL_CRITICAL_SECTION data_modules_section = { &data_modules_critsect_debug, -1, 0, 0, 0, 0 };
+typedef struct _MUI_DATA_BLOCK +{ + DWORD Signature; + DWORD Size; + DWORD RCConfigVersion; + DWORD PathType; + DWORD FileType; + DWORD SystemAttributes; + DWORD UltimateFallbackLocation; + BYTE ServiceChecksum[16]; + BYTE Checksum[16]; + DWORD Unknown1; + DWORD Unknown2; + DWORD Unknown3; + DWORD Unknown4; + DWORD Unknown5; + DWORD Unknown6; + DWORD MainNameTypesOffset; + DWORD MainNameTypesLength; + DWORD MainIDTypesOffset; + DWORD MainIDTypesLength; + DWORD MuiNameTypesOffset; + DWORD MuiNameTypesLength; + DWORD MuiIDTypesOffset; + DWORD MuiIDTypesLength; + DWORD LanguageOffset; + DWORD LanguageLength; + DWORD UltimateFallbackLanguageOffset; + DWORD UltimateFallbackLanguageLength; +} MUI_DATA_BLOCK; + +#define MUI_SIGNATURE 0xfecdfecd + +#define MUI_TYPE_LANGUAGE_NEUTRAL 0x01 +#define MUI_TYPE_LANGUAGE_SPECIFIC 0x02 + +typedef struct +{ + struct list entry; + void *addr; + size_t size; + MUI_DATA_BLOCK *block; +} mui_lang_module; + +typedef struct +{ + struct list entry; + HMODULE module; + MUI_DATA_BLOCK *block; + RTL_CRITICAL_SECTION list_section; + struct list langs; +} mui_module; + +#define IS_INTRESOURCE(x) (((ULONG_PTR)(x) >> 16) == 0) + typedef struct { struct list entry; @@ -46,6 +111,7 @@ typedef struct WCHAR path[1]; } data_module;
+static struct list mui_modules = LIST_INIT(mui_modules); static struct list data_modules = LIST_INIT(data_modules);
/*********************************************************************** @@ -534,6 +600,607 @@ BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) return FALSE; }
+/*********************************************************************** + * find_mui_block + * + * Return the address of the MUI data block within an image. + */ +static MUI_DATA_BLOCK *find_mui_block( HMODULE mod ) +{ + LDR_RESOURCE_INFO info; + const IMAGE_RESOURCE_DATA_ENTRY *entry; + NTSTATUS status; + MUI_DATA_BLOCK *block; + ULONG block_size; + + info.Type = (ULONG_PTR)L"MUI"; + info.Name = 1; + info.Language = 0; + + status = LdrFindResource_U( mod, &info, 3, &entry ); + if (!NT_SUCCESS(status)) + return NULL; + + status = LdrAccessResource( mod, entry, (void*)&block, &block_size ); + if (!NT_SUCCESS(status)) + return NULL; + + if (block_size < sizeof(MUI_DATA_BLOCK)) + return NULL; + + if (block->Signature != MUI_SIGNATURE) + return NULL; + + if (block->Size > block_size) + return NULL; + + if (block->LanguageLength != 0) + { + if (block->LanguageOffset >= block->Size) + return NULL; + + if (block->LanguageOffset + block->LanguageLength > block->Size) + return NULL; + } + + if (block->UltimateFallbackLanguageLength != 0) + { + if (block->UltimateFallbackLanguageOffset >= block->Size) + return NULL; + + if (block->UltimateFallbackLanguageOffset + block->UltimateFallbackLanguageLength > block->Size) + return NULL; + } + + if (block->MuiNameTypesLength != 0) + { + if (block->MuiNameTypesOffset >= block->Size) + return NULL; + + if (block->MuiNameTypesOffset + block->MuiNameTypesLength > block->Size) + return NULL; + } + + if (block->MuiIDTypesLength != 0) + { + if (block->MuiIDTypesOffset >= block->Size) + return NULL; + + if (block->MuiIDTypesOffset + block->MuiIDTypesLength > block->Size) + return NULL; + } + + if (block->MainNameTypesLength != 0) + { + if (block->MainNameTypesOffset >= block->Size) + return NULL; + + if (block->MainNameTypesOffset + block->MainNameTypesLength > block->Size) + return NULL; + } + + if (block->MainIDTypesLength != 0) + { + if (block->MainIDTypesOffset >= block->Size) + return NULL; + + if (block->MainIDTypesOffset + block->MainIDTypesLength > block->Size) + return NULL; + } + + return block; +} + +/*********************************************************************** + * get_image_filename + * + * Find the path of a mapped image. If this is a data-only file, check the + * list maintained by LdrAddLoadAsDataTable / LdrRemoveLoadAsDataTable. + * Otherwise, check the list of loaded modules. + */ +static NTSTATUS get_image_filename( HMODULE mod, UNICODE_STRING *path ) +{ + NTSTATUS status; + WCHAR *dospath = NULL; + ULONG_PTR magic; + LDR_DATA_TABLE_ENTRY *pldr; + data_module *dm; + + LdrLockLoaderLock( 0, NULL, &magic ); + + if (NT_SUCCESS(LdrFindEntryForAddress( mod, &pldr ))) + { + dospath = RtlAllocateHeap( GetProcessHeap(), 0, pldr->FullDllName.Length + sizeof(WCHAR) ); + if (!dospath) + { + LdrUnlockLoaderLock( 0, magic ); + return STATUS_INSUFFICIENT_RESOURCES; + } + + memcpy(dospath, pldr->FullDllName.Buffer, pldr->FullDllName.Length); + dospath[pldr->FullDllName.Length / sizeof(WCHAR)] = 0; + } + + LdrUnlockLoaderLock( 0, magic ); + + if (!dospath) + { + RtlEnterCriticalSection( &data_modules_section ); + + LIST_FOR_EACH_ENTRY( dm, &data_modules, data_module, entry ) + { + if (dm->module == mod) + { + size_t len = wcslen( dm->path ); + + dospath = RtlAllocateHeap( GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR) ); + if (!dospath) + { + RtlLeaveCriticalSection( &data_modules_section ); + return STATUS_INSUFFICIENT_RESOURCES; + } + + memcpy(dospath, dm->path, (len + 1) * sizeof(WCHAR)); + + break; + } + } + + RtlLeaveCriticalSection( &data_modules_section ); + } + + if (!dospath) + return STATUS_INTERNAL_ERROR; + + status = RtlDosPathNameToNtPathName_U_WithStatus( dospath, path, NULL, NULL ); + + RtlFreeHeap( GetProcessHeap(), 0, dospath ); + + return status; +} + +/*********************************************************************** + * form_mui_path + * + * Given the path of a LN file and a language, form the expected path of + * the MUI file. + */ +static NTSTATUS form_mui_path( const UNICODE_STRING *img_path, const UNICODE_STRING *lang, + UNICODE_STRING *mui_path ) +{ + unsigned int i, bs = (img_path->Length / sizeof(WCHAR) - 1); + WCHAR *buf; + + static const WCHAR suffix[] = L".mui"; + + for (i = 0; i < img_path->Length / sizeof(WCHAR); i++) + { + if (img_path->Buffer[i] == '\') + bs = i; + } + + mui_path->Length = mui_path->MaximumLength = img_path->Length + lang->Length + sizeof(suffix); + + buf = RtlAllocateHeap( GetProcessHeap(), 0, mui_path->Length); + if (!buf) + return STATUS_INSUFFICIENT_RESOURCES; + + memcpy(buf, img_path->Buffer, (bs + 1) * sizeof(WCHAR)); + memcpy(buf + bs + 1, lang->Buffer, lang->Length); + memcpy(buf + bs + 1 + (lang->Length / sizeof(WCHAR)), + img_path->Buffer + bs, img_path->Length - (bs * sizeof(WCHAR))); + memcpy(buf + ((img_path->Length + lang->Length) / sizeof(WCHAR)) + 1, + suffix, sizeof(suffix) - sizeof(WCHAR)); + + mui_path->Buffer = buf; + + return STATUS_SUCCESS; +} + +/*********************************************************************** + * load_mui_file + * + * Map the MUI file as a section, and return its size and address. + */ +static NTSTATUS load_mui_file( UNICODE_STRING *filename, void **ptr, SIZE_T *size ) +{ + HANDLE file, section; + NTSTATUS status; + OBJECT_ATTRIBUTES oa; + IO_STATUS_BLOCK iosb; + + InitializeObjectAttributes( &oa, filename, 0, NULL, NULL ); + + status = NtCreateFile( &file, GENERIC_READ, &oa, &iosb, NULL, 0, + FILE_SHARE_READ | FILE_SHARE_DELETE, FILE_OPEN, + 0, NULL, 0); + if (!NT_SUCCESS(status)) + return status; + + status = NtCreateSection( §ion, SECTION_MAP_READ , NULL, NULL, + PAGE_READONLY, SEC_IMAGE, file ); + + NtClose( file ); + + if (status == STATUS_INVALID_IMAGE_NOT_MZ) + return STATUS_INVALID_IMAGE_FORMAT; + else if (!NT_SUCCESS(status)) + return status; + + *ptr = NULL; + + status = NtMapViewOfSection( section, NtCurrentProcess(), ptr, 0, 0, NULL, size, + ViewShare, 0, PAGE_READONLY ); + + NtClose( section ); + + if (!NT_SUCCESS(status)) + return status; + + TRACE("%s mapped at %p\n", debugstr_us(filename), *ptr); + + return STATUS_SUCCESS; +} + +/*********************************************************************** + * add_mui_lang_to_list + * + * Checks the data block of the newly mapped MUI file, and add it to + * the internal list if it's valid. + */ +static NTSTATUS add_mui_lang_to_list( mui_module *mm, SIZE_T size, void *lang_mui, + const UNICODE_STRING *lang ) +{ + MUI_DATA_BLOCK *block; + mui_lang_module *mlm; + ULONG lang_length; + WCHAR *block_lang; + + block = find_mui_block( lang_mui ); + + if (!block) + return STATUS_MUI_INVALID_FILE; + + if (memcmp( block->ServiceChecksum, mm->block->ServiceChecksum, sizeof(block->ServiceChecksum) )) + return STATUS_MUI_INVALID_FILE; + + if (memcmp( block->Checksum, mm->block->Checksum, sizeof(block->Checksum) )) + return STATUS_MUI_INVALID_FILE; + + lang_length = block->LanguageLength; + block_lang = (WCHAR*)((char*)block + block->LanguageOffset); + + /* remove trailing nuls */ + while (lang_length >= sizeof(WCHAR) && block_lang[(lang_length / sizeof(WCHAR)) - 1] == 0) + { + lang_length -= sizeof(WCHAR); + } + + if (lang_length != lang->Length) + return STATUS_MUI_INVALID_FILE; + + if (memcmp( (char*)block + block->LanguageOffset, lang->Buffer, lang_length) ) + return STATUS_MUI_INVALID_FILE; + + mlm = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(mui_lang_module) ); + if (!mlm) + return STATUS_INSUFFICIENT_RESOURCES; + + mlm->addr = lang_mui; + mlm->size = size; + mlm->block = block; + + list_add_tail( &mm->langs, &mlm->entry ); + + return STATUS_SUCCESS; +} + +/*********************************************************************** + * check_mui_type_list + * + * Returns TRUE if the resource type is one that should be redirected. + */ +static BOOLEAN check_mui_type_list( MUI_DATA_BLOCK *block, ULONG_PTR type, BOOL mui_list ) +{ + if (IS_INTRESOURCE(type)) + { + const ULONG *ids; + unsigned int i; + ULONG length = mui_list ? block->MuiIDTypesLength : block->MainIDTypesLength; + ULONG offset = mui_list ? block->MuiIDTypesOffset : block->MainIDTypesOffset; + + if (length == 0) + return FALSE; + + ids = (const ULONG*)((char*)block + offset); + + for (i = 0; i < block->MuiIDTypesLength / sizeof(ULONG); i++) + { + if (ids[i] == type) + return TRUE; + } + } + else + { + const WCHAR *s; + ULONG length = mui_list ? block->MuiNameTypesLength : block->MainNameTypesLength; + ULONG offset = mui_list ? block->MuiNameTypesOffset : block->MainNameTypesOffset; + + if (length == 0) + return FALSE; + + s = (const WCHAR*)((char*)block + offset); + + do + { + size_t len = wcslen( s ); + + if (len == 0) + return FALSE; + + if (!wcsncmp(s, (WCHAR*)type, len)) + return TRUE; + + s += len + 1; + } while (1); + } + + return FALSE; +} + +static NTSTATUS try_language( HMODULE *mod, const UNICODE_STRING *img_path, mui_module *mm, + const UNICODE_STRING *orig_lang ) +{ + NTSTATUS nts; + unsigned int i; + mui_lang_module *mm_lang; + UNICODE_STRING lang = *orig_lang; + + RtlEnterCriticalSection( &mm->list_section ); + + while (1) + { + UNICODE_STRING mui_path; + void *mui_lang; + SIZE_T size; + + TRACE("trying language %s\n", debugstr_us(&lang)); + + LIST_FOR_EACH_ENTRY( mm_lang, &mm->langs, mui_lang_module, entry ) + { + UNICODE_STRING lang2; + + lang2.Buffer = (WCHAR*)((char*)mm_lang->block + mm_lang->block->LanguageOffset); + lang2.Length = lang2.MaximumLength = mm_lang->block->LanguageLength; + + while (lang2.Length >= sizeof(WCHAR) && lang2.Buffer[(lang2.Length / sizeof(WCHAR)) - 1] == 0) + { + lang2.Length -= sizeof(WCHAR); + } + + if (!RtlCompareUnicodeString(&lang, &lang2, FALSE)) + { + *mod = mm_lang->addr; + nts = STATUS_SUCCESS; + goto end; + } + } + + nts = form_mui_path( img_path, &lang, &mui_path ); + + if (!NT_SUCCESS(nts)) + goto end; + + TRACE("mui path %s\n", debugstr_us(&mui_path)); + + nts = load_mui_file( &mui_path, &mui_lang, &size ); + + if (mui_path.Buffer) + RtlFreeHeap( GetProcessHeap(), 0, mui_path.Buffer ); + + if (nts == STATUS_OBJECT_NAME_NOT_FOUND || nts == STATUS_OBJECT_PATH_NOT_FOUND) + { + /* if not found, lop end off and try again */ + + if (lang.Length == 0) + break; + + i = (lang.Length / sizeof(WCHAR)) - 1; + while (i > 0 && lang.Buffer[i] != '-') + { + i--; + } + + if (lang.Buffer[i] != '-') + break; + + lang.Length = i * sizeof(WCHAR); + continue; + } + else if (!NT_SUCCESS(nts)) + goto end; + + nts = add_mui_lang_to_list( mm, size, mui_lang, &lang ); + + if (NT_SUCCESS(nts)) + *mod = mui_lang; + else + NtUnmapViewOfSection( NtCurrentProcess(), mui_lang ); + + goto end; + } + + nts = STATUS_MUI_FILE_NOT_FOUND; + +end: + RtlLeaveCriticalSection( &mm->list_section ); + + return nts; +} + +/*********************************************************************** + * try_mui_find_entry + * + * Called from LdrFindResource_U. Returns TRUE if we've handled the + * lookup via a MUI file. + */ +BOOLEAN try_mui_find_entry( HMODULE mod, const LDR_RESOURCE_INFO *info, ULONG level, + const void **ret, NTSTATUS *status) +{ + UNICODE_STRING lang; + WCHAR langbuf[20]; + mui_module *mm = NULL, *mm2; + MUI_DATA_BLOCK *block; + UNICODE_STRING img_path; + NTSTATUS nts; + + TRACE("(%p, %p, %p)\n", mod, info, status); + + /* avoid infinite loop */ + + if (!IS_INTRESOURCE(info->Type) && !wcscmp((WCHAR*)info->Type, L"MUI")) + return FALSE; + + /* find mui_module in list */ + + RtlEnterCriticalSection( &mui_section ); + + LIST_FOR_EACH_ENTRY( mm2, &mui_modules, mui_module, entry ) + { + if (mm2->module == mod) + { + mm = mm2; + break; + } + } + + /* if doesn't exist, allocate new entry, and find MUI block if present */ + + if (!mm) + { + mm = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*mm) ); + + if (!mm) + { + ERR("could not allocate mui_module entry\n"); + RtlLeaveCriticalSection( &mui_section ); + *status = STATUS_INSUFFICIENT_RESOURCES; + return TRUE; + } + + mm->module = mod; + mm->block = find_mui_block( mod ); + RtlInitializeCriticalSection( &mm->list_section ); + list_init( &mm->langs ); + + list_add_tail( &mui_modules, &mm->entry ); + } + + block = mm->block; + + RtlLeaveCriticalSection( &mui_section ); + + /* return FALSE if not MUI language-neutral file */ + + if (!block || !(block->FileType & MUI_TYPE_LANGUAGE_NEUTRAL)) + return FALSE; + + if (!check_mui_type_list( block, info->Type, TRUE )) + return FALSE; + + nts = get_image_filename( mod, &img_path ); + + if (!NT_SUCCESS(nts)) + { + *status = nts; + return TRUE; + } + + /* translate info->Language to string */ + + lang.Buffer = langbuf; + lang.Length = 0; + lang.MaximumLength = sizeof(langbuf); + + if (!RtlLCIDToCultureName( info->Language == 0 ? LOCALE_USER_DEFAULT : info->Language, &lang )) + { + TRACE("could not find language string for LCID %04x\n", info->Language); + *status = STATUS_INVALID_PARAMETER; + return TRUE; + } + + nts = try_language( &mod, &img_path, mm, &lang ); + + /* if not found and Language == 0, try system language */ + + if (nts == STATUS_MUI_FILE_NOT_FOUND && info->Language == 0) + { + WCHAR langbuf2[20]; + UNICODE_STRING sys_lang; + + sys_lang.Buffer = langbuf2; + sys_lang.Length = 0; + sys_lang.MaximumLength = sizeof(langbuf2); + + if (RtlLCIDToCultureName( LOCALE_SYSTEM_DEFAULT, &sys_lang ) && + RtlCompareUnicodeString( &lang, &sys_lang, FALSE )) + { + nts = try_language( &mod, &img_path, mm, &sys_lang ); + } + + /* if still not found, try ultimate fallback */ + + if (nts == STATUS_MUI_FILE_NOT_FOUND && mm->block->UltimateFallbackLanguageLength != 0) + { + UNICODE_STRING fallback; + + fallback.Length = fallback.MaximumLength = mm->block->UltimateFallbackLanguageLength; + fallback.Buffer = (WCHAR*)((char*)mm->block + mm->block->UltimateFallbackLanguageOffset); + + while (fallback.Length >= sizeof(WCHAR) && + fallback.Buffer[(fallback.Length / sizeof(WCHAR)) - 1] == 0) + { + fallback.Length -= sizeof(WCHAR); + } + + if (RtlCompareUnicodeString( &lang, &fallback, FALSE) && + RtlCompareUnicodeString( &sys_lang, &fallback, FALSE)) + { + nts = try_language( &mod, &img_path, mm, &fallback ); + } + } + } + + if (img_path.Buffer) + RtlFreeHeap( GetProcessHeap(), 0, img_path.Buffer ); + + if (NT_SUCCESS(nts)) + { + if (level == 3) + { + LDR_RESOURCE_INFO info2; + + /* return whatever we find */ + + info2.Type = info->Type; + info2.Name = info->Name; + info2.Language = 0; + + nts = find_resource_entry( mod, &info2, level, ret, FALSE ); + } else + nts = find_resource_entry( mod, info, level, ret, FALSE ); + } + + /* If type is in both lists, fall back to main image if MUI load fails */ + + if (!NT_SUCCESS(nts) && check_mui_type_list( block, info->Type, FALSE )) + return FALSE; + + *status = nts; + + return TRUE; +} + /*********************************************************************** * LdrAddLoadAsDataTable (NTDLL.@) * diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index b8f9dc28e63..8583c28dff6 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -110,4 +110,12 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) extern void init_global_fls_data(void) DECLSPEC_HIDDEN; extern TEB_FLS_DATA *fls_alloc_data(void) DECLSPEC_HIDDEN;
+/* resources */ +extern NTSTATUS find_resource_entry( HMODULE hmod, const LDR_RESOURCE_INFO *info, + ULONG level, const void **ret, int want_dir ) DECLSPEC_HIDDEN; + +/* MUI */ +extern BOOLEAN try_mui_find_entry( HMODULE mod, const LDR_RESOURCE_INFO *info, ULONG level, + const void **ret, NTSTATUS *status) DECLSPEC_HIDDEN; + #endif diff --git a/dlls/ntdll/resource.c b/dlls/ntdll/resource.c index 58a0fc7d2e2..a8cff12652a 100644 --- a/dlls/ntdll/resource.c +++ b/dlls/ntdll/resource.c @@ -172,8 +172,8 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_name( const IMAGE_RESOURCE_ * * Find a resource entry */ -static NTSTATUS find_entry( HMODULE hmod, const LDR_RESOURCE_INFO *info, - ULONG level, const void **ret, int want_dir ) +NTSTATUS find_resource_entry( HMODULE hmod, const LDR_RESOURCE_INFO *info, + ULONG level, const void **ret, int want_dir ) { static LCID user_lcid, system_lcid; ULONG size; @@ -271,7 +271,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrFindResourceDirectory_U( HMODULE hmod, cons level > 1 ? debugstr_w((LPCWSTR)info->Name) : "", level > 2 ? info->Language : 0, level );
- status = find_entry( hmod, info, level, &res, TRUE ); + status = find_resource_entry( hmod, info, level, &res, TRUE ); if (status == STATUS_SUCCESS) *dir = res; } __EXCEPT_PAGE_FAULT @@ -299,7 +299,9 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrFindResource_U( HMODULE hmod, const LDR_RES level > 1 ? debugstr_w((LPCWSTR)info->Name) : "", level > 2 ? info->Language : 0, level );
- status = find_entry( hmod, info, level, &res, FALSE ); + if (!try_mui_find_entry( hmod, info, level, &res, &status )) + status = find_resource_entry( hmod, info, level, &res, FALSE ); + if (status == STATUS_SUCCESS) *entry = res; } __EXCEPT_PAGE_FAULT
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=87835
Your paranoid android.
=== debiant2 (32 bit report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit Chinese:China report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (32 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
=== debiant2 (64 bit WoW report) ===
ntdll: mui.c:1209: Test failed: MUI not supported on this platform
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/mui.c | 69 +++++++++++++++++++++++++++++++++++++++++ dlls/ntdll/ntdll_misc.h | 1 + dlls/ntdll/resource.c | 2 ++ 3 files changed, 72 insertions(+)
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index dcdfefcbeb8..a9758c71f82 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -1263,3 +1263,72 @@ NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module,
return STATUS_SUCCESS; } + +/*********************************************************************** + * try_mui_redirect_module + * + * Called by LdrAccessResource - see if we should be redirecting this to + * a MUI file. + */ +void try_mui_redirect_module( HMODULE *mod, const IMAGE_RESOURCE_DATA_ENTRY *entry ) +{ + mui_module *mm = NULL, *mm2; + mui_lang_module *mm_lang; + + /* no need to get size if entry is before start of image */ + if ((void*)entry > (void*)*mod) + { + void *base = (void*)((uintptr_t)*mod & ~3); + size_t size = 0; + PIMAGE_NT_HEADERS nth; + + nth = RtlImageNtHeader(base); + if (!nth) + return; + + if (nth->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) + size = ((IMAGE_OPTIONAL_HEADER32*)&nth->OptionalHeader)->SizeOfImage; + else if (nth->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) + size = ((IMAGE_OPTIONAL_HEADER64*)&nth->OptionalHeader)->SizeOfImage; + else + return; + + /* return if entry is within bounds of original image */ + + if ((char*)entry < (char*)base + size) + return; + } + + /* find mui_module entry, and return if not found */ + + RtlEnterCriticalSection( &mui_section ); + + LIST_FOR_EACH_ENTRY( mm2, &mui_modules, mui_module, entry ) + { + if (mm2->module == *mod) + { + mm = mm2; + break; + } + } + + RtlLeaveCriticalSection( &mui_section ); + + if (!mm) + return; + + /* loop through loaded languages */ + + RtlEnterCriticalSection( &mm->list_section ); + + LIST_FOR_EACH_ENTRY( mm_lang, &mm->langs, mui_lang_module, entry ) + { + if ((void*)entry >= (void*)mm_lang->addr && (char*)entry < (char*)mm_lang->addr + mm_lang->size) + { + *mod = mm_lang->addr; + break; + } + } + + RtlLeaveCriticalSection( &mm->list_section ); +} diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index 8583c28dff6..563d599d426 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -117,5 +117,6 @@ extern NTSTATUS find_resource_entry( HMODULE hmod, const LDR_RESOURCE_INFO *info /* MUI */ extern BOOLEAN try_mui_find_entry( HMODULE mod, const LDR_RESOURCE_INFO *info, ULONG level, const void **ret, NTSTATUS *status) DECLSPEC_HIDDEN; +extern void try_mui_redirect_module( HMODULE *mod, const IMAGE_RESOURCE_DATA_ENTRY *entry ) DECLSPEC_HIDDEN;
#endif diff --git a/dlls/ntdll/resource.c b/dlls/ntdll/resource.c index a8cff12652a..6ed93f5d6d8 100644 --- a/dlls/ntdll/resource.c +++ b/dlls/ntdll/resource.c @@ -328,6 +328,8 @@ static inline NTSTATUS access_resource( HMODULE hmod, const IMAGE_RESOURCE_DATA_ { ULONG dirsize;
+ try_mui_redirect_module( &hmod, entry ); + if (!RtlImageDirectoryEntryToData( hmod, TRUE, IMAGE_DIRECTORY_ENTRY_RESOURCE, &dirsize )) status = STATUS_RESOURCE_DATA_NOT_FOUND; else
Signed-off-by: Mark Harmstone mark@harmstone.com --- dlls/ntdll/loader.c | 72 ++++++++++++++++++++++++++++++++++++++--- dlls/ntdll/mui.c | 51 +++++++++++++++++++++++++++++ dlls/ntdll/ntdll_misc.h | 1 + 3 files changed, 120 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 7dada146044..c1746955558 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -3286,12 +3286,42 @@ static void free_modref( WINE_MODREF *wm ) * for the library type. * * The loader_section must be locked while calling this function. + * + * If anything is unloaded, the modules array is allocated and populated, + * so that cleanup_mui can be called for these outside of the lock. */ -static void MODULE_FlushModrefs(void) +static void MODULE_FlushModrefs( void ***modules, unsigned int *num_modules ) { PLIST_ENTRY mark, entry, prev; LDR_DATA_TABLE_ENTRY *mod; WINE_MODREF*wm; + unsigned int max_num_modules = 0; + void **m; + + mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList; + for (entry = mark->Blink; entry != mark; entry = prev) + { + mod = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks); + wm = CONTAINING_RECORD(mod, WINE_MODREF, ldr); + prev = entry->Blink; + if (!mod->LoadCount) max_num_modules++; + } + + /* check load order list too for modules that haven't been initialized yet */ + mark = &NtCurrentTeb()->Peb->LdrData->InLoadOrderModuleList; + for (entry = mark->Blink; entry != mark; entry = prev) + { + mod = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); + wm = CONTAINING_RECORD(mod, WINE_MODREF, ldr); + prev = entry->Blink; + if (!mod->LoadCount) max_num_modules++; + } + + if (max_num_modules == 0) + return; + + *modules = m = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(void*) * max_num_modules); + *num_modules = 0;
mark = &NtCurrentTeb()->Peb->LdrData->InInitializationOrderModuleList; for (entry = mark->Blink; entry != mark; entry = prev) @@ -3299,7 +3329,17 @@ static void MODULE_FlushModrefs(void) mod = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InInitializationOrderLinks); wm = CONTAINING_RECORD(mod, WINE_MODREF, ldr); prev = entry->Blink; - if (!mod->LoadCount) free_modref( wm ); + if (!mod->LoadCount) + { + if (m) + { + *m = wm->ldr.DllBase; + m++; + (*num_modules)++; + } + + free_modref( wm ); + } }
/* check load order list too for modules that haven't been initialized yet */ @@ -3309,7 +3349,17 @@ static void MODULE_FlushModrefs(void) mod = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); wm = CONTAINING_RECORD(mod, WINE_MODREF, ldr); prev = entry->Blink; - if (!mod->LoadCount) free_modref( wm ); + if (!mod->LoadCount) + { + if (m) + { + *m = wm->ldr.DllBase; + m++; + (*num_modules)++; + } + + free_modref( wm ); + } } }
@@ -3354,6 +3404,8 @@ NTSTATUS WINAPI LdrUnloadDll( HMODULE hModule ) { WINE_MODREF *wm; NTSTATUS retv = STATUS_SUCCESS; + void **modules; + unsigned int num_freed = 0;
if (process_detaching) return retv;
@@ -3373,7 +3425,7 @@ NTSTATUS WINAPI LdrUnloadDll( HMODULE hModule ) if ( free_lib_count <= 1 ) { process_detach(); - MODULE_FlushModrefs(); + MODULE_FlushModrefs( &modules, &num_freed ); }
TRACE("END\n"); @@ -3385,6 +3437,18 @@ NTSTATUS WINAPI LdrUnloadDll( HMODULE hModule )
RtlLeaveCriticalSection( &loader_section );
+ if (num_freed > 0) + { + unsigned int i; + + for (i = 0; i < num_freed; i++) + { + cleanup_mui(modules[i]); + } + + RtlFreeHeap( GetProcessHeap(), 0, modules); + } + return retv; }
diff --git a/dlls/ntdll/mui.c b/dlls/ntdll/mui.c index a9758c71f82..4921d710a2e 100644 --- a/dlls/ntdll/mui.c +++ b/dlls/ntdll/mui.c @@ -1244,6 +1244,7 @@ NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module, ULONG flags ) { data_module *dm; + BOOLEAN found = FALSE;
TRACE("(%p, %p, %p, %x)\n", init_module, base_module, size, flags);
@@ -1254,6 +1255,7 @@ NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module, if (dm->module == init_module) { list_remove( &dm->entry ); + found = TRUE; RtlFreeHeap( GetProcessHeap(), 0, dm ); break; } @@ -1261,6 +1263,9 @@ NTSTATUS NTAPI LdrRemoveLoadAsDataTable( PVOID init_module, PVOID *base_module,
RtlLeaveCriticalSection( &data_modules_section );
+ if (found) + cleanup_mui( init_module ); + return STATUS_SUCCESS; }
@@ -1332,3 +1337,49 @@ void try_mui_redirect_module( HMODULE *mod, const IMAGE_RESOURCE_DATA_ENTRY *ent
RtlLeaveCriticalSection( &mm->list_section ); } + +/*********************************************************************** + * cleanup_mui + * + * Free MUI structures when module is unloaded. + */ +void cleanup_mui( HMODULE mod ) +{ + mui_module *mm = NULL, *mm2; + + TRACE("(%p)\n", mod); + + RtlEnterCriticalSection( &mui_section ); + + LIST_FOR_EACH_ENTRY( mm2, &mui_modules, mui_module, entry ) + { + if (mm2->module == mod) + { + mm = mm2; + list_remove( &mm2->entry ); + break; + } + } + + RtlLeaveCriticalSection( &mui_section ); + + if (!mm) + return; + + while (!list_empty( &mm->langs )) + { + mui_lang_module *mlm = LIST_ENTRY(mm->langs.next, mui_lang_module, entry); + + TRACE("unmapping MUI file loaded at %p\n", mlm->addr); + + list_remove( &mlm->entry ); + + NtUnmapViewOfSection( NtCurrentProcess(), mlm->addr ); + + RtlFreeHeap( GetProcessHeap(), 0, mlm); + } + + RtlDeleteCriticalSection( &mm->list_section ); + + RtlFreeHeap( GetProcessHeap(), 0, mm ); +} diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h index 563d599d426..552ff2013db 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h @@ -118,5 +118,6 @@ extern NTSTATUS find_resource_entry( HMODULE hmod, const LDR_RESOURCE_INFO *info extern BOOLEAN try_mui_find_entry( HMODULE mod, const LDR_RESOURCE_INFO *info, ULONG level, const void **ret, NTSTATUS *status) DECLSPEC_HIDDEN; extern void try_mui_redirect_module( HMODULE *mod, const IMAGE_RESOURCE_DATA_ENTRY *entry ) DECLSPEC_HIDDEN; +extern void cleanup_mui( HMODULE mod ) DECLSPEC_HIDDEN;
#endif
On 3/27/21 10:47 PM, Mark Harmstone wrote:
This is a series of patches to support MUI, Microsoft's resource direction feature introduced with Vista. I'm not sure whether this should be staging or not...
With these patches, modern versions of Notepad will work, at least up to 1909 or so (which requires some stuff to do with shcore). You will need to have en-US\notepad.exe.mui placed relative to the main EXE.
See https://bugs.winehq.org/show_bug.cgi?id=43670 - I couldn't actually get Paint to work as it fails with some (unrelated?) Ribbon stuff, but YMMV.
Hi, Mark.
I'm not commenting on the patches, but wanted to ask anyway.
Do you know of a thirdparty software using this functionality? Or, if there is nothing easily accessible, is that a way developers could use now for localization, or it's something semi-internal or completely internal to MS own applications/dev tools?
On 28/3/21 8:47 am, Nikolay Sivov wrote:
Hi, Mark.
I'm not commenting on the patches, but wanted to ask anyway.
Do you know of a thirdparty software using this functionality? Or, if there is nothing easily accessible, is that a way developers could use now for localization, or it's something semi-internal or completely internal to MS own applications/dev tools?
Hi Nikolay,
I'm not aware of anybody other than Microsoft who's done anything more than play with this - presumably because there was a reluctance amongst developers for so long to introduce a dependency on Vista.
MSVC comes with a utility muirct.exe to generate these - see https://docs.microsoft.com/en-us/windows/win32/intl/resource-utilities.
Probably also worth pointing out that the post-XP theming engine relies on MUI (i.e. aero.msstyles), so this would be a prerequisite for modern theming in Wine.
Mark
Mark Harmstone mark@harmstone.com writes:
+/***********************************************************************
RtlLCIDToCultureName (NTDLL.@)
- Return the text name of a numeric language ID.
- */
+BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) +{
- FIXME("(%04x, %p)\n", lcid, string);
- return FALSE;
+}
This should go in locale.c, and the implementation should use the existing locale data.
The whole thing, or just this function?
On 29/3/21 9:00 pm, Alexandre Julliard wrote:
Mark Harmstone mark@harmstone.com writes:
+/***********************************************************************
RtlLCIDToCultureName (NTDLL.@)
- Return the text name of a numeric language ID.
- */
+BOOLEAN WINAPI RtlLCIDToCultureName( LCID lcid, PUNICODE_STRING string ) +{
- FIXME("(%04x, %p)\n", lcid, string);
- return FALSE;
+}
This should go in locale.c, and the implementation should use the existing locale data.
Mark Harmstone mark@harmstone.com writes:
The whole thing, or just this function?
Just this function. The loader functions should go in loader.c, and the resource functions in resource.c.