GetSystemTimes Function

Retrieves system timing information. On a multiprocessor system, the values returned are the sum of the designated times across all processors.

Syntax

C++
BOOL WINAPI GetSystemTimes(
  __out_opt  LPFILETIME lpIdleTime,
  __out_opt  LPFILETIME lpKernelTime,
  __out_opt  LPFILETIME lpUserTime
);

Parameters

lpIdleTime [out, optional]

A pointer to a FILETIME structure that receives the amount of time that the system has been idle.

lpKernelTime [out, optional]

A pointer to a FILETIME structure that receives the amount of time that the system has spent executing in Kernel mode (including all threads in all processes, on all processors).

lpUserTime [out, optional]

A pointer to a FILETIME structure that receives the amount of time that the system has spent executing in User mode (including all threads in all processes, on all processors).

Return Value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

To compile an application that uses this function, define _WIN32_WINNT as 0x0501 or later. For more information, see Using the Windows Headers.

Requirements

Minimum supported clientWindows Vista, Windows XP with SP1
Minimum supported serverWindows Server 2003
HeaderWinbase.h (include Windows.h)
LibraryKernel32.lib
DLLKernel32.dll

See Also

FILETIME
System Time
Time Functions

Send comments about this topic to Microsoft

Build date: 10/8/2009

Tags :


Community Content

Thomas Lee
Converting the results to .Net TimeSpan

You can use this function from .Net by importing with the folowing C#signature:

[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool GetSystemTimes(outFILETIME lpIdleTime, outFILETIME lpKernelTime, outFILETIME lpUserTime);


and then convert the results using the function:

privatestaticTimeSpan GetTimeSpanFromFileTime(FILETIME time)
{
returnTimeSpan.FromMilliseconds((((ulong)time.dwHighDateTime << 32) + (uint)time.dwLowDateTime) / 10000.0);
}
Tags : c# .net

Page view tracker