Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.7 KiB

/***
*bridge.h
*
* Copyright (c) 1993-1995, Microsoft Corporation. All rights reserved.
*
*Purpose:
*
*Revision History:
*
****/
//////////////////////////////////////////////////////////////////////
//
// __CxxSETranslatorBridge
//
// This function is an intermediary between the function
// CallSEHTranslator and the user written SEH-to-EH translator
// function (if any). It establishes a frame handler
// (__CxxTranslatorGuardHandler) which captures any EH exception
// thrown by the translator and passes it back to the EH run-time.
//
// Note that the guard function will reference several variables
// from the bridge function's frame. To keep the guard function
// (written in C++) in sync with the bridge function (written in
// assembly) the following defines should be used by both.
//
// Note that the guard handler will reference these variables by
// way of the Virtual Frame Pointer while the bridge will use the
// Real Frane Pointer - so the defines with the vfp suffix are
// automatically calculated to give VFP offsets.
//
#define BrTrFrameSize 32
#define BrTrpDidTrans 24
#define BrTrEHpDC 16
#define BrTrpContinue 8
#define BrTrpDidTrans_vfp (BrTrpDidTrans-BrTrFrameSize)
#define BrTrEHpDC_vfp (BrTrEHpDC-BrTrFrameSize)
#define BrTrpContinue_vfp (BrTrpContinue-BrTrFrameSize)
#ifdef __cplusplus
extern "C"
void __CxxSETranslatorBridge(
_se_translator_function, // ptr to user writen translator
DWORD, // SEH exception to translate
_EXCEPTION_POINTERS *, // SEH exception record and context
DispatcherContext *, // Context for EH function
BOOL *); // return true if translated
#endif