Bagikan melalui


struktur STOWED_EXCEPTION_INFORMATION_V2

Berisi info pengecualian yang disematkan.

Sintaks

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;

Anggota

Header

Jenis: STOWED_EXCEPTION_INFORMATION_HEADER

Struktur STOWED_EXCEPTION_INFORMATION_HEADER yang berisi info untuk struktur induk ini.

ResultCode

Jenis: HRESULT

Kode HRESULT untuk pengecualian yang disematkan.

ExceptionForm

Jenis: DWORD

Nilai 2-bit yang mengidentifikasi bentuk pengecualian.

Nilai Makna
STOWED_EXCEPTION_FORM_BINARY
0x01
Nilai ini menunjukkan bahwa bentuk pengecualian adalah biner.
STOWED_EXCEPTION_FORM_TEXT
0x02
Nilai ini menunjukkan bahwa bentuk pengecualian adalah teks.

ThreadId

Jenis: DWORD

Nilai 30-bit yang mengidentifikasi utas yang menaikkan pengecualian. Nilai digeser ke kanan sebesar 2 bit saat disimpan. Untuk mengonversinya kembali ke ID utas yang valid, geser nilai ke kiri dengan 2. Contohnya:

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

(struct yang tidak disebutkan namanya)

Anggota struktur berlapis ini hanya valid jika anggota ExceptionForm diatur ke STOWED_EXCEPTION_FORM_BINARY.

ExceptionAddress

Jenis: PVOID

Penunjuk yang berisi alamat pengecualian.

StackTraceWordSize

Jenis: ULONG

Ukuran, dalam byte, dari setiap kata dalam jejak tumpukan yang dituju anggota StackTrace . Nilai ini diatur ke 4 untuk platform 32-bit dan 8 untuk platform 64-bit.

StackTraceWords

Jenis: ULONG

Jumlah kata dalam jejak tumpukan yang dituju anggota StackTrace . Jumlah kata sama dengan jumlah elemen dalam array.

StackTrace

Jenis: PVOID

Penunjuk ke blok memori yang berisi jejak tumpukan.

(struct yang tidak disebutkan namanya)

Anggota struktur berlapis ini hanya valid jika anggota ExceptionForm diatur ke STOWED_EXCEPTION_FORM_TEXT.

Teks Kesalahan

Jenis: PWSTR

Penunjuk ke string yang dihentikan null yang berisi teks kesalahan pengecualian.

NestedExceptionType

Jenis: ULONG

Nilai 32-bit yang menentukan jenis objek yang dituju oleh anggota NestedException . Tentukan nilai dengan makro definisi jenis pertukaran byte ini yang mengasumsikan 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))

Berikut adalah beberapa definisi jenis umum:

Nilai Makna
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
Nilai ini menentukan bahwa tidak ada objek pengecualian berlapis.
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE('W32E')
Nilai ini menentukan bahwa anggota NestedException menunjuk ke objek EXCEPTION_RECORD .
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE('STOW')
Nilai ini menentukan bahwa anggota NestedException menunjuk ke objek pengecualian lain yang disimpan. Objek pengecualian tersimpan lainnya dapat berupa objek STOWED_EXCEPTION_INFORMATION_V2 atau versi yang berbeda dengan anggota Header yang valid, yaitu, anggota Header yang berisi STOWED_EXCEPTION_INFORMATION_HEADER yang valid.
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Nilai ini menentukan bahwa anggota NestedException menunjuk ke objek pengecualian 'CLR1'.
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE('LEO1')
Nilai ini menentukan bahwa anggota NestedException menunjuk ke objek pengecualian bahasa.

NestedException

Jenis: PVOID

Penunjuk ke jenis pengecualian berlapis. Jenis objek ditunjukkan oleh anggota NestedExceptionType .

Keterangan

STOWED_EXCEPTION_INFORMATION_V2 dan STOWED_EXCEPTION_INFORMATION_HEADER saat ini tidak ditentukan dalam header yang tersedia untuk umum sehingga Anda perlu menentukannya dalam kode sumber anda sebelum menggunakannya.

Struktur STOWED_EXCEPTION_INFORMATION_V1 identik dengan struktur ini kecuali tidak berisi anggota NestedExceptionType dan NestedException .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 8.1 [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2012 R2 [hanya aplikasi desktop]
Header
Tidak ada

Lihat juga

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER