getProcessTimes 函数 (processthreadsapi.h)

检索指定进程的计时信息。

语法

BOOL GetProcessTimes(
  [in]  HANDLE     hProcess,
  [out] LPFILETIME lpCreationTime,
  [out] LPFILETIME lpExitTime,
  [out] LPFILETIME lpKernelTime,
  [out] LPFILETIME lpUserTime
);

参数

[in] hProcess

要获取其计时信息的进程的句柄。 句柄必须具有 PROCESS_QUERY_INFORMATIONPROCESS_QUERY_LIMITED_INFORMATION 访问权限。 有关详细信息,请参阅 进程安全和访问权限

Windows Server 2003 和 Windows XP: 句柄必须具有 PROCESS_QUERY_INFORMATION 访问权限。

[out] lpCreationTime

指向 FILETIME 结构的指针,该结构接收进程的创建时间。

[out] lpExitTime

指向 FILETIME 结构的指针,该结构接收进程的退出时间。 如果进程尚未退出,则此结构的内容未定义。

[out] lpKernelTime

指向 FILETIME 结构的指针,该结构接收进程在内核模式下执行的时间。 确定进程的每个线程在内核模式下执行的时间,然后将所有这些时间相加以获取此值。

[out] lpUserTime

指向 FILETIME 结构的指针,该结构接收进程在用户模式下执行的时间。 确定进程的每个线程在用户模式下执行的时间,然后将所有这些时间相加以获取此值。 请注意,如果进程跨多个 CPU 核心执行,则此值可能会超过 lpCreationTimelpExitTime) 之间经过的实时 (量。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

所有时间都使用 FILETIME 数据结构表示。 此类结构包含两个 32 位值,这些值组合在一起形成 100 纳秒时间单位的 64 位计数。

进程创建和退出时间是时间点,表示自 1601 年 1 月 1 日午夜以来在英国格林威治经过的时间量。 应用程序可以使用多个函数将此类值转换为更普遍有用的形式。

进程内核模式和用户模式时间是时间。 例如,如果进程在内核模式下花费了一秒钟,此函数将使用 64 位值 1000 万填充 lpKernelTime 指定的 FILETIME 结构。 这是一秒内 100 纳秒单位的数目。

若要检索进程线程使用的 CPU 时钟周期数,请使用 QueryProcessCycleTime 函数。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 processthreadsapi.h (包括 Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

FILETIME

FileTimeToDosDateTime

FileTimeToLocalFileTime

FileTimeToSystemTime

进程和线程函数

进程