mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:26:17 +00:00
[RTL] Add code to SxS manifest parser to parse XML namespaces (#2512)
* [XDK] Typo fix * [XDK] Add missing ACTIVATION_CONTEXT_SECTION values * [RTL] Merge changes from Wine * [ROSTESTS] Fix typo * [NTDLL] Typo fix * Add test for new functionality * [ROSTESTS] Fix path * [ROSTESTS] Add test to testlist.c
This commit is contained in:
parent
b62948ef77
commit
427ea67b9c
8 changed files with 806 additions and 799 deletions
|
@ -1646,7 +1646,7 @@ LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID* pOldShimData)
|
||||||
{
|
{
|
||||||
for (n = 0; n < ContextCompatInfo->ElementCount; ++n)
|
for (n = 0; n < ContextCompatInfo->ElementCount; ++n)
|
||||||
{
|
{
|
||||||
if (ContextCompatInfo->Elements[n].Type == ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS &&
|
if (ContextCompatInfo->Elements[n].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS &&
|
||||||
RtlCompareMemory(&ContextCompatInfo->Elements[n].Id, KnownCompatGuids[cur].Guid, sizeof(GUID)) == sizeof(GUID))
|
RtlCompareMemory(&ContextCompatInfo->Elements[n].Id, KnownCompatGuids[cur].Guid, sizeof(GUID)) == sizeof(GUID))
|
||||||
{
|
{
|
||||||
if (LdrpDisableProcessCompatGuidDetection())
|
if (LdrpDisableProcessCompatGuidDetection())
|
||||||
|
|
|
@ -58,7 +58,8 @@ list(APPEND MANIFEST_FILES
|
||||||
classtest2.manifest
|
classtest2.manifest
|
||||||
comctl32dep.manifest
|
comctl32dep.manifest
|
||||||
dep1.manifest
|
dep1.manifest
|
||||||
deptest.manifest)
|
deptest.manifest
|
||||||
|
xmlns.manifest)
|
||||||
|
|
||||||
foreach(item ${MANIFEST_FILES})
|
foreach(item ${MANIFEST_FILES})
|
||||||
add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}")
|
add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}")
|
||||||
|
|
|
@ -131,3 +131,11 @@ START_TEST(DefaultActCtx)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HANDLE _CreateActCtxFromFile(LPCWSTR FileName, int line);
|
||||||
|
|
||||||
|
START_TEST(ActCtxWithXmlNamespaces)
|
||||||
|
{
|
||||||
|
// _CreateActCtxFromFile() contains all the assertions we need.
|
||||||
|
(void)_CreateActCtxFromFile(L"xmlns.manifest", __LINE__);
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#define STANDALONE
|
#define STANDALONE
|
||||||
#include <apitest.h>
|
#include <apitest.h>
|
||||||
|
|
||||||
|
extern void func_ActCtxWithXmlNamespaces(void);
|
||||||
extern void func_ConsoleCP(void);
|
extern void func_ConsoleCP(void);
|
||||||
extern void func_CreateProcess(void);
|
extern void func_CreateProcess(void);
|
||||||
extern void func_DefaultActCtx(void);
|
extern void func_DefaultActCtx(void);
|
||||||
|
@ -70,5 +71,6 @@ const struct test winetest_testlist[] =
|
||||||
{ "TerminateProcess", func_TerminateProcess },
|
{ "TerminateProcess", func_TerminateProcess },
|
||||||
{ "TunnelCache", func_TunnelCache },
|
{ "TunnelCache", func_TunnelCache },
|
||||||
{ "WideCharToMultiByte", func_WideCharToMultiByte },
|
{ "WideCharToMultiByte", func_WideCharToMultiByte },
|
||||||
|
{ "ActCtxWithXmlNamespaces", func_ActCtxWithXmlNamespaces },
|
||||||
{ 0, 0 }
|
{ 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
24
modules/rostests/apitests/kernel32/xmlns.manifest
Normal file
24
modules/rostests/apitests/kernel32/xmlns.manifest
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
|
<ms_compatibility:application>
|
||||||
|
<!-- A list of the Windows versions that this application has been tested on and is
|
||||||
|
is designed to work with. Uncomment the appropriate elements and Windows will
|
||||||
|
automatically selected the most compatible environment. -->
|
||||||
|
|
||||||
|
<!-- Windows 7 -->
|
||||||
|
<ms_compatibility:supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
|
||||||
|
|
||||||
|
<!-- Windows 8.1 -->
|
||||||
|
<ms_compatibility:supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
|
||||||
|
|
||||||
|
<!-- Windows 10 -->
|
||||||
|
<ms_compatibility:supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||||
|
</ms_compatibility:application>
|
||||||
|
</ms_compatibility:compatibility>
|
||||||
|
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<windowsSettings>
|
||||||
|
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||||
|
</windowsSettings>
|
||||||
|
</application>
|
||||||
|
</assembly>
|
|
@ -2792,7 +2792,7 @@ static void test_with_compat(HANDLE handle, DWORD num_compat, const GUID* expect
|
||||||
wine_dbgstr_guid(&compat_info.Elements[n].Id),
|
wine_dbgstr_guid(&compat_info.Elements[n].Id),
|
||||||
wine_dbgstr_guid(expected_compat[n]),
|
wine_dbgstr_guid(expected_compat[n]),
|
||||||
n);
|
n);
|
||||||
ok_(__FILE__, line)(compat_info.Elements[n].Type == ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS,
|
ok_(__FILE__, line)(compat_info.Elements[n].Type == ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS,
|
||||||
"Wrong type, got %u for %u\n", (DWORD)compat_info.Elements[n].Type, n);
|
"Wrong type, got %u for %u\n", (DWORD)compat_info.Elements[n].Type, n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1089,6 +1089,8 @@ typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID);
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6
|
#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
||||||
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
||||||
|
#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10
|
||||||
|
#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11
|
||||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||||
#define BTYPE(x) ((x)&N_BTMASK)
|
#define BTYPE(x) ((x)&N_BTMASK)
|
||||||
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
|
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
|
||||||
|
@ -4036,8 +4038,8 @@ typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
|
||||||
} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
|
} ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION, *PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
||||||
ACTCX_COMPATIBILITY_ELEMENT_TYPE_OS
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS
|
||||||
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
||||||
|
|
||||||
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
||||||
|
|
1554
sdk/lib/rtl/actctx.c
1554
sdk/lib/rtl/actctx.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue