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

View file

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