Функция 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 |