Udostępnij przez


IDiaStackWalkHelper3::get_registerValue

Pobiera wartość określonego rejestru.

Składnia

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

Parametry

index

[in] Wartość z CV_HREG_e wyliczenia określająca, z którego rejestru ma zostać pobrana wartość. Ta wartość parametru jest przeznaczona głównie dla rejestrów SVE ARM64.

cbData

[in] Rozmiar w bajtach buforu wskazywany przez pbData. Może to być 0 , gdy pbData ma wartość nullptr.

pcbData

[out] Odbiera rozmiar w bajtach wartości rejestru. Gdy pbData parametr to nullptr i cbData ma 0wartość , pcbData jest ustawiony na wymagany rozmiar dla wartości rejestru.

pbData

[out, optional] Bufor przydzielony przez obiekt wywołujący, który odbiera wartość rejestru. Może być zapytanie nullptr tylko o wymagany rozmiar.

Wartość zwracana

Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu.

Uwagi

Polecenie można przekazać pbData = nullptrcbData = 0 do zapytania tylko wymagany rozmiar wartości rejestru. Metoda ustawia pcbData liczbę potrzebnych bajtów. Przydziel bufor tego rozmiaru i wywołaj ponownie, aby pobrać wartość.

Rozmiary rejestrowania mogą się różnić między architekturami procesora CPU. Ta metoda obsługuje rejestry o zmiennym rozmiarze, w tym duże rejestry wektorów, takie jak ARM64 SVE.

W przypadku rejestrów 64-bitowych lub mniejszych (na przykład 1–8 bajtów) użyj poleceń get_registerValue i put_registerValue w IDiaStackWalkHelper.

Zobacz także