- Plugged in client thread information, tested with Qemu.

- Add small fix to IntBroadcastSystemMessage structure.

svn path=/trunk/; revision=32887
This commit is contained in:
James Tabor 2008-04-07 05:01:34 +00:00
parent b862b0731a
commit ef08f7b929
2 changed files with 7 additions and 9 deletions

View file

@ -2310,10 +2310,8 @@ DWORD gfMessagePumpHook = 0;
BOOL WINAPI IsInsideMessagePumpHook()
{
// PCLIENTTHREADINFO pcti = ((PW32CLIENTINFO)GetWin32ClientInfo())->pClientThreadInfo;
// return (gfMessagePumpHook && pcti && (pcti->dwcPumpHook > 0));
if(!gfMessagePumpHook) return FALSE;
return TRUE;
PCLIENTTHREADINFO pcti = ((PW32CLIENTINFO)GetWin32ClientInfo())->pClientThreadInfo;
return (gfMessagePumpHook && pcti && (pcti->dwcPumpHook > 0));
}
void WINAPI ResetMessagePumpHook(PUSER_MESSAGE_PUMP_ADDRESSES Addresses)
@ -2558,7 +2556,7 @@ IsDialogMessageA( HWND hwndDlg, LPMSG pmsg )
typedef struct _BROADCASTPARM
{
DWORD flags;
LPDWORD recipients;
DWORD recipients;
HDESK hDesk;
HWND hWnd;
LUID luid;
@ -2620,7 +2618,7 @@ IntBroadcastSystemMessage(
parm.hDesk = NULL;
parm.hWnd = NULL;
parm.flags = dwflags;
parm.recipients = lpdwRecipients;
parm.recipients = *lpdwRecipients;
if (dwflags & BSF_LUID) parm.luid = pBSMInfo->luid;

View file

@ -436,7 +436,7 @@ GetW32ThreadInfo(VOID)
{
PTEB Teb;
PW32THREADINFO ti;
// PW32CLIENTINFO ci;
PW32CLIENTINFO ci;
PW32THREAD W32Thread = PsGetCurrentThreadWin32Thread();
if (W32Thread == NULL)
@ -476,7 +476,7 @@ GetW32ThreadInfo(VOID)
W32Thread->ThreadInfo = ti;
/* update the TEB */
Teb = NtCurrentTeb();
// ci = GetWin32ClientInfo();
ci = ((PW32CLIENTINFO)Teb->Win32ClientInfo);
_SEH_TRY
{
ProbeForWrite(Teb,
@ -484,7 +484,7 @@ GetW32ThreadInfo(VOID)
sizeof(ULONG));
Teb->Win32ThreadInfo = UserHeapAddressToUser(W32Thread->ThreadInfo);
// ci->pClientThreadInfo = UserHeapAddressToUser(&ti->ClientThreadInfo);
ci->pClientThreadInfo = &ti->ClientThreadInfo;
}
_SEH_HANDLE
{