Structure d' _ informations d’exception de la _ _ version v2

Contient les informations sur les exceptions arrimées.

Syntaxe

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;

Membres

En-tête

Type : _ _ _ en-tête d’informations d’exception arrimé

Structure d' _ _ _ en-tête d’informations d’exception arrimé qui contient des informations pour cette structure parente.

ResultCode

Type : HRESULT

Code HRESULT de l’exception arrimée.

ExceptionForm

Type : DWORD

Valeur 2 bits qui identifie le formulaire de l’exception.

Valeur Signification
Rangé _ _ _ Binaire de formulaire d’exception
0x01
Cette valeur indique que la forme de l’exception est binaire.
Rangé _ _ _ Texte de formulaire d’exception
0x02
Cette valeur indique que le formulaire de l’exception est du texte.

ThreadId

Type : DWORD

Valeur de 30 bits qui identifie le thread qui a levé l’exception. La valeur est décalée vers la droite de 2 bits lorsqu’elle est stockée. Pour le reconvertir en un ID de thread valide, décalez la valeur vers la gauche de 2. Par exemple :

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

(struct sans nom)

Les membres de cette structure imbriquée ne sont valides que si le membre ExceptionForm est défini sur le type d' _ exception _ _ arrimé.

ExceptionAddress

Type : pVoid

Pointeur qui contient l’adresse de l’exception.

StackTraceWordSize

Type : ULong

Taille, en octets, de chaque mot de la trace de la pile vers lequel pointe le membre StackTrace . Cette valeur est définie sur 4 pour les plateformes 32 bits et 8 pour les plateformes 64 bits.

StackTraceWords

Type : ULong

Nombre de mots dans la trace de la pile vers lequel pointe le membre StackTrace . Le nombre de mots est égal au nombre d’éléments dans le tableau.

Trace

Type : pVoid

Pointeur vers un bloc de mémoire qui contient la trace de la pile.

(struct sans nom)

Le membre de cette structure imbriquée est valide uniquement si le membre ExceptionForm est défini sur le _ _ _ texte de formulaire d’exception arrimé.

ErrorText

Type : PWSTR

Pointeur vers une chaîne se terminant par un caractère null qui contient le texte d’erreur de l’exception.

NestedExceptionType

Type : ULong

Valeur 32 bits qui spécifie le type d’objet vers lequel pointe le membre NestedException . Définissez la valeur avec cette macro de définition de type d’échange d’octets qui suppose un faible 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))

Voici quelques définitions de type courantes :

Valeur Signification
Rangé _ _Type imbriqué d' _ exception _ None
(0x00000000)
Cette valeur spécifie qu’il n’existe aucun objet exception imbriqué.
Rangé _ _Type imbriqué d' _ exception _
type imbriqué
_ de l’exception Win32 _ _ ('W32E')
Cette valeur spécifie que le membre NestedException pointe vers un objet _ enregistrement d’exception .
Rangé _ exception _ _ _
type imbriqué
de l’exception arrimé de type imbriqué _ _ _ ('arrim')
Cette valeur spécifie que le membre NestedException pointe vers un autre objet exception rangé. L’autre objet d’exception arrimée peut être un objet d’informations d’exception chargées _ _ _ v2 ou une version différente avec un membre d' en-tête valide, autrement dit un membre d' en-tête qui contient un _ _ _ en-tête d’informations d’exception arrimévalide.
Rangé _ Type imbriqué d’EXCEPTION type imbriqué de l’exception _ _ _ CLR
_ _ _ ('CLR1 ')
Cette valeur spécifie que le membre NestedException pointe vers un objet d’exception « CLR1 ».
Rangé _ _Type imbriqué d' _ exception _
type imbriqué
_ de l’exception Leo _ _ ('LEO1 ')
Cette valeur spécifie que le membre NestedException pointe vers un objet d’exception de langage.

NestedException

Type : pVoid

Pointeur vers un type d’exception imbriquée. Le type d’objet est indiqué par le membre NestedExceptionType .

Notes

Rangé _ Les _ informations _ sur l’exception v2 et l' _ _ _ en-tête d’informations d’exception arrimées ne sont actuellement pas définis dans un en-tête disponible publiquement. vous devez donc les définir dans votre code source avant de les utiliser.

La structure d’informations d’exception de la version _ _ _ v1 est identique à cette structure, sauf qu’elle ne contient pas les membres NestedExceptionType et NestedException .

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 8.1 les [ applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 [Applications de bureau R2 uniquement]
En-tête
Aucun

Voir aussi

enregistrement d’EXCEPTION _

_ _ en-tête d’informations d’exception arrimé _