Compartilhar via


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

Tipo: STOWED_EXCEPTION_INFORMATION_HEADER

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
Nenhum

Confira também

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER