1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5/*********************************************************************
6 ** **
7 ** CorExcep.h - lists the exception codes used by the CLR. **
8 ** **
9 *********************************************************************/
10
11
12#ifndef __COREXCEP_H__
13#define __COREXCEP_H__
14
15// All COM+ exceptions are expressed as a RaiseException with this exception
16// code. If you change this value, you must also change
17// mscorlib\src\system\Exception.cs's _COMPlusExceptionCode value.
18
19#define EXCEPTION_MSVC 0xe06d7363 // 0xe0000000 | 'msc'
20
21#define EXCEPTION_COMPLUS 0xe0434352 // 0xe0000000 | 'CCR'
22
23#define EXCEPTION_HIJACK 0xe0434f4e // 0xe0000000 | 'COM'+1
24
25#ifdef FEATURE_STACK_PROBE
26#define EXCEPTION_SOFTSO 0xe053534f // 0xe0000000 | 'SSO'
27 // We can not throw internal C++ exception through managed frame.
28 // At boundary, we will raise an exception with this error code
29#endif
30
31#if defined(_DEBUG)
32#define EXCEPTION_INTERNAL_ASSERT 0xe0584d4e // 0xe0000000 | 'XMN'
33 // An internal Assert will raise this exception when the config
34 // value "RaiseExceptionOnAssert" si specified. This is used in
35 // stress to facilitate failure triaging.
36#endif
37
38// This is the exception code to report SetupThread failure to caller of reverse pinvoke
39// It is misleading to use our COM+ exception code, since this is not a managed exception.
40// In the end, we picked e0455858 (EXX).
41#define EXCEPTION_EXX 0xe0455858 // 0xe0000000 | 'EXX'
42#endif // __COREXCEP_H__
43