mirror of
https://github.com/reactos/reactos.git
synced 2024-06-26 07:51:52 +00:00
[WINSRV] Add a hack to fix giving the api port to win32k
- Register our api port with win32k in SrvRegisterLogonProcess because UserClientConnect is never really called. [NTUSER] Silence a noisy trace
This commit is contained in:
parent
dad76af8a4
commit
3ec7b163c9
|
@ -797,8 +797,8 @@ NtUserSetInformationThread(IN HANDLE ThreadHandle,
|
|||
{
|
||||
HANDLE CsrPortHandle;
|
||||
|
||||
ERR("Set CSR API Port for Win32k\n");
|
||||
|
||||
TRACE("Set CSR API Port for Win32k\n");
|
||||
if (ThreadInformationLength != sizeof(CsrPortHandle))
|
||||
{
|
||||
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
|
|
|
@ -20,6 +20,10 @@ static BOOLEAN ServicesProcessIdValid = FALSE;
|
|||
ULONG_PTR ServicesProcessId = 0;
|
||||
ULONG_PTR LogonProcessId = 0;
|
||||
|
||||
#if 1 //HACK! See use below
|
||||
extern HANDLE CsrApiPort;
|
||||
#endif
|
||||
|
||||
/* PUBLIC SERVER APIS *********************************************************/
|
||||
|
||||
CSR_API(SrvRegisterLogonProcess)
|
||||
|
@ -45,6 +49,30 @@ CSR_API(SrvRegisterLogonProcess)
|
|||
LogonProcessId = 0;
|
||||
}
|
||||
|
||||
#if 1 //HAAAACK. This should be done in UserClientConnect which is never called!
|
||||
|
||||
/* Check if we don't have an API port yet */
|
||||
if (CsrApiPort == NULL)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
|
||||
/* Query the API port and save it globally */
|
||||
CsrApiPort = CsrQueryApiPort();
|
||||
|
||||
DPRINT("Giving win32k our api port\n");
|
||||
|
||||
/* Inform win32k about the API port */
|
||||
Status = NtUserSetInformationThread(NtCurrentThread(),
|
||||
UserThreadCsrApiPort,
|
||||
&CsrApiPort,
|
||||
sizeof(CsrApiPort));
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return Status;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue