EXCEPTION_RECORD64構造体 (winnt.h)
例外について説明します。
構文
typedef struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD64 ExceptionRecord;
DWORD64 ExceptionAddress;
DWORD NumberParameters;
DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
メンバー
ExceptionCode
例外が発生した理由。 これは、ハードウェア例外によって生成されたコード、またはソフトウェアによって生成された例外の RaiseException 関数で指定されたコードです。 次の表では、一般的なプログラミング エラーが原因で発生する可能性が高い例外コードについて説明します。
コンソール プロセスのデバッグ時に、別の例外コードが発生する可能性があります。 これは、プログラミング エラーのため発生しません。 DBG_CONTROL_C例外コードは、Ctrl + C シグナルを処理し、デバッグ中のコンソール プロセスに Ctrl + C が入力されるときに発生します。 この例外コードはアプリケーションによって処理されるものではありません。 デバッガーの利点のみを目的として発生し、デバッガーがコンソール プロセスにアタッチされている場合にのみ発生します。
ExceptionFlags
例外フラグ。 このメンバーは、連続する例外を示す 0、または非継続可能な例外を示す EXCEPTION_NONCONTINUABLE のいずれかになります。 続行できない例外の後に実行を続行しようとすると、 EXCEPTION_NONCONTINUABLE_EXCEPTION 例外が発生します。
ExceptionRecord
関連付けられている EXCEPTION_RECORD 構造体へのポインター。 例外レコードを連結して、入れ子になった例外が発生したときに追加情報を提供できます。
ExceptionAddress
例外が発生したアドレス。
NumberParameters
例外に関連付けられているパラメーターの数。 これは ExceptionInformation 配列内の定義された要素の数です。
__unusedAlignment
ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
例外を記述する追加の引数の配列。 RaiseException 関数では、この引数の配列を指定できます。 ほとんどの例外コードでは、配列要素は未定義です。 次の表では、配列要素が定義されている例外コードについて説明します。
解説
デバッガーが別のアーキテクチャ (32 ビットと 64 ビット) で実行されているターゲットをデバッグできるようにするには、この構造体の明示的な形式のいずれかを使用します。
typedef struct _EXCEPTION_RECORD32 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD ExceptionRecord;
DWORD ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
typedef struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD64 ExceptionRecord;
DWORD64 ExceptionAddress;
DWORD NumberParameters;
DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
Header | winnt.h (Windows.h を含む) |