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
-
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 |
|