pmsemaphores
This is the label for the table
of PMSEM and GRESEM semaphore structures.
Offset +0x20 is the location of the User Semaphore. If this is owned and
not released within the time-out period after Cltrl-Esc has been hit, then
the Application Not Responding to Messages reports the semaphore
owner as the culprit.
pmqSyslock
The
PMQ of the thread that has locked the system queue.
This is the first place to look when investigating a hang in a PM application.
The system uses this to name a bad application when the Application
Not Responding to Messages dialog appears.
pmqFocus
The PMQ of the window that has the focus.
if pmqSyslock is zero, the system uses this as a second choice for
the bad application when the Application Not Responding to Messages
dialog appears.
pmqKeyWake
The
PMQ of the current keyboard event receiver.
pmqMouseWake
The PMQ of the current mouse event receiver.
pmqEventWake
The
PMQ of the current miscellaneous event receiver.
pwndFocus
The PWND of the window currently in
focus.
pmqShutdown
The
PMQ of the thread sent a WM_QUIT and being waited on to terminte.
If Shutdown doesn't complete, then this could be a good place to start investigation
of the problem.
pmqCapture
The
PMQ of the thread that has the mouse captured.
pwndCapture
The PWND of the window associated with
mouse capture.
pwndSysModal
The
PWND of the System Modal window.
pmqVisLock
The PMQ that has visible regions locked.
pmqTrack
The PMQ
of the thread currently in WinTrackRect.
pmqLockUpdate
The PMQ of the thread that has update
locked.
pHandleTable
The
address of the handle table.
pSysqueue
The
MQ of the system input queue.
The system queue is headed by a partial MQ since it does not require
the fields to support a receive list.
pmqShell
pmqShell2
paAABRegs
The address of the application anchor block
registers (AAB).
AAB registers are allocated for each PM application message thread.
This is located in thread local memory, which implies that it is correct
only for the current thread context. The Thread Local Memory Area is saved
in the TCB and restored when the thread is
made current. Since the TCB may be located in System storage under
any context then a thread's PMQ may be found in any context from
its TCB.
pwndObject
pwndDesktop
SleepPMQ+nnn
When a thread is blocked at approximately offset
+0x155 into SleepPMQ then it is waiting on the message queue semaphore
for new messages or responses to outstanding sent messages. Offset +0x30
from the current stack pointer usually contains the PMQ for the current
thread.
pmqList
All
MQs are chained on a single linked master list from offset +0x0 of
the MQ. The current head of the master list is pointed to by pmqList.
psmsList
All SMSs
are chained on a single linked master list from offset +0x0 of the
SMS. The current head of the master list
is pointed to by psmsList.
qhpsBadApp
This is the label of the QHPSTRUCT saved
the first time a time-out occurs after Ctrl-Esc has been hit and the Application
Not Responding to Messages dialog appears.
fBadAppDialog
A Boolean that indicates when the Application
Not Responding to Messages dialog has been displayed.
[Back]
[Next]