Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classe ExtExtension est la classe de base de la classe C++ qui représente la bibliothèque d’extensions EngExtCpp.
La classe ExtExtension comprend les méthodes suivantes, qui peuvent être utilisées par la sous-classe :
IsUserMode
IsKernelMode
IsLiveLocalUser
IsMachine32
IsCurMachine32
IsMachine64
IsCurMachine64
Is32On64
CanQueryVirtual
HasFullMemBasic
IsExtensionRemote
AreOutputCallbacksDmlAware
RequireUserMode
RequireKernelMode
GetRawArgCopy
Out
Avertir
Err
Verb
Dml
DmlWarn
DmlErr
DmlVerb
DmlCmdLink
DmlCmdExec
RefreshOutputCallbackFlags
WrapLine
OutWrapStr
OutWrapVa
OutWrap
DemandeWrap
AllowWrap
TestWrap
RequestCircleString
CopyCircleString
PrintCircleStringVa
PrintCircleString
SetAppendBuffer
AppendBufferString
AppendStringVa
AppendString
IsAppendStart
SetCallStatus
GetCachedSymbolTypeId
GetCachedFieldOffset
GetCachedFieldOffset
AddCachedSymbolInfo
GetExpr64
GetExprU64
GetExprS64
ThrowCommandHelp
ThrowInterrupt
ThrowOutOfMemory
ThrowContinueSearch
ThrowReloadExtension
ThrowInvalidArg
ThrowRemote
ThrowStatus
ThrowLastError
La classe ExtExtension contient également les champs suivants qui peuvent être utilisés par la sous-classe :
class ExtExtension
{
public:
USHORT m_ExtMajorVersion;
USHORT m_ExtMinorVersion;
ULONG m_ExtInitFlags;
ExtKnownStruct * m_KnownStructs;
ExtProvidedValue * m_ProvidedValues;
ExtCheckedPointer<IDebugAdvanced> m_Advanced;
ExtCheckedPointer<IDebugClient> m_Client;
ExtCheckedPointer<IDebugControl> m_Control;
ExtCheckedPointer<IDebugDataSpaces> m_Data;
ExtCheckedPointer<IDebugRegisters> m_Registers;
ExtCheckedPointer<IDebugSymbols> m_Symbols;
ExtCheckedPointer<IDebugSystemObjects> m_System;
ExtCheckedPointer<IDebugAdvanced2> m_Advanced2;
ExtCheckedPointer<IDebugAdvanced3> m_Advanced3;
ExtCheckedPointer<IDebugClient2> m_Client2;
ExtCheckedPointer<IDebugClient3> m_Client3;
ExtCheckedPointer<IDebugClient4> m_Client4;
ExtCheckedPointer<IDebugClient5> m_Client5;
ExtCheckedPointer<IDebugControl2> m_Control2;
ExtCheckedPointer<IDebugControl3> m_Control3;
ExtCheckedPointer<IDebugControl4> m_Control4;
ExtCheckedPointer<IDebugDataSpaces2> m_Data2;
ExtCheckedPointer<IDebugDataSpaces3> m_Data3;
ExtCheckedPointer<IDebugDataSpaces4> m_Data4;
ExtCheckedPointer<IDebugRegisters2> m_Registers2;
ExtCheckedPointer<IDebugSymbols2> m_Symbols2;
ExtCheckedPointer<IDebugSymbols3> m_Symbols3;
ExtCheckedPointer<IDebugSystemObjects2> m_System2;
ExtCheckedPointer<IDebugSystemObjects3> m_System3;
ExtCheckedPointer<IDebugSystemObjects4> m_System4;
ULONG m_OutputWidth;
ULONG m_ActualMachine;
ULONG m_Machine;
ULONG m_PageSize;
ULONG m_PtrSize;
ULONG m_NumProcessors;
ULONG64 m_OffsetMask;
ULONG m_DebuggeeClass;
ULONG m_DebuggeeQual;
ULONG m_DumpFormatFlags;
bool m_IsRemote;
bool m_OutCallbacksDmlAware;
ULONG m_OutMask;
ULONG m_CurChar;
ULONG m_LeftIndent;
bool m_AllowWrap;
bool m_TestWrap;
ULONG m_TestWrapChars;
PSTR m_AppendBuffer;
ULONG m_AppendBufferChars;
PSTR m_AppendAt;
};
Membres
m_ExtMajorVersion
Numéro de version principal de la bibliothèque d’extensions. Cela doit être défini par la méthode Initialize . S’il n’est pas défini, la valeur par défaut est 1.
m_ExtMinorVersion
Numéro de version secondaire de la bibliothèque d’extensions. Cela doit être défini par la méthode Initialize . S’il n’est pas défini, la valeur par défaut est 0 (zéro).
m_ExtInitFlags
Indicateurs d’initialisation de l’extension DbgEng pour DebugExtensionInitialize.
m_KnownStructs
Tableau de structures ExtKnownStruct que la bibliothèque d’extensions est capable de mettre en forme pour la sortie. Ce membre doit être défini par la méthode Initialize et ne doit pas être modifié une fois que cette méthode est retournée.
Si m_KnownStructs n’a pas la valeur NULL, le membre TypeName de la dernière structure ExtKnownStruct du tableau doit avoir la valeur NULL.
Lors de la mise en forme de la structure d’une cible pour la sortie, si le nom du type de la structure correspond au membre TypeName de l’une des structures ExtKnownStruct de ce tableau, la fonction de rappel spécifiée dans le membre Method est appelée pour effectuer la mise en forme.
m_ProvidedValues
Tableau de structures ExtProvidedValue répertoriant les pseudo-registres que la bibliothèque d’extensions peut fournir des valeurs. Ce membre doit être défini par la méthode Initialize et ne doit pas être modifié une fois que cette méthode est retournée.
Si m_ProvidedValues n’a pas la valeur NULL, le membre ValueName de la dernière structure ExtProvidedValue du tableau doit avoir la valeur NULL.
Lors de l’évaluation d’un pseudo-registre, si le nom du pseudo-registre correspond au membre ValueName de l’une des structures ExtProvidedValue de ce tableau, la fonction de rappel spécifiée dans le membre method est appelée pour évaluer le pseudo registre.
m_Advanced
Pointeur d’interface IDebugAdvanced pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Client
Pointeur d’interface IDebugClient pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Control
Pointeur d’interface IDebugControl pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Data
Pointeur d’interface IDebugDataSpaces pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Registers
Pointeur d’interface IDebugRegisters pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Symbols
Pointeur d’interface IDebugSymbols pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_System
Pointeur d’interface IDebugSystemObjects pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod.
m_Advanced2
Pointeur d’interface IDebugAdvanced2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Advanced3
Pointeur d’interface IDebugAdvanced3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Client2
Pointeur d’interface IDebugClient2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Client3
Pointeur d’interface IDebugClient3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Client4
Pointeur d’interface IDebugClient4 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Client5
Pointeur d’interface IDebugClient5 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Control2
Pointeur d’interface IDebugControl2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Control3
Pointeur d’interface IDebugControl3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Control4
Pointeur d’interface IDebugControl4 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Data2
Pointeur d’interface IDebugDataSpaces2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Data3
Pointeur d’interface IDebugDataSpaces3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Data4
Pointeur d’interface IDebugDataSpaces4 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Registers2
Pointeur d’interface IDebugRegisters2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Symbols2
Pointeur d’interface IDebugSymbols2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_Symbols3
Pointeur d’interface IDebugSymbols3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_System2
Pointeur d’interface IDebugSystemObjects2 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_System3
Pointeur d’interface IDebugSystemObjects3 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_System4
Pointeur d’interface IDebugSystemObjects4 pour l’objet client qui peut être utilisé par la bibliothèque d’extensions. Elle est valide lors de l’appel de méthodes d’extension externes, par exemple, l’exécution d’une commande d’extension, un appel à ExtKnownStructMethod et ExtProvideValueMethod. Cette interface n’est peut-être pas disponible dans toutes les versions du moteur du débogueur.
m_PtrSize
Taille d’un pointeur sur la cible actuelle. Si la cible utilise des pointeurs 32 bits, m_PtrSize est 4. Si la cible utilise des pointeurs 64 bits, m_PtrSize est 8.
m_AppendBuffer
Mémoire tampon de caractères utilisée pour renvoyer des chaînes de la bibliothèque d’extensions au moteur. La taille de cette mémoire tampon est m_AppendBufferChars. Les méthodes AppendBufferString, AppendStringVa et AppendString peuvent être utilisées pour écrire des chaînes dans cette mémoire tampon.
m_AppendBufferChars
Taille, en caractères, de la mémoire tampon m_AppendBuffer.