Всем добрый день!
Использую следующую конструкцию:
LONGLONG ProcessCreateTime;
if((pCurrProc = PsGetCurrentProcess()) != NULL)
ProcessCreateTime = PsGetProcessCreateTimeQuadPart(pCurrProc);
else
ProcessCreateTime = 0;
и ProcessCreateTime принимает иногда отрицательные значения, или просто невалидные например 278583392. Подскажите пожалуйста в чем может быть проблема.
смотрел в интернете и в документации по PsGetProcessCreateTimeQuadPart, таких вариантов не встречалось.
Функции PsGetCurrentProcessId и KeQuerySystemTime возвращают верные значения. Смотрел в дебагере структуру pCurrProc для текущего процесса и там видел имя этого процесса, поэтому похоже структура валидна. Сейчас не знаю какие еще провести исследования.
Немного продвинулся.
D>D>LONGLONG ProcessCreateTime;
D>if((pCurrProc = PsGetCurrentProcess()) != NULL)
D> ProcessCreateTime = PsGetProcessCreateTimeQuadPart(pCurrProc);
D>else
D> ProcessCreateTime = 0;
D>
при копировании в ProcessCreateTime копируются только первые 4 байта. все pragma выставлены верно, поэтому посмотрю натсройки проекта, может там где-то есть влияние.