структура 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
Это значение указывает, что исключение имеет вид text. -
ThreadId
-
Тип: DWORD
-
30-разрядное значение, определяющее поток, вызвав которому исключение. При хранении значение смещается вправо на 2 бита. Чтобы преобразовать его обратно в допустимый идентификатор потока, сместите значение влево на 2. Пример:
DWORD ActualThreadId = (StowedException.ThreadId << 2);
-
(неименованная struct)
-
Члены этой вложенной структуры допустимы, только если для элемента ExceptionForm задано значение STOWED_EXCEPTION_FORM_BINARY.
-
ExceptionAddress
-
Тип: PVOID
-
Указатель, содержащий адрес исключения.
-
StackTraceWordSize
-
Тип: ULONG
-
Размер (в байтах) каждого слова в трассировке стека, на которое указывает элемент StackTrace . Это значение равно 4 для 32-разрядных платформ и 8 для 64-разрядных платформ.
-
StackTraceWords
-
Тип: ULONG
-
Количество слов в трассировке стека, на которое указывает элемент StackTrace . Количество слов равно количеству элементов в массиве.
-
StackTrace
-
Тип: PVOID
-
Указатель на блок памяти, содержащий трассировку стека.
-
-
(неименованная struct)
-
Элемент этой вложенной структуры действителен только в том случае, если для элемента ExceptionForm задано значение STOWED_EXCEPTION_FORM_TEXT.
-
Errortext
-
Тип: PWSTR
-
Указатель на строку, завершающуюся нулевым значением, которая содержит текст ошибки исключения.
-
-
NestedExceptionType
-
Тип: ULONG
-
32-разрядное значение, указывающее тип объекта, на который указывает элемент NestedException . Определите значение с помощью этого макроса определения типа переключения байтов, который предполагает наличие байтового байта:
#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 , то есть элементом Header , содержащим допустимый STOWED_EXCEPTION_INFORMATION_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 [только классические приложения] |
Заголовок |
|