Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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.