什么是'快照'功能?

时间:2012-12-29 20:51:33

标签: c++ windows header comments

我的英语不太好。我在tlhelp32.h版本1.0中看到了这一点:

/****** Shapshot function **********************************************/

HANDLE
WINAPI
CreateToolhelp32Snapshot(
    DWORD dwFlags,
    DWORD th32ProcessID
    );

Ln31。 这是什么意思?

2 个答案:

答案 0 :(得分:4)

这意味着它将在系统中创建进程快照快照是指在给定时间点的某种状态。创建快照后,可能会启动新进程或旧进程可能会结束,但这些更改不会反映在快照中。

更新:我甚至没有注意到这个错字,它应该是snapshot而不是shapshot

答案 1 :(得分:1)

CreateToolhelp32Snapshot()是一个可以帮助您迭代所有正在运行的进程的函数。或者进程使用的资源。像进程加载的所有DLL一样。或者进程使用的线程。等等。

总的来说,这是一次危险的行动。因为进程继续执行并且可能加载或卸载DLL或启动或结束线程,所以中迭代它们。这通常不会很好地结束,当先前迭代的资源不再存在时,很难要求“给我下一个”。

因此,CreateToolhelp32Snapshot()所做的非常简单地是暂停该过程并复制有关该过程使用的资源的所有信息。因此,当它返回时,您可以安全地调用Module32First / Next和Thread32First / Next来迭代复制的信息。它会创建进程状态的快照。就像一张照片,一个冰冷的时刻。 btw没有记录它获取过程状态的原子副本的确切方式。

请注意,您获得的信息总是陈旧的,这是不可避免的。并注意dwFlags参数,它允许您询问要迭代的特定资源。这有助于它使快照更快,消耗更少的内存。