Функция GetProcessTimes (processthreadsapi.h)
Извлекает сведения о времени для указанного процесса.
Синтаксис
BOOL GetProcessTimes(
[in] HANDLE hProcess,
[out] LPFILETIME lpCreationTime,
[out] LPFILETIME lpExitTime,
[out] LPFILETIME lpKernelTime,
[out] LPFILETIME lpUserTime
);
Параметры
[in] hProcess
Дескриптор процесса, для которого запрашивается информация о времени. Дескриптор должен иметь право доступа к PROCESS_QUERY_INFORMATION или PROCESS_QUERY_LIMITED_INFORMATION . Дополнительные сведения см. в разделе Управление правами на доступ и безопасность процесса.
Windows Server 2003 и Windows XP: Дескриптор должен иметь право доступа к PROCESS_QUERY_INFORMATION .
[out] lpCreationTime
Указатель на структуру FILETIME , которая получает время создания процесса.
[out] lpExitTime
Указатель на структуру FILETIME , которая получает время выхода процесса. Если процесс не завершился, содержимое этой структуры не определено.
[out] lpKernelTime
Указатель на структуру FILETIME , получающую количество времени, которое процесс выполнял в режиме ядра. Определяется время выполнения каждого потока процесса в режиме ядра, а затем все эти периоды суммируются вместе, чтобы получить это значение.
[out] lpUserTime
Указатель на структуру FILETIME , получающую время выполнения процесса в пользовательском режиме. Определяется время выполнения каждого потока процесса в пользовательском режиме, а затем все эти значения суммируются для получения этого значения. Обратите внимание, что это значение может превышать количество затраченного в реальном времени (между lpCreationTime и lpExitTime), если процесс выполняется на нескольких ядрах ЦП.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Все значения времени выражаются с помощью структур данных FILETIME . Такая структура содержит два 32-разрядных значения, которые объединяются в 64-разрядное число 100-наносекундных единиц времени.
Время создания и выхода процесса — это точки во времени, выраженные в виде количества времени, прошедшего с полуночи 1 января 1601 года в Гринвиче, Англия. Существует несколько функций, которые приложение может использовать для преобразования таких значений в более полезные формы.
Режим ядра обработки и время пользовательского режима — это количество времени. Например, если процесс потратил одну секунду в режиме ядра, эта функция заполнит структуру FILETIME , указанную в параметре lpKernelTime , 64-разрядным значением в десять миллионов. Это число 100-наносекундных единиц в одну секунду.
Чтобы получить количество циклов ЦП, используемых потоками процесса, используйте функцию QueryProcessCycleTime .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | processthreadsapi.h (включая Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |