Sdílet prostřednictvím


IDiaStackWalkHelper3::get_registerValue

Načte hodnotu zadaného registru.

Syntaxe

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

Parametry

index

[v] Hodnota z výčtu CV_HREG_e určující, ze kterého registru se má získat hodnota. Tato hodnota parametru je primárně určená pro registry ARM64 SVE.

cbData

[v] Velikost vyrovnávací paměti, na kterou pbDataodkazuje . Může být 0 , když pbData je nullptr.

pcbData

[ven] Přijme velikost hodnoty registru v bajtech. Pokud pbData je nullptr a cbData je 0, pcbData je nastavena na požadovanou velikost pro hodnotu registru.

pbData

[out, volitelné] Vyrovnávací paměť přidělená volajícím, která obdrží hodnotu registru. Může se dotazovat nullptr pouze na požadovanou velikost.

Návratová hodnota

V případě úspěchu vrátí hodnotu S_OK; v opačném případě vrátí kód chyby.

Poznámky

Dotaz můžete předat pbData = nullptrcbData = 0 pouze požadované velikosti hodnoty registru. Metoda se nastaví pcbData na počet bajtů potřebných. Přidělte vyrovnávací paměť této velikosti a voláním znovu načtěte hodnotu.

Velikosti registrů se můžou lišit mezi architekturami procesoru. Tato metoda podporuje registry s proměnlivou velikostí, včetně rozsáhlých vektorových registrů, jako je ARM64 SVE.

Pro registry 64bitové nebo menší (například 1–8 bajtů) použijte get_registerValue a put_registerValue v IDiaStackWalkHelper.

Viz také