Describes an exception.
typedef struct _EXCEPTION_RECORD {
  DWORD                    ExceptionCode;
  DWORD                    ExceptionFlags;
  struct _EXCEPTION_RECORD *ExceptionRecord;
  PVOID                    ExceptionAddress;
  DWORD                    NumberParameters;
  ULONG_PTR                ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
Contains an exception record with a machine-independent description of an exception and a context record with a machine-dependent description of the processor context at the time of the exception.
typedef struct _EXCEPTION_POINTERS {
  PEXCEPTION_RECORD ExceptionRecord;
  PCONTEXT          ContextRecord;
Structured Exception Handling Functions

The following functions are used in structured exception handling.

Function Description
AbnormalTermination Indicates whether the __try block of a termination handler terminated normally.
AddVectoredContinueHandler Registers a vectored continue handler.
AddVectoredExceptionHandler Registers a vectored exception handler.
GetExceptionCode Retrieves a code that identifies the type of exception that occurred.
GetExceptionInformation Retrieves a machine-independent description of an exception, and information about the machine state that existed for the thread when the exception occurred.
RaiseException Raises an exception in the calling thread.
RemoveVectoredContinueHandler Unregisters a vectored continue handler.
RemoveVectoredExceptionHandler Unregisters a vectored exception handler.
SetUnhandledExceptionFilter Enables an application to supersede the top-level exception handler of each thread and process.
UnhandledExceptionFilter Passes unhandled exceptions to the debugger, if the process is being debugged.
VectoredHandler An application-defined function that serves as a vectored exception handler.


The following functions are used only on 64-bit Windows.

Function Description
RtlAddFunctionTable Adds a dynamic function table to the dynamic function table list.
RtlCaptureContext Retrieves a context record in the context of the caller.
RtlDeleteFunctionTable Removes a dynamic function table from the dynamic function table list.
RtlInstallFunctionTableCallback Adds a dynamic function table to the dynamic function table list.
RtlRestoreContext Restores the context of the caller to the specified context record.