mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[NTDLL] Use the embedded manifest from the process to check compatibility.
This commit is contained in:
parent
cbf47846e7
commit
029b8f2cf9
3 changed files with 16 additions and 8 deletions
|
@ -93,7 +93,7 @@ ULONG RtlpDisableHeapLookaside; // TODO: Move to heap.c
|
|||
ULONG RtlpShutdownProcessFlags; // TODO: Use it
|
||||
|
||||
NTSTATUS LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders, PVOID ImageBase);
|
||||
void actctx_init(void);
|
||||
void actctx_init(PVOID* pOldShimData);
|
||||
extern BOOLEAN RtlpUse16ByteSLists;
|
||||
|
||||
#ifdef _WIN64
|
||||
|
@ -1539,7 +1539,7 @@ LdrpValidateImageForMp(IN PLDR_DATA_TABLE_ENTRY LdrDataTableEntry)
|
|||
|
||||
VOID
|
||||
NTAPI
|
||||
LdrpInitializeProcessCompat(PVOID* pOldShimData)
|
||||
LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID* pOldShimData)
|
||||
{
|
||||
static const struct
|
||||
{
|
||||
|
@ -1584,7 +1584,7 @@ LdrpInitializeProcessCompat(PVOID* pOldShimData)
|
|||
|
||||
SizeRequired = sizeof(Buffer);
|
||||
Status = RtlQueryInformationActivationContext(RTL_QUERY_ACTIVATION_CONTEXT_FLAG_NO_ADDREF,
|
||||
NULL,
|
||||
pProcessActctx,
|
||||
NULL,
|
||||
CompatibilityInformationInActivationContext,
|
||||
Buffer,
|
||||
|
@ -2187,10 +2187,7 @@ LdrpInitializeProcess(IN PCONTEXT Context,
|
|||
&LdrpNtDllDataTableEntry->InInitializationOrderLinks);
|
||||
|
||||
/* Initialize Wine's active context implementation for the current process */
|
||||
actctx_init();
|
||||
|
||||
/* ReactOS specific */
|
||||
LdrpInitializeProcessCompat(&OldShimData);
|
||||
actctx_init(&OldShimData);
|
||||
|
||||
/* Set the current directory */
|
||||
Status = RtlSetCurrentDirectory_U(&CurrentDirectory);
|
||||
|
|
|
@ -5000,7 +5000,7 @@ static NTSTATUS find_guid(ACTIVATION_CONTEXT* actctx, ULONG section_kind,
|
|||
}
|
||||
|
||||
/* initialize the activation context for the current process */
|
||||
void actctx_init(void)
|
||||
void actctx_init(PVOID* pOldShimData)
|
||||
{
|
||||
ACTCTXW ctx;
|
||||
HANDLE handle;
|
||||
|
@ -5018,6 +5018,11 @@ void actctx_init(void)
|
|||
process_actctx = check_actctx(handle);
|
||||
}
|
||||
|
||||
/* ReactOS specific:
|
||||
Now that we have found the process_actctx we can initialize the process compat subsystem */
|
||||
LdrpInitializeProcessCompat(process_actctx, pOldShimData);
|
||||
|
||||
|
||||
ctx.dwFlags = 0;
|
||||
ctx.hModule = NULL;
|
||||
ctx.lpResourceName = NULL;
|
||||
|
|
|
@ -243,4 +243,10 @@ WCHAR
|
|||
NTAPI
|
||||
RtlpDowncaseUnicodeChar(IN WCHAR Source);
|
||||
|
||||
/* ReactOS only */
|
||||
VOID
|
||||
NTAPI
|
||||
LdrpInitializeProcessCompat(PVOID pProcessActctx, PVOID* pOldShimData);
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue