Rework apisets to use a table

This removes all fake apiset forwarders,
and handles apisets inside ntdll.
This is not 100% compatible with how windows does it, but it should be good enough for us.
This commit is contained in:
Mark Jansen 2024-01-04 23:02:22 +01:00
parent 116c0cd9a5
commit 24a56f89ab
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
246 changed files with 1910 additions and 9091 deletions

View file

@ -5100,15 +5100,7 @@ void actctx_init(PVOID* pOldShimData)
ctx.lpResourceName = NULL;
ctx.lpSource = buffer;
RtlStringCchCopyW(buffer, RTL_NUMBER_OF(buffer), SharedUserData->NtSystemRoot);
if (RosGetProcessCompatVersion())
{
RtlStringCchCatW(buffer, RTL_NUMBER_OF(buffer), L"\\winsxs\\manifests\\forwardcompatible.manifest");
}
else
{
RtlStringCchCatW(buffer, RTL_NUMBER_OF(buffer), L"\\winsxs\\manifests\\systemcompatible.manifest");
}
RtlStringCchCatW(buffer, RTL_NUMBER_OF(buffer), L"\\winsxs\\manifests\\systemcompatible.manifest");
Status = RtlCreateActivationContext(0, (PVOID)&ctx, 0, NULL, NULL, &handle);
if (NT_SUCCESS(Status))