Condividi tramite


struttura STOWED_EXCEPTION_INFORMATION_V2

Contiene informazioni sulle eccezioni stowed.

Sintassi

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;

Members

Intestazione

Tipo: STOWED_EXCEPTION_INFORMATION_HEADER

Struttura STOWED_EXCEPTION_INFORMATION_HEADER che contiene informazioni per questa struttura padre.

ResultCode

Tipo: HRESULT

Codice HRESULT per l'eccezione stowed.

ExceptionForm

Tipo: DWORD

Valore a 2 bit che identifica la forma dell'eccezione.

Valore Significato
STOWED_EXCEPTION_FORM_BINARY
0x01
Questo valore indica che la forma dell'eccezione è binaria.
STOWED_EXCEPTION_FORM_TEXT
0x02
Questo valore indica che la forma dell'eccezione è testo.

ThreadId

Tipo: DWORD

Valore a 30 bit che identifica il thread che ha generato l'eccezione. Il valore viene spostato a destra di 2 bit quando viene archiviato. Per convertirlo di nuovo in un ID thread valido, spostare il valore a sinistra di 2. Ad esempio:

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

(struct senza nome)

I membri di questa struttura annidata sono validi solo se il membro ExceptionForm è impostato su STOWED_EXCEPTION_FORM_BINARY.

ExceptionAddress

Tipo: PVOID

Puntatore che contiene l'indirizzo dell'eccezione.

StackTraceWordSize

Tipo: ULONG

Dimensioni, in byte, di ogni parola nell'analisi dello stack a cui punta il membro StackTrace . Questo valore è impostato su 4 per le piattaforme a 32 bit e 8 per le piattaforme a 64 bit.

StackTraceWords

Tipo: ULONG

Numero di parole nell'analisi dello stack a cui punta il membro StackTrace . Il numero di parole è uguale al numero di elementi nella matrice.

StackTrace

Tipo: PVOID

Puntatore a un blocco di memoria che contiene l'analisi dello stack.

(struct senza nome)

Il membro di questa struttura annidata è valido solo se il membro ExceptionForm è impostato su STOWED_EXCEPTION_FORM_TEXT.

Errortext

Tipo: PWSTR

Puntatore a una stringa con terminazione Null contenente il testo di errore dell'eccezione.

NestedExceptionType

Tipo: ULONG

Valore a 32 bit che specifica il tipo di oggetto a cui punta il membro NestedException . Definire il valore con questa macro di definizione del tipo di scambio di byte che presuppone 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))

Ecco alcune definizioni di tipo comuni:

Valore Significato
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
Questo valore specifica che non è presente alcun oggetto eccezione annidato.
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE('W32E')
Questo valore specifica che il membro NestedException punta a un oggetto EXCEPTION_RECORD .
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE('STOW')
Questo valore specifica che il membro NestedException punta a un altro oggetto eccezione stowed. L'altro oggetto eccezione stowed può essere un oggetto STOWED_EXCEPTION_INFORMATION_V2 o una versione diversa con un membro Header valido, ovvero un membro Header che contiene un STOWED_EXCEPTION_INFORMATION_HEADER valido.
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Questo valore specifica che il membro NestedException punta a un oggetto eccezione 'CLR1'.
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE('LEO1')
Questo valore specifica che il membro NestedException punta a un oggetto eccezione di lingua.

NestedException

Tipo: PVOID

Puntatore a un tipo di eccezione annidato. Il tipo di oggetto è indicato dal membro NestedExceptionType .

Commenti

STOWED_EXCEPTION_INFORMATION_V2 e STOWED_EXCEPTION_INFORMATION_HEADER non sono attualmente definiti in un'intestazione disponibile pubblicamente, quindi è necessario definirli nel codice sorgente prima di usarli.

La struttura STOWED_EXCEPTION_INFORMATION_V1 è identica a questa struttura, ma non contiene i membri NestedExceptionType e NestedException .

Requisiti

Requisito Valore
Client minimo supportato
Windows 8.1 [solo app desktop]
Server minimo supportato
Windows Server 2012 R2 [solo app desktop]
Intestazione
Nessuno

Vedi anche

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER