STOWED_EXCEPTION_INFORMATION_V2 结构
包含已存储的异常信息。
语法
typedef struct _STOWED_EXCEPTION_INFORMATION_V2 {
STOWED_EXCEPTION_INFORMATION_HEADER Header;
HRESULT ResultCode;
struct {
DWORD ExceptionForm :2;
DWORD ThreadId :30;
};
union {
struct {
PVOID ExceptionAddress;
ULONG StackTraceWordSize;
ULONG StackTraceWords;
PVOID StackTrace;
};
struct {
PWSTR ErrorText;
};
};
ULONG NestedExceptionType;
PVOID NestedException;
} STOWED_EXCEPTION_INFORMATION_V2, *PSTOWED_EXCEPTION_INFORMATION_V2;
成员
-
标头
-
包含此父结构信息的 STOWED_EXCEPTION_INFORMATION_HEADER 结构。
-
ResultCode
-
类型: HRESULT
-
已存放异常的 HRESULT 代码。
-
ExceptionForm
-
类型: DWORD
-
标识异常形式的 2 位值。
值 含义 - STOWED_EXCEPTION_FORM_BINARY
- 0x01
此值指示异常的形式为二进制。 - STOWED_EXCEPTION_FORM_TEXT
- 0x02
此值指示异常的形式为文本。 -
ThreadId
-
类型: DWORD
-
标识引发异常的线程的 30 位值。 存储值时,该值向右移动 2 位。 若要将其转换回有效的线程 ID,请将值左移 2。 例如:
DWORD ActualThreadId = (StowedException.ThreadId << 2);
-
(未命名的结构)
-
仅当 ExceptionForm 成员设置为 STOWED_EXCEPTION_FORM_BINARY 时,此嵌套结构的成员才有效。
-
(未命名的结构)
-
仅当 ExceptionForm 成员设置为 STOWED_EXCEPTION_FORM_TEXT 时,此嵌套结构的成员才有效。
-
ErrorText
-
类型: PWSTR
-
指向以 null 结尾的字符串的指针,该字符串包含异常的错误文本。
-
-
NestedExceptionType
-
类型: ULONG
-
一个 32 位值,指定 NestedException 成员指向的对象类型。 使用此字节交换类型定义宏定义值,该宏假定 little-endian:
#define STOWED_EXCEPTION_NESTED_TYPE(t) ((((((ULONG)(t)) >> 24) & 0xFF) << 0) | \ (((((ULONG)(t)) >> 16) & 0xFF) << 8) | \ (((((ULONG)(t)) >> 8) & 0xFF) << 16) | \ (((((ULONG)(t)) >> 0) & 0xFF) << 24))
下面是一些常见的类型定义:
值 含义 - STOWED_EXCEPTION_NESTED_TYPE_NONE
- (0x00000000)
此值指定没有嵌套异常对象。 - STOWED_EXCEPTION_NESTED_TYPE_WIN32
- STOWED_EXCEPTION_NESTED_TYPE ('W32E')
此值指定 NestedException 成员指向 EXCEPTION_RECORD 对象。 - STOWED_EXCEPTION_NESTED_TYPE_STOWED
- STOWED_EXCEPTION_NESTED_TYPE ('STOW')
此值指定 NestedException 成员指向另一个已存储的异常对象。 另一个存放的异常对象可以是 STOWED_EXCEPTION_INFORMATION_V2 对象或具有有效 Header 成员的不同版本,即包含有效STOWED_EXCEPTION_INFORMATION_HEADER的 Header成员。 - STOWED_EXCEPTION_NESTED_TYPE_CLR
- STOWED_EXCEPTION_NESTED_TYPE ('CLR1')
此值指定 NestedException 成员指向“CLR1”异常对象。 - STOWED_EXCEPTION_NESTED_TYPE_LEO
- STOWED_EXCEPTION_NESTED_TYPE ('LEO1')
此值指定 NestedException 成员指向语言异常对象。 -
NestedException
-
类型: PVOID
-
指向嵌套异常类型的指针。 对象的类型由 NestedExceptionType 成员指示。
备注
STOWED_EXCEPTION_INFORMATION_V2 和 STOWED_EXCEPTION_INFORMATION_HEADER 当前未在公开提供的标头中定义,因此你需要先在源代码中定义它们,然后再使用它们。
STOWED_EXCEPTION_INFORMATION_V1 结构与此结构相同,只不过它不包含 NestedExceptionType 和 NestedException 成员。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 8.1 [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2012 R2 [仅限桌面应用] |
标头 |
|