Partager via


Méthode IDebugHostType2 ::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

Voir aussi

Interface IDebugHostType2