IDiaStackWalkHelper3::get_registerValue

Mengambil nilai register yang ditentukan.

Syntax

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

Parameter-parameternya

index

[di] Nilai dari CV_HREG_e enumerasi yang menentukan register mana yang akan mendapatkan nilainya. Nilai parameter ini terutama ditujukan untuk register ARM64 SVE.

cbData

[di] Ukuran, dalam byte, dari buffer yang diacu oleh pbData. Mungkin ketika 0pbData adalah nullptr.

pcbData

[out] Menerima ukuran, dalam byte, dari nilai register. Ketika pbData adalah nullptr dan cbData , 0pcbData diatur ke ukuran yang diperlukan untuk nilai register.

pbData

[out, opsional] Buffer yang dialokasikan pemanggil yang menerima nilai register. Mungkin untuk mengkueri nullptr ukuran yang diperlukan saja.

Mengembalikan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode kesalahan.

Komentar

Anda dapat meneruskan pbData = nullptrcbData = 0 untuk mengkueri hanya ukuran nilai register yang diperlukan. Metode ini diatur pcbData ke jumlah byte yang diperlukan. Alokasikan buffer dengan ukuran tersebut dan panggil lagi untuk mengambil nilai.

Ukuran register dapat berbeda antara arsitektur CPU. Metode ini mendukung register berukuran variabel, termasuk register vektor besar seperti ARM64 SVE.

Untuk mendaftarkan 64-bit atau kurang (misalnya, 1-8 byte), gunakan get_registerValue dan put_registerValue di IDiaStackWalkHelper.

Lihat juga