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