Freigeben über


IModelObject::GetLocation-Methode (dbgmodel.h)

Die GetLocation-Methode gibt den Speicherort des systemeigenen Objekts zurück. Während ein solcher Speicherort in der Regel eine virtuelle Adresse innerhalb des Adressraums des Debugziels ist, ist es nicht notwendigerweise so. Der von dieser Methode zurückgegebene Speicherort ist ein abstrakter Speicherort, der eine virtuelle Adresse sein kann, die Platzierung innerhalb eines Registers oder Unterregisters angeben oder einen anderen beliebigen Adressraum angeben kann, wie vom Debughost definiert. Wenn das HostDefined-Feld des resultierenden Location-Objekts 0 ist, gibt es an, dass der Speicherort tatsächlich eine virtuelle Adresse ist. Diese virtuelle Adresse kann abgerufen werden, indem das Offset-Feld des resultierenden Standorts untersucht wird. Jeder Wert ungleich Null des Felds "HostDefined" gibt einen alternativen Adressraum an, bei dem das Offsetfeld der Offset innerhalb dieses Adressraums ist. Die genaue Bedeutung von Nicht-Null-HostDefined-Werten hier sind privat für den Debughost.

Wenn das IModelObject-, für das diese Methode aufgerufen wird, kein systemeigenes Konstrukt mit einem Speicherort in einem abstrakten Adressbereich des Debugziels ist, gibt diese Methode E_FAIL zurück.

Syntax

HRESULT GetLocation(
  Location *location
);

Parameter

location

Die abstrakte Position des systemeigenen Objekts, das durch diesen Zeiger dargestellt wird, wird hier zurückgegeben.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Bemerkungen

Codebeispiel

In diesem Beispiel definiert die Location-Struktur die Position für ein Objekt.

ComPtr<IModelObject> spObject; /* get a native object */

Location loc;
if (SUCCEEDED(spObject->GetLocation(&loc)))
{
    if (loc.IsVirtualAddress()) /* or loc.HostDefined == 0 */
    {
        // The object is in memory at an address specified by Offset
        ULONG64 address = loc.Offset;
    }
    else
    {
        // The object is in some abstract "address space" (e.g.: it's enregistered).  
        // Arithmetic can still be used on the 'Offset' field in order to access
        // sub-objects within the abstract "address space"
    }
}

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

IModelObject-Schnittstelle