Dela via


IDiaStackWalkHelper3::get_registerValue

Hämtar värdet för det angivna registret.

Syntax

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

Parametrar

index

[i] Ett värde från CV_HREG_e uppräkningen som anger vilket register som ska hämtas från. Det här parametervärdet är främst avsett för ARM64 SVE-register.

cbData

[i] Storlek, i byte, på bufferten som pekas på av pbData. Kan vara 0 när pbData är nullptr.

pcbData

[ut] Tar emot storleken, i byte, på registervärdet. När pbData är nullptr och cbData är 0pcbData , anges till den storlek som krävs för registervärdet.

pbData

[ut, valfritt] Anroparallokerad buffert som tar emot registervärdet. Kan vara nullptr att fråga den storlek som krävs.

Returvärde

Om det lyckas returnerar S_OK. Annars returneras en felkod.

Anmärkningar

Du kan skicka pbData = nullptr med cbData = 0 för att fråga endast den nödvändiga storleken på registervärdet. Metoden anger pcbData det antal byte som behövs. Allokera en buffert av den storleken och anropa igen för att hämta värdet.

Registerstorlekar kan skilja sig mellan CPU-arkitekturer. Den här metoden stöder register med variabel storlek, inklusive stora vektorregister som ARM64 SVE.

För registrerar 64-bitars eller mindre (till exempel 1-8 byte), använd get_registerValue och put_registerValue i IDiaStackWalkHelper.

Se även