Freigeben über


STOWED_EXCEPTION_INFORMATION_V2 Struktur

Enthält verstaute Ausnahmeinformationen.

Syntax

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;

Member

Kopfzeile

Typ: STOWED_EXCEPTION_INFORMATION_HEADER

Die STOWED_EXCEPTION_INFORMATION_HEADER Struktur, die Informationen zu dieser übergeordneten Struktur enthält.

Resultcode

Typ: HRESULT

Der HRESULT-Code für die verstaute Ausnahme.

ExceptionForm

Typ: DWORD

Ein 2-Bit-Wert, der die Form der Ausnahme identifiziert.

Wert Bedeutung
STOWED_EXCEPTION_FORM_BINARY
0x01
Dieser Wert gibt an, dass die Form der Ausnahme binär ist.
STOWED_EXCEPTION_FORM_TEXT
0x02
Dieser Wert gibt an, dass die Form der Ausnahme Text ist.

Threadid

Typ: DWORD

Ein 30-Bit-Wert, der den Thread identifiziert, der die Ausnahme ausgelöst hat. Der Wert wird beim Speichern um 2 Bits nach rechts verschoben. Um ihn wieder in eine gültige Thread-ID zu konvertieren, verschieben Sie den Wert um 2 nach links. Beispiel:

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

(unbenannte Struktur)

Die Member dieser geschachtelten Struktur sind nur gültig, wenn das ExceptionForm-Element auf STOWED_EXCEPTION_FORM_BINARY festgelegt ist.

ExceptionAddress

Typ: PVOID

Ein Zeiger, der die Ausnahmeadresse enthält.

StackTraceWordSize

Typ: ULONG

Größe jedes Worts in der Stapelablaufverfolgung, auf das das StackTrace-Element verweist, in Bytes. Dieser Wert ist auf 4 für 32-Bit-Plattformen und auf 8 für 64-Bit-Plattformen festgelegt.

StackTraceWords

Typ: ULONG

Die Anzahl der Wörter in der Stapelablaufverfolgung, auf die das StackTrace-Element verweist. Die Anzahl der Wörter entspricht der Anzahl der Elemente im Array.

StackTrace

Typ: PVOID

Ein Zeiger auf einen Speicherblock, der die Stapelablaufverfolgung enthält.

(unbenannte Struktur)

Das Element dieser geschachtelten Struktur ist nur gültig, wenn das ExceptionForm-Element auf STOWED_EXCEPTION_FORM_TEXT festgelegt ist.

Errortext

Typ: PWSTR

Ein Zeiger auf eine NULL-Zeichenfolge, die den Fehlertext der Ausnahme enthält.

NestedExceptionType

Typ: ULONG

Ein 32-Bit-Wert, der den Typ des Objekts angibt, auf das das NestedException-Element verweist. Definieren Sie den Wert mit diesem Bytetauschtypdefinitionsmakro, das little-endian vorausnimmt:

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

Hier sind einige gängige Typdefinitionen:

Wert Bedeutung
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
Dieser Wert gibt an, dass kein geschachteltes Ausnahmeobjekt vorhanden ist.
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE('W32E')
Dieser Wert gibt an, dass das NestedException-Element auf ein EXCEPTION_RECORD-Objekt zeigt.
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE('STOW')
Dieser Wert gibt an, dass das NestedException-Element auf ein anderes verstautes Ausnahmeobjekt verweist. Das andere verstaute Ausnahmeobjekt kann ein STOWED_EXCEPTION_INFORMATION_V2-Objekt oder eine andere Version mit einem gültigen Header-Member sein, d. h. ein Header-Member , das eine gültige STOWED_EXCEPTION_INFORMATION_HEADER enthält.
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Dieser Wert gibt an, dass das NestedException-Element auf ein Ausnahmeobjekt "CLR1" verweist.
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE('LEO1')
Dieser Wert gibt an, dass das NestedException-Element auf ein Sprachausnahmeobjekt verweist.

NestedException

Typ: PVOID

Ein Zeiger auf einen geschachtelten Ausnahmetyp. Der Typ des Objekts wird durch das NestedExceptionType-Element angegeben.

Bemerkungen

STOWED_EXCEPTION_INFORMATION_V2 und STOWED_EXCEPTION_INFORMATION_HEADER werden derzeit nicht in einem kopfzeilen definiert, der öffentlich verfügbar ist. Daher müssen Sie sie in Ihrem Quellcode definieren, bevor Sie sie verwenden.

Die STOWED_EXCEPTION_INFORMATION_V1-Struktur ist mit dieser Struktur identisch, mit der Ausnahme, dass sie nicht die Elemente NestedExceptionType und NestedException enthält.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2012 R2 [nur Desktop-Apps]
Header
Keine

Siehe auch

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER