#ifndef _NT_EXCEPTION_H_ #define _NT_EXCEPTION_H_ #include "nt_abi.h" #include "nt_object.h" #include "nt_thread.h" /* limits */ #define NT_EXCEPTION_MAX_PARAMS (0x0F) typedef enum _nt_exception_disposition { NT_EXCEPTION_CONTINUE_EXECUTION, NT_EXCEPTION_CONTINUE_SEARCH, NT_EXCEPTION_NESTED_EXCEPTION, NT_EXCEPTION_COLLIDED_UNWIND } nt_exception_disposition; typedef struct _nt_exception_record { uint32_t exception_code; uint32_t exception_flags; struct _nt_exception_record * exception_record; void * exception_address; uint32_t number_of_params; uintptr_t exception_information[NT_EXCEPTION_MAX_PARAMS]; } nt_exception_record; typedef int32_t __stdcall ntapi_zw_raise_exception( __in nt_exception_record * exception_record, __in nt_thread_context * context, __in unsigned char search_frames); typedef int32_t __stdcall ntapi_zw_continue( __in nt_thread_context * context, __in unsigned char test_alert); #endif