This is the machine specific register contents for the thread at the time of the exception.

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.

typedef struct _CONTEXTRECORD {
  ULONG     ContextFlags;  /*  Flags which control the contents of the context record. */
  ULONG     ctx_env[7];
  FPREG     ctx_stack[8];
  ULONG     ctx_SegGs;     /*  GS register. */
  ULONG     ctx_SegFs;     /*  FS register. */
  ULONG     ctx_SegEs;     /*  ES register. */
  ULONG     ctx_SegDs;     /*  DS register. */
  ULONG     ctx_RegEdi;    /*  EDI register. */
  ULONG     ctx_RegEsi;    /*  ESI register. */
  ULONG     ctx_RegEax;    /*  EAX register. */
  ULONG     ctx_RegEbx;    /*  EBX register. */
  ULONG     ctx_RegEcx;    /*  ECX register. */
  ULONG     ctx_RegEdx;    /*  EDX register. */
  ULONG     ctx_RegEbp;    /*  EBP register. */
  ULONG     ctx_RegEip;    /*  EIP register. */
  ULONG     ctx_SegCs;     /*  CS register. */
  ULONG     ctx_EFlags;    /*  EFLAGS register. */
  ULONG     ctx_RegEsp;    /*  ESP register. */
  ULONG     ctx_SegSs;     /*  SS register. */
} CONTEXTRECORD;

typedef   CONTEXTRECORD   * PCONTEXTRECORD ;


[Back] [Next]