Compartir a través de


estructura de STOWED_EXCEPTION_INFORMATION_V2

Contiene información de excepción permitida.

Sintaxis

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;

Miembros

Encabezado

Tipo: STOWED_EXCEPTION_INFORMATION_HEADER

Estructura STOWED_EXCEPTION_INFORMATION_HEADER que contiene información de esta estructura primaria.

ResultCode

Tipo: HRESULT

Código HRESULT para la excepción permitida.

ExceptionForm

Tipo: DWORD

Valor de 2 bits que identifica la forma de la excepción.

Value Significado
STOWED_EXCEPTION_FORM_BINARY
0x01
Este valor indica que la forma de la excepción es binaria.
STOWED_EXCEPTION_FORM_TEXT
0x02
Este valor indica que la forma de la excepción es texto.

ThreadId

Tipo: DWORD

Valor de 30 bits que identifica el subproceso que generó la excepción. El valor se desplaza a la derecha en 2 bits cuando se almacena. Para volver a convertirlo a un identificador de subproceso válido, cambie el valor a la izquierda por 2. Por ejemplo:

DWORD ActualThreadId = (StowedException.ThreadId << 2);

(struct sin nombre)

Los miembros de esta estructura anidada solo son válidos si el miembro ExceptionForm está establecido en STOWED_EXCEPTION_FORM_BINARY.

ExceptionAddress

Tipo: PVOID

Puntero que contiene la dirección de excepción.

StackTraceWordSize

Tipo: ULONG

Tamaño, en bytes, de cada palabra del seguimiento de pila al que apunta el miembro StackTrace . Este valor se establece en 4 para plataformas de 32 bits y 8 para plataformas de 64 bits.

StackTraceWords

Tipo: ULONG

Número de palabras del seguimiento de la pila a las que apunta el miembro StackTrace . El número de palabras es igual al número de elementos de la matriz.

StackTrace

Tipo: PVOID

Puntero a un bloque de memoria que contiene el seguimiento de la pila.

(struct sin nombre)

El miembro de esta estructura anidada solo es válido si el miembro ExceptionForm está establecido en STOWED_EXCEPTION_FORM_TEXT.

ErrorText

Tipo: PWSTR

Puntero a una cadena terminada en null que contiene el texto de error de la excepción.

NestedExceptionType

Tipo: ULONG

Valor de 32 bits que especifica el tipo de objeto al que apunta el miembro NestedException . Defina el valor con esta macro de definición de tipo de intercambio de bytes que supone 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))

Estas son algunas definiciones de tipos comunes:

Value Significado
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
Este valor especifica que no hay ningún objeto de excepción anidado.
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE('W32E')
Este valor especifica que el miembro NestedException apunta a un objeto EXCEPTION_RECORD .
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE('STOW')
Este valor especifica que el miembro NestedException apunta a otro objeto de excepción permitido. El otro objeto de excepción permitido puede ser un objeto STOWED_EXCEPTION_INFORMATION_V2 o una versión diferente con un miembro Header válido, es decir, un miembro Header que contiene un STOWED_EXCEPTION_INFORMATION_HEADER válido.
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Este valor especifica que el miembro NestedException apunta a un objeto de excepción "CLR1".
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE('LEO1')
Este valor especifica que el miembro NestedException apunta a un objeto de excepción de lenguaje.

NestedException

Tipo: PVOID

Puntero a un tipo de excepción anidado. El tipo de objeto se indica mediante el miembro NestedExceptionType .

Comentarios

STOWED_EXCEPTION_INFORMATION_V2 y STOWED_EXCEPTION_INFORMATION_HEADER actualmente no están definidos en un encabezado que esté disponible públicamente, por lo que debe definirlos en el código fuente antes de usarlos.

La estructura STOWED_EXCEPTION_INFORMATION_V1 es idéntica a esta estructura, salvo que no contiene los miembros NestedExceptionType y NestedException .

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2012 R2 [solo aplicaciones de escritorio]
Encabezado
None

Consulte también

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER