Méthode IDebugHostType ::GetBitField (dbgmodel.h)
Si un membre donné d’une structure de données est un champ de bits (par exemple, ULONG MyBits :8), les informations de type du champ comportent des informations sur l’emplacement du champ binaire. La méthode GetBitField peut être utilisée pour récupérer ces informations. Cette méthode échoue sur n’importe quel type qui n’est pas un champ de bits. C’est la seule raison pour laquelle la méthode échoue. Il suffit d’appeler cette méthode et d’examiner la réussite/l’échec pour distinguer un champ bit d’un champ non bit.
Si un type donné se trouve être un champ bitfield, les positions de champ sont définies par l’ensemble demi-ouvert (lsbOfField + lengthOfField : lsbOfField]
Syntaxe
HRESULT GetBitField(
ULONG *lsbOfField,
ULONG *lengthOfField
);
Paramètres
lsbOfField
Indique le bit le moins significatif du champ (où 0 est défini comme étant le bit le moins significatif du type contenant). Le champ bit est défini pour utiliser les bits de ce point vers le bit le plus significatif du type contenant en fonction de la longueur spécifiée par l’argument lengthOfField.
lengthOfField
Nombre de bits dans le champ. Il s’agit d’au moins un et pas plus que le nombre de bits dans le type contenant. Le champ bit occupe à partir du bit spécifié dans l’argument lsbOfField vers le haut vers le bit le plus significatif de la valeur contenante en fonction du nombre de bits retournés ici.
Valeur retournée
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Remarques
Exemple de Code
ComPtr<IDebugHostType> spType; /* get the type of a field which is a bitmap */
ULONG lsb;
ULONG length;
if (SUCCEEDED(spType->GetBitField(&lsb, &length)))
{
// spType refers to a bitfield. The field is [lsb, lsb + length) in
// bit positions. Were you to read memory at the location/size specified
// by an object of this type, you would need to mask off bits at and
// above 'lsb + length' and shift right by 'lsb'
//
// Note that IModelObject::GetRawObject will automatically do this for you.
// So will creating an object with this type spType via CreateTypedObject.
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgmodel.h |