Freigeben über


IDiaStackWalkHelper3::get_registerValue

Ruft den Wert des angegebenen Registers ab.

Syntax

HRESULT get_registerValue(
    DWORD index,
    DWORD cbData,
    DWORD* pcbData,
    BYTE* pbData
);

Parameter

index

[in] Ein Wert aus der CV_HREG_e Aufzählung, der angibt, aus welchem Register der Wert abgerufen werden soll. Dieser Parameterwert ist in erster Linie für die ARM64 SVE-Register vorgesehen.

cbData

[in] Größe des Puffers in Byte, auf den pbDataverwiesen wird. Kann sein 0 , wann pbData ist nullptr.

pcbData

[out] Empfängt die Größe des Registerwerts in Byte. nullptr Ist pbData und cbData ist 0, pcbData wird auf die erforderliche Größe für den Registerwert festgelegt.

pbData

[out, optional] Vom Aufrufer zugewiesener Puffer, der den Registerwert empfängt. Es kann sein nullptr , nur die erforderliche Größe abzufragen.

Rückgabewert

Bei erfolgreicher Ausführung wird ein Fehlercode zurückgegeben S_OK; andernfalls wird ein Fehlercode zurückgegeben.

Bemerkungen

Sie können nur die erforderliche Größe des Registerwerts abfragen pbData = nullptrcbData = 0 . Die Methode wird auf die Anzahl der benötigten Bytes festgelegt pcbData . Weisen Sie einen Puffer dieser Größe zu, und rufen Sie ihn erneut auf, um den Wert abzurufen.

Registergrößen können sich zwischen CPU-Architekturen unterscheiden. Diese Methode unterstützt Register mit variabler Größe, einschließlich großer Vektorregister wie ARM64 SVE.

Für registers 64-bits or less (for example, 1-8 bytes), use get_registerValue and put_registerValue in IDiaStackWalkHelper.

Siehe auch