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


функция обратного вызова PREAD_PROCESS_MEMORY_ROUTINE (dbghelp.h)

Определяемая приложением функция обратного вызова, используемая с функцией StackWalk64 . Он вызывается, когда StackWalk64 требуется считывать память из адресного пространства процесса.

Тип PREAD_PROCESS_MEMORY_ROUTINE64 определяет указатель на эту функцию обратного вызова. ReadProcessMemoryProc64 — это заполнитель для имени определяемой приложением функции.

Синтаксис

PREAD_PROCESS_MEMORY_ROUTINE PreadProcessMemoryRoutine;

BOOL PreadProcessMemoryRoutine(
  [in]  HANDLE hProcess,
  [in]  DWORD lpBaseAddress,
  [out] PVOID lpBuffer,
  [in]  DWORD nSize,
  [out] PDWORD lpNumberOfBytesRead
)
{...}

Параметры

[in] hProcess

Дескриптор процесса, для которого создается трассировка стека.

[in] lpBaseAddress

Базовый адрес считываемой памяти.

[out] lpBuffer

Указатель на буфер, который получает считываемую память.

[in] nSize

Размер считываемой памяти в байтах.

[out] lpNumberOfBytesRead

Указатель на переменную, которая получает количество фактически прочитанных байтов.

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

Если функция выполняется успешно, возвращаемое значение должно иметь значение TRUE. Если функция завершается сбоем, возвращаемое значение должно иметь значение FALSE.

Комментарии

Во многих случаях эта функция может лучше всего обслуживать обратный вызов с помощью соответствующего вызова ReadProcessMemory.

Эта функция должна считывать как можно больше запрошенной памяти. Функция StackWalk64 обрабатывает случай, когда считывается только часть запрошенной памяти.

Эта функция обратного вызова заменяет функцию обратного вызова PREAD_PROCESS_MEMORY_ROUTINE . PREAD_PROCESS_MEMORY_ROUTINE определяется в dbghelp.h следующим образом.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64
#else
typedef
BOOL
(__stdcall *PREAD_PROCESS_MEMORY_ROUTINE)(
    __in HANDLE hProcess,
    __in DWORD lpBaseAddress,
    __out_bcount(nSize) PVOID lpBuffer,
    __in DWORD nSize,
    __out PDWORD lpNumberOfBytesRead
    );
#endif

Требования

Требование Значение
Целевая платформа Windows
Header dbghelp.h
Распространяемые компоненты DbgHelp.dll 5.1 или более поздней версии

См. также раздел

Функции DbgHelp

ReadProcessMemory

StackWalk64