
Функция GetProcessTimes
BOOL GetProcessTimes
(
HANDLE hProcess, // дескриптор процесса
LPFILETIME lpCreationTime, // время создания процесса
LPFILETIME lpExitTime, // время выхода из работы процесса
LPFILETIME lpKernelTime, // время, работы процесса в режиме ядра
LPFILETIME lpUserTime // время, работы процесса в режиме пользователя
);
Параметры:
hProcess – дескриптор процесса, информация о распределении интервалов времени которого разыскивается. Этот дескриптор должен быть создан с правами доступа PROCESS_QUERY_INFORMATION. Для получения дополнительной информации, см. статью Защита процесса и права доступа.
lpCreationTime – указатель на структуру FILETIME, которая принимает время создания процесса. Так как время возвращается по количеству интервалов по 100нс., отсчитанных с полуночи 1 января 1601 года, то для получения нормального времени необходимо воспользоваться функцией FileTimeToSystemTime.
lpExitTime – указатель на структуру FILETIME, которая принимает время выхода из работы процесса. Если процесс не вышел из работы, содержание этой структуры не определенное.
lpKernelTime – указатель на структуру FILETIME, которая принимает величину времени, в течение которого процесс выполнялся в привилегированном режиме (режиме ядра). Чтобы получить это значение, определяется время, в ходе которого каждый из потоков процесса выполнялся в режиме ядра, а затем все эти периоды суммируются вместе.
lpUserTime – указатель на структуру FILETIME, которая принимает величину времени, в течение которого процесс выполнялся в непривилегированном (пользовательском) режиме. Чтобы получить это значение, определяется время, в ходе которого каждый из потоков процесса выполнялся в режиме ядра, а затем все эти периоды суммируются вместе.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения – не ноль. Если функция завершается с ошибкой, величина возвращаемого значения – ноль. Чтобы получать расширенные данные об ошибках, вызовите GetLastError.
Контрольные вопросы:
1. Из чего состоят процесс и поток в среде Windows?
2. Создание и завершение процесса.
3. Каковы параметры функции CreateProcess?
4. Назначение и состав структуры PROCESS_INFORMATION.
5. Назначение и состав структуры STARTUP_INFO.
6. Назначение и состав структуры LPSECURITY_ATTRIBUTES.
Для самостоятельного изучения:
1. Функции ExitProcess, GetCurrentProcess, GetPriorityClass, GetProcessVersion, GetProcessWorkingSetSize, SetPriorityClass, SetProcessWorkingSetSize.