共用方式為


STOWED_EXCEPTION_INFORMATION_V2結構

包含 Stowed 例外狀況資訊。

語法

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;

成員

標頭

類型: STOWED_EXCEPTION_INFORMATION_HEADER

包含這個父結構資訊的 STOWED_EXCEPTION_INFORMATION_HEADER 結構。

ResultCode

類型: HRESULT

Stowed 例外狀況的 HRESULT 程式碼。

ExceptionForm

類型: DWORD

識別例外狀況格式的 2 位值。

意義
STOWED_EXCEPTION_FORM_BINARY
0x01
這個值表示例外狀況的格式為二進位。
STOWED_EXCEPTION_FORM_TEXT
0x02
這個值表示例外狀況的格式為文字。

ThreadId

類型: DWORD

識別引發例外狀況之執行緒的 30 位值。 儲存值時,值會向右移 2 位。 若要將它轉換回有效的執行緒識別碼,請將值向左移 2。 例如:

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

(未命名的結構)

只有當 ExceptionForm 成員設定為 STOWED_EXCEPTION_FORM_BINARY時,這個巢狀結構的成員才有效。

ExceptionAddress

類型: PVOID

包含例外狀況位址的指標。

StackTraceWordSize

類型: ULONG

StackTrace成員所指向堆疊追蹤中每個字的大小,以位元組為單位。 此值針對 32 位平臺設定為 4,而 64 位平臺則設定為 8。

StackTraceWords

類型: ULONG

StackTrace成員所指向堆疊追蹤中的字數。 字數等於陣列中的元素數目。

StackTrace

類型: PVOID

包含堆疊追蹤的記憶體區塊指標。

(未命名的結構)

只有當 ExceptionForm 成員設定為 STOWED_EXCEPTION_FORM_TEXT時,這個巢狀結構的成員才有效。

ErrorText

類型: PWSTR

包含例外狀況錯誤文字之 Null 終止字串的指標。

NestedExceptionType

類型: ULONG

32 位值,指定 NestedException 成員指向的物件類型。 使用此位元組交換類型定義宏來定義值,該宏會假設為位元組結尾:

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

以下是一些常見的類型定義:

意義
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
這個值會指定沒有巢狀例外狀況物件。
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE ('W32E')
這個值會指定 NestedException 成員指向 EXCEPTION_RECORD 物件。
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE ('STOW')
這個值會指定 NestedException 成員指向另一個 Stowed 例外狀況物件。 另一個 stowed 例外狀況物件可以是STOWED_EXCEPTION_INFORMATION_V2物件或具有有效Header成員的不同版本,也就是包含有效STOWED_EXCEPTION_INFORMATION_HEADERHeader成員。
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE ('CLR1')
這個值會指定 NestedException 成員指向 'CLR1' 例外狀況物件。
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE ('LEO1')
這個值會指定 NestedException 成員指向語言例外狀況物件。

NestedException

類型: PVOID

巢狀例外狀況類型的指標。 物件的類型是由 NestedExceptionType 成員表示。

備註

STOWED_EXCEPTION_INFORMATION_V2STOWED_EXCEPTION_INFORMATION_HEADER 目前未定義于可公開使用的標頭中,因此您必須在原始程式碼中定義它們,才能使用它們。

STOWED_EXCEPTION_INFORMATION_V1結構與這個結構相同,但不包含NestedExceptionTypeNestedException成員。

規格需求

需求
最低支援的用戶端
Windows 8.1 [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2012 R2 [僅限傳統型應用程式]
標頭

另請參閱

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER