Partager via


IDebugHostType2 ::GetBitField, méthode (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 pour le champ contiennent des informations sur le positionnement du champ de bits. 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 échouera. Il suffit d’appeler cette méthode et d’examiner la réussite/l’échec pour distinguer un champ de bits d’un champ non bit.

Si un type donné se présente comme un champ de bits, 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 conteneur). Le champ de bits est défini pour utiliser des bits de ce point vers le bit le plus significatif du type conteneur en fonction de la longueur spécifiée par l’argument lengthOfField.

lengthOfField

Nombre de bits dans le champ. Ce sera au moins un et pas plus que le nombre de bits dans le type conteneur. Le champ de bits occupe le bit spécifié dans l’argument lsbOfField vers le haut vers le haut vers le bit le plus significatif de la valeur conteneur en fonction du nombre de bits retournés ici.

Valeur de retour

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

Exigences

Exigence Valeur
d’en-tête dbgmodel.h

Voir aussi

interface IDebugHostType2