指定进程快照函数用于分配和释放内部步行标记结构的自定义函数。
语法
typedef struct {
void *Context;
void )(void *Context,DWORD Size) *(*AllocRoutine;
void((void *Context, void *Address) * )FreeRoutine;
} PSS_ALLOCATOR;
成员
Context
进程快照函数传递给 AllocRoutine 和 FreeRoutine 的任意指针大小值。
AllocRoutine
指向采用两个参数的 WINAPI 调用约定函数的指针。 它返回指向它分配的内存块的指针;如果分配失败,则返回 NULL 。
上下文
在 PSS_ALLOCATOR 中传递的上下文值。
大小
要分配的字节数。
FreeRoutine
指向采用两个参数的 WINAPI 调用约定函数的指针。 它解除分配 AllocRoutine 分配的内存块。
上下文
在 PSS_ALLOCATOR 中传递的上下文值。
地址
AllocRoutine 分配的内存块的地址。
注解
若要使用自定义内存分配函数,请将此结构传递给 PssWalkMarkerCreate。 否则,进程快照函数使用默认进程堆。
提供自定义函数 的PSS_ALLOCATOR 结构应在 PssWalkMarkerCreate 创建的步行标记的生存期内保持有效。
FreeRoutine 必须接受 NULL 地址参数,而不会失败。
使用调用 PssWalkMarkerCreate、PssWalkMarkerFree 和 PssWalkSnapshot 的同一线程从 PssWalkMarkerCreate、PssWalkMarkerFree 和 PssWalkSnapshot 调用自定义函数。 因此,自定义函数不需要是多线程的。
要求
| 最低受支持的客户端 | Windows 8.1 [仅限桌面应用] |
| 最低受支持的服务器 | Windows Server 2012 R2 [仅限桌面应用] |
| 标头 | processsnapshot.h |