Поделиться через


IDiaStackWalkHelper3::get_registerValue

Извлекает значение указанного регистра.

Синтаксис

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

Параметры

index

[in] Значение из CV_HREG_e перечисления, указывающее, какой регистр будет получен из значения. Это значение параметра в основном предназначено для регистров SVE ARM64.

cbData

[in] Размер буфера в байтах, на который указывает.pbData Может быть, когда 0pbData есть nullptr.

pcbData

[out] Получает размер в байтах регистра. Если pbData значение имеет значение и cbData имеет nullptr0значение, pcbData задайте требуемый размер для значения регистра.

pbData

[out, необязательный] Выделенный вызывающим буфером, который получает значение регистра. Может потребоваться nullptr запрашивать только требуемый размер.

Возвращаемое значение

В случае успешного выполнения возвращается S_OK; в противном случае возвращается код ошибки.

Замечания

Можно передать pbData = nullptr запрос cbData = 0 только к требуемому размеру регистра. Метод задает pcbData количество необходимых байтов. Выделите буфер этого размера и снова вызовите для получения значения.

Размеры регистров могут отличаться от архитектур ЦП. Этот метод поддерживает регистры переменного размера, включая большие регистры векторов, такие как ARM64 SVE.

Для регистров 64-разрядных или менее (например, 1–8 байт) используйте get_registerValue и put_registerValue в IDiaStackWalkHelper.

См. также