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
-
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 |
|