This structure gives informations on used prefixes. When can know if some prefixes are used properly or not.
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] Indicates the number of prefixes used.
NbUndefined
[out] Indicates the number of prefixes used in a wrong way (illegal use).
LockPrefix
[out] Concerns the LOCK prefix. It can takes one of the following values :
NotUsedPrefix = 0 InUsePrefix = 1 SuperfluousPrefix = 2 InvalidPrefix = 4 MandatoryPrefix = 8
OperandSize
[out] Concerns the prefix used to define the size of operands.
AddressSize
[out] Concerns the prefix used to define the AddressSize
RepnePrefix
[out] Concerns the prefix used to define the REPNE.
RepPrefix
[out] Concerns the prefix used to define the REP.
FSPrefix
[out] Concerns the prefix used to define the FS segment .
SSPrefix
[out] Concerns the prefix used to define the SS segment .
GSPrefix
[out] Concerns the prefix used to define the GS segment .
ESPrefix
[out] Concerns the prefix used to define the ES segment .
CSPrefix
[out] Concerns the prefix used to define the CS segment .
DSPrefix
[out] Concerns the prefix used to define the DS segment .
BranchTaken
[out] Concerns branch hint prefix 0x3E (taken).
BranchNotTaken
[out] Concerns branch hint prefix 0x2E (not taken).
REX
[out] Concerns the prefix used to define the REX in 64 bits mode. The structure sended back is :
struct REX_Struct { BYTE W_; BYTE R_; BYTE X_; BYTE B_; BYTE state; };
Fields W_, R_, X_, B_ are set to 1 if the prefix is used. The field state is set to 1 if a REX prefix is used.