estrutura STOWED_EXCEPTION_INFORMATION_V2
Contém informações de exceção.
Sintaxe
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;
Membros
-
Cabeçalho
-
A estrutura STOWED_EXCEPTION_INFORMATION_HEADER que contém informações para essa estrutura pai.
-
Resultcode
-
Tipo: HRESULT
-
O código HRESULT para a exceção stowed.
-
ExceptionForm
-
Tipo: DWORD
-
Um valor de 2 bits que identifica a forma da exceção.
Valor Significado - STOWED_EXCEPTION_FORM_BINARY
- 0x01
Esse valor indica que a forma da exceção é binária. - STOWED_EXCEPTION_FORM_TEXT
- 0x02
Esse valor indica que a forma da exceção é texto. -
ThreadId
-
Tipo: DWORD
-
Um valor de 30 bits que identifica o thread que gerou a exceção. O valor é deslocado para a direita por 2 bits quando armazenado. Para convertê-lo novamente em uma ID de thread válida, alterne o valor para a esquerda em 2. Por exemplo:
DWORD ActualThreadId = (StowedException.ThreadId << 2);
-
(struct sem nome)
-
Os membros dessa estrutura aninhada serão válidos somente se o membro ExceptionForm estiver definido como STOWED_EXCEPTION_FORM_BINARY.
-
ExceptionAddress
-
Tipo: PVOID
-
Um ponteiro que contém o endereço de exceção.
-
StackTraceWordSize
-
Tipo: ULONG
-
Tamanho, em bytes, de cada palavra no rastreamento de pilha para o qual o membro stackTrace aponta. Esse valor é definido como 4 para plataformas de 32 bits e 8 para plataformas de 64 bits.
-
StackTraceWords
-
Tipo: ULONG
-
O número de palavras no rastreamento de pilha para o qual o membro StackTrace aponta. O número de palavras é igual ao número de elementos na matriz.
-
StackTrace
-
Tipo: PVOID
-
Um ponteiro para um bloco de memória que contém o rastreamento de pilha.
-
-
(struct sem nome)
-
O membro dessa estrutura aninhada só será válido se o membro ExceptionForm estiver definido como STOWED_EXCEPTION_FORM_TEXT.
-
Errortext
-
Tipo: PWSTR
-
Um ponteiro para uma cadeia de caracteres terminada em nulo que contém o texto de erro da exceção.
-
-
NestedExceptionType
-
Tipo: ULONG
-
Um valor de 32 bits que especifica o tipo de objeto para o qual o membro NestedException aponta. Defina o valor com essa macro de definição de tipo de troca de bytes que pressupõe 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))
Aqui estão algumas definições de tipo comuns:
Valor Significado - STOWED_EXCEPTION_NESTED_TYPE_NONE
- (0x00000000)
Esse valor especifica que não há nenhum objeto de exceção aninhado. - STOWED_EXCEPTION_NESTED_TYPE_WIN32
- STOWED_EXCEPTION_NESTED_TYPE('W32E')
Esse valor especifica que o membro NestedException aponta para um objeto EXCEPTION_RECORD . - STOWED_EXCEPTION_NESTED_TYPE_STOWED
- STOWED_EXCEPTION_NESTED_TYPE('STOW')
Esse valor especifica que o membro NestedException aponta para outro objeto de exceção armazenado. O outro objeto de exceção armazenado pode ser um objeto STOWED_EXCEPTION_INFORMATION_V2 ou uma versão diferente com um membro Header válido, ou seja, um membro Header que contém um STOWED_EXCEPTION_INFORMATION_HEADER válido. - STOWED_EXCEPTION_NESTED_TYPE_CLR
- STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Esse valor especifica que o membro NestedException aponta para um objeto de exceção 'CLR1'. - STOWED_EXCEPTION_NESTED_TYPE_LEO
- STOWED_EXCEPTION_NESTED_TYPE('LEO1')
Esse valor especifica que o membro NestedException aponta para um objeto de exceção de linguagem. -
NestedException
-
Tipo: PVOID
-
Um ponteiro para um tipo de exceção aninhado. O tipo de objeto é indicado pelo membro NestedExceptionType .
Comentários
STOWED_EXCEPTION_INFORMATION_V2 e STOWED_EXCEPTION_INFORMATION_HEADER atualmente não estão definidos em um cabeçalho disponível publicamente, portanto, você precisa defini-los em seu código-fonte antes de usá-los.
A estrutura STOWED_EXCEPTION_INFORMATION_V1 é idêntica a essa estrutura, exceto que não contém os membros NestedExceptionType e NestedException .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 8.1 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2012 R2 [somente aplicativos da área de trabalho] |
Cabeçalho |
|