STOWED_EXCEPTION_INFORMATION_V2構造体
格納された例外情報が含まれます。
構文
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;
メンバー
-
Header
-
この親構造体の情報を含む STOWED_EXCEPTION_INFORMATION_HEADER 構造体。
-
ResultCode
-
型: HRESULT
-
格納された例外の HRESULT コード。
-
ExceptionForm
-
型: DWORD
-
例外の形式を識別する 2 ビット値。
値 説明 - STOWED_EXCEPTION_FORM_BINARY
- 0x01
この値は、例外の形式がバイナリであることを示します。 - STOWED_EXCEPTION_FORM_TEXT
- 0x02
この値は、例外の形式がテキストであることを示します。 -
ThreadId
-
型: DWORD
-
例外を発生させたスレッドを識別する 30 ビット値。 値は、格納時に 2 ビットずつ右にシフトされます。 有効なスレッド ID に戻すには、値を 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
-
NestedException メンバーが指すオブジェクトの種類を指定する 32 ビット値。 次のバイト スワップ型定義マクロを使用して、リトル エンディアンを前提とする値を定義します。
#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 メンバーが別の格納された例外オブジェクトを指していることを指定します。 もう 1 つの格納された例外オブジェクトには、STOWED_EXCEPTION_INFORMATION_V2 オブジェクト、または有効な Header メンバーを持つ別のバージョン、つまり有効なSTOWED_EXCEPTION_INFORMATION_HEADERを含む Header メンバーを指定できます。 - 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_V2 と STOWED_EXCEPTION_INFORMATION_HEADER は現在、一般公開されているヘッダーでは定義されていないため、使用する前にソース コードで定義する必要があります。
STOWED_EXCEPTION_INFORMATION_V1構造体は、NestedExceptionType メンバーと NestedException メンバーを含まない点を除いて、この構造体と同じです。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 8.1 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2012 R2 [デスクトップ アプリのみ] |
ヘッダー |
|