Partager via


structure STOWED_EXCEPTION_INFORMATION_V2

Contient des informations d’exception rangé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 : STOWED_EXCEPTION_INFORMATION_HEADER

Structure STOWED_EXCEPTION_INFORMATION_HEADER qui contient des informations pour cette structure parente.

ResultCode

Type : HRESULT

Code HRESULT pour l’exception stowed.

ExceptionForm

Type : DWORD

Valeur 2 bits qui identifie la forme de l’exception.

Valeur Signification
STOWED_EXCEPTION_FORM_BINARY
0x01
Cette valeur indique que la forme de l’exception est binaire.
STOWED_EXCEPTION_FORM_TEXT
0x02
Cette valeur indique que la forme de l’exception est texte.

ThreadId

Type : DWORD

Valeur 30 bits qui identifie le thread qui a déclenché l’exception. La valeur est décalée vers la droite de 2 bits lorsqu’elle est stockée. Pour le convertir à nouveau en ID de thread valide, déplacez la valeur vers la gauche par 2. Par exemple :

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

(struct sans nom)

Les membres de cette structure imbriquée sont valides uniquement si le membre ExceptionForm est défini sur STOWED_EXCEPTION_FORM_BINARY.

ExceptionAddress

Type : PVOID

Pointeur qui contient l’adresse d’exception.

StackTraceWordSize

Type : ULONG

Taille, en octets, de chaque mot de la trace de pile vers laquelle 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 pile vers laquelle pointe le membre StackTrace . Le nombre de mots est égal au nombre d’éléments dans le tableau.

StackTrace

Type : PVOID

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

(struct sans nom)

Le membre de cette structure imbriquée n’est valide que si le membre ExceptionForm est défini sur STOWED_EXCEPTION_FORM_TEXT.

Errortext

Type : PWSTR

Pointeur vers une chaîne terminée par 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 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))

Voici quelques définitions de type courantes :

Valeur Signification
STOWED_EXCEPTION_NESTED_TYPE_NONE
(0x00000000)
Cette valeur spécifie qu’il n’existe aucun objet d’exception imbriqué.
STOWED_EXCEPTION_NESTED_TYPE_WIN32
STOWED_EXCEPTION_NESTED_TYPE('W32E')
Cette valeur spécifie que le membre NestedException pointe vers un objet EXCEPTION_RECORD .
STOWED_EXCEPTION_NESTED_TYPE_STOWED
STOWED_EXCEPTION_NESTED_TYPE('STOW')
Cette valeur spécifie que le membre NestedException pointe vers un autre objet d’exception rangé. L’autre objet d’exception rangé peut être un objet STOWED_EXCEPTION_INFORMATION_V2 ou une autre version avec un membre Header valide, c’est-à-dire un membre Header qui contient un STOWED_EXCEPTION_INFORMATION_HEADER valide.
STOWED_EXCEPTION_NESTED_TYPE_CLR
STOWED_EXCEPTION_NESTED_TYPE('CLR1')
Cette valeur spécifie que le membre NestedException pointe vers un objet d’exception « CLR1 ».
STOWED_EXCEPTION_NESTED_TYPE_LEO
STOWED_EXCEPTION_NESTED_TYPE('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é. Le type d’objet est indiqué par le membre NestedExceptionType .

Notes

STOWED_EXCEPTION_INFORMATION_V2 et STOWED_EXCEPTION_INFORMATION_HEADER ne sont actuellement pas définis dans un en-tête accessible au public. Vous devez donc les définir dans votre code source avant de les utiliser.

La structure STOWED_EXCEPTION_INFORMATION_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 [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2012 R2 [applications de bureau uniquement]
En-tête
Aucun

Voir aussi

EXCEPTION_RECORD

STOWED_EXCEPTION_INFORMATION_HEADER