Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.