Condividi tramite


Metodo IDebugHostType::GetBitField (dbgmodel.h)

Se un determinato membro di una struttura di dati è un campo di bit (ad esempio: ULONG MyBits:8), le informazioni sul tipo per il campo contengono informazioni sul posizionamento del campo di bit. Il metodo GetBitField può essere utilizzato per recuperare tali informazioni. Questo metodo avrà esito negativo in qualsiasi tipo che non è un campo di bit. Questo è l'unico motivo per cui il metodo avrà esito negativo. La semplice chiamata a questo metodo e l'analisi dell'esito positivo/negativo è sufficiente per distinguere un campo di bit da un campo non di bit.

Se un determinato tipo è un campo di bit, le posizioni dei campi vengono definite dal set a metà aperto (lsbOfField + lengthOfField : lsbOfField: lsbOfField]

Sintassi

HRESULT GetBitField(
  ULONG *lsbOfField,
  ULONG *lengthOfField
);

Parametri

lsbOfField

Indica il bit meno significativo del campo (dove 0 è definito come il bit meno significativo del tipo contenitore). Il campo di bit viene definito per utilizzare bit da questo punto verso il bit più significativo del tipo contenitore in base alla lunghezza specificata dall'argomento lengthOfField.

lengthOfField

Numero di bit nel campo. Questo sarà almeno uno e non più del numero di bit nel tipo contenitore. Il campo bit occupa dal bit specificato nell'argomento lsbOfField verso l'alto verso l'alto verso il bit più significativo del valore contenitore in base al numero di bit restituiti qui.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Osservazioni

codice di esempio

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

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

'interfaccia IDebugHostType