ルーチン
LARGE_INTEGER KeQueryPerformanceCounter( OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL ); PerformanceFrequency ... 1秒あたりのカウント数 return value ... カウンタの値
サンプルコード
LARGE_INTEGER Count; LARGE_INTEGER Freq; Count = KeQueryPerformanceCounter (&Freq); { LONGLONG TotalSecs = Count.QuadPart / Freq.QuadPart; // total seconds LONGLONG Days = (TotalSecs / (3600 * 24)); // days LONGLONG Hours = ((TotalSecs % (3600 * 24)) / 3600); // Hours LONGLONG Mins = ((TotalSecs % (3600 * 24)) % 3600) / 60; // Minutes LONGLONG Secs = ((TotalSecs % (3600 * 24)) % 3600) % 60; // seconds KdPrint ("System Up Time:%I64u days %I64u Hours %I64u Minutes %.2I64u Seconds\n"); }
これカウンタが1周してしまったらマズイですね。
イベントログとか、別の手段で得たほうがいいと思います。