Cette structure permet d'obtenir des informations sur les préfixes utilisés par l'instruction. On peut notamment savoir si certains registres sont utilisés abusivement.
struct PREFIXINFO {
int Number;
int NbUndefined;
BYTE LockPrefix;
BYTE OperandSize;
BYTE AddressSize;
BYTE RepnePrefix;
BYTE RepPrefix;
BYTE FSPrefix;
BYTE SSPrefix;
BYTE GSPrefix;
BYTE ESPrefix;
BYTE CSPrefix;
BYTE DSPrefix;
BYTE BranchTaken;
BYTE BranchNotTaken;
REX_Struct REX;
};
Membres
Number
[out] Indique le nombres de préfixes utilisés.
NbUndefined
[out] Parmi les préfixes comptés dans le champ Number, on dénombre ici les préfixes utilisés de façon illégale.
LockPrefix
[out] Caractérise l'usage du préfixe LOCK. Il peut prendre l'une des valeurs suivantes :
NotUsedPrefix = 0 InUsePrefix = 1 SuperfluousPrefix = 2 InvalidPrefix = 4 MandatoryPrefix = 8
OperandSize
[out] Caractérise l'usage du préfixe pour définir la taille des opérandes mémoires. (voir les valeurs précédentes)
AddressSize
[out] Caractérise l'usage du préfixe AddressSize (voir les valeurs précédentes)
RepnePrefix
[out] Caractérise l'usage du préfixe REPNE. (voir les valeurs précédentes)
RepPrefix
[out] Caractérise l'usage du préfixe REP. (voir les valeurs précédentes)
FSPrefix
[out] Caractérise l'usage du préfixe de segment FS. (voir les valeurs précédentes)
SSPrefix
[out] Caractérise l'usage du préfixe de segment SS. (voir les valeurs précédentes)
GSPrefix
[out] Caractérise l'usage du préfixe de segment GS. (voir les valeurs précédentes)
ESPrefix
[out] Caractérise l'usage du préfixe de segment ES. (voir les valeurs précédentes)
CSPrefix
[out] Caractérise l'usage du préfixe de segment CS. (voir les valeurs précédentes)
DSPrefix
[out] Caractérise l'usage du préfixe de segment DS. (voir les valeurs précédentes)
BranchTaken
[out] Caractérise l'usage du préfixe de prédiction de branche 0x3E (voir les valeurs précédentes)
BranchNotTaken
[out] Caractérise l'usage du préfixe de prédiction de branche 0x2E (voir les valeurs précédentes)
REX
[out] Caractérise l'usage du préfixe REX en mode 64 bits. La structure renvoyée est la suivante :
struct REX_Struct {
BYTE W_;
BYTE R_;
BYTE X_;
BYTE B_;
BYTE state;
};
Les champs W_, R_, X_, B_ sont mis à 1 si le préfixe correspondant est utilisé. Le champ state est mis à 1 si un préfixe REX est utilisé.