[RPCRT4] Stub RpcGetAuthorizationContextForClient (#2042)
authorOleg Dubinskiy <oleg.dubinskij2013@yandex.ua>
Fri, 29 Nov 2019 13:19:56 +0000 (15:19 +0200)
committerHermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Fri, 29 Nov 2019 13:19:56 +0000 (14:19 +0100)
commitbe460fe03f67e86e9abddc22b7a3faeb21539243
treea3df40430a5611156f3f1e54d3c033850a201a14
parent7e1338eac2aecc8b09708443a2d1568883bce6ab
[RPCRT4] Stub RpcGetAuthorizationContextForClient (#2042)

## Purpose

Add a stub for RpcGetAuthorizationContextForClient function into rpcrt4, according to https://docs.microsoft.com/en-us/windows/win32/api/rpcasync/nf-rpcasync-rpcgetauthorizationcontextforclient (but with Wine-specific diffs in the syntax, according to the code guidelines: https://wiki.winehq.org/Submitting_Patches#Code_guidelines, since we're syncing rpcrt4 with Wine). Required by MS Winlogon with also Win32 subsystem and some other dlls replaced (aka ROS-Frankenstein), so after my changes it doesn't fail with our rpcrt4.dll at the system startup.
I think I also need to submit a patch in Wine, but it is a bit problematically to reproduce this error there, since Wine has no even winlogon.exe, and launching MS Winlogon in pair with profmap.dll, causes the crash due to unimplemented RtlSetProcessIsCritical function in ntdll (which is completely different than our). Ftr, our ntdll already has it implemented: https://git.reactos.org/?p=reactos.git;a=blob;f=sdk/lib/rtl/process.c;hb=67c78d88c885ca92c72e2bcf59ddcf1d429096b1#l453 But with MS ntdll.dll, as far as I know, Wine will not work.

JIRA issue: CORE-16458

Although this PR doesn't fix that shutdown issue, it at least improves the situation with replaced system files and allows to investigate it more.

## Proposed changes

- Add a stub for the function in `dll/win32/rpcrt4/rpc_async.c`;
- Properly call it in `dll/win32/rpcrt4/rpcrt4.spec`.
dll/win32/rpcrt4/rpc_async.c
dll/win32/rpcrt4/rpcrt4.spec