OS2 API:DataType:CONTEXTRECORD
From EDM2
Contents |
CONTEXTRECORD
Machine specific register contents for the thread at the time of the exception.
Type
ULONG ContextFlags ULONG ctx_env[7] FPREG ctx_stack[8] ULONG ctx_SegGs ULONG ctx_SegFs ULONG ctx_SegEs ULONG ctx_SegDs ULONG ctx_RegEdi ULONG ctx_RegEsi ULONG ctx_RegEax ULONG ctx_RegEbx ULONG ctx_RegEcx ULONG ctx_RegEdx ULONG ctx_RegEbp ULONG ctx_RegEip ULONG ctx_SegCs ULONG ctx_EFlags ULONG ctx_RegEsp ULONG ctx_SegSs
C Declaration Method
typedef struct
Fields
ContextFlags Flags which control the contents of the context record.
Possible values are shown in the following list:
* CONTEXT_CONTROL SS:ESP, CS:EIP, EFLAGS and EBP
* CONTEXT_INTEGER EAX, EBX, ECX, EDX, ESI and EDI
* CONTEXT_SEGMENTS DS, ES, FS, and GS
* CONTEXT_FLOATING_POINT numeric coprocessor state
* CONTEXT_FULL all the above.
If the context record is used as an input parameter, then for each
portion of the context record controlled by a flag whose value is
set, it is assumed that the portion of the context record contains
valid context. If the context record is being used to modify a
thread's context, then only that portion of the thread's context
will be modified.
If the context record is used as an input/output parameter to
capture the context of a thread, then only those portions of the
thread's context corresponding to set flags will be returned.
ctx_env[7] This parameter is used only when ContextFlags is set to
CONTEXT_FLOATING_POINT.
ctx_stack[8] This parameter is used only when ContextFlags is set to
CONTEXT_FLOATING_POINT.
ctx_SegGs GS register.
This parameter is used only when ContextFlags is set to
CONTEXT_SEGMENTS.
ctx_SegFs FS register.
This parameter is used only when ContextFlags is set to
CONTEXT_SEGMENTS.
ctx_SegEs ES register.
This parameter is used only when ContextFlags is set to
CONTEXT_SEGMENTS.
ctx_SegDs DS register.
This parameter is used only when ContextFlags is set to
CONTEXT_SEGMENTS.
ctx_RegEdi EDI register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEsi ESI register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEax EAX register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEbx EBX register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEcx ECX register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEdx EDX register.
This parameter is used only when ContextFlags is set to
CONTEXT_INTEGER.
ctx_RegEbp EBP register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
ctx_RegEip EIP register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
ctx_SegCs CS register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
ctx_EFlags EFLAGS register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
ctx_RegEsp ESP register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
ctx_SegSs SS register.
This parameter is used only when ContextFlags is set to
CONTEXT_CONTROL.
Comment
Note that only the register sets specified by ContextFlags contain valid data. Conversely, only registers specified in ContextFlags will be restored if an exception is handled.