From 71bd58f81c9fc2a043565e1fb463db9dd9e2b868 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Thu, 9 Dec 2010 21:47:08 +0100 Subject: ntdll: Change NtQuerySystemInformation to return 100ns ticks for SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION info class --- dlls/ntdll/nt.c | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index 7ad56e4..d9f0398 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -64,6 +64,8 @@ #include #endif +#define SEC_TO_TICKSPERSEC(x) (ULONGLONG)10000000 * x / sysconf(_SC_CLK_TCK) + WINE_DEFAULT_DEBUG_CHANNEL(ntdll); /* @@ -1603,9 +1605,9 @@ NTSTATUS WINAPI NtQuerySystemInformation( { sppi = RtlAllocateHeap(GetProcessHeap(), 0, sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION)); - sppi->IdleTime.QuadPart = idle; - sppi->KernelTime.QuadPart = sys; - sppi->UserTime.QuadPart = usr; + sppi->IdleTime.QuadPart = SEC_TO_TICKSPERSEC(idle); + sppi->KernelTime.QuadPart = SEC_TO_TICKSPERSEC(sys); + sppi->UserTime.QuadPart = SEC_TO_TICKSPERSEC(usr); cpus = 1; len = sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION); } @@ -1622,17 +1624,17 @@ NTSTATUS WINAPI NtQuerySystemInformation( out_cpus --; if (name[3]=='0') /* first cpu */ { - sppi->IdleTime.QuadPart = idle; - sppi->KernelTime.QuadPart = sys; - sppi->UserTime.QuadPart = usr; + sppi->IdleTime.QuadPart = SEC_TO_TICKSPERSEC(idle); + sppi->KernelTime.QuadPart = SEC_TO_TICKSPERSEC(sys); + sppi->UserTime.QuadPart = SEC_TO_TICKSPERSEC(usr); } else /* new cpu */ { len = sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION) * (cpus+1); sppi = RtlReAllocateHeap(GetProcessHeap(), 0, sppi, len); - sppi[cpus].IdleTime.QuadPart = idle; - sppi[cpus].KernelTime.QuadPart = sys; - sppi[cpus].UserTime.QuadPart = usr; + sppi[cpus].IdleTime.QuadPart = SEC_TO_TICKSPERSEC(idle); + sppi[cpus].KernelTime.QuadPart = SEC_TO_TICKSPERSEC(sys); + sppi[cpus].UserTime.QuadPart = SEC_TO_TICKSPERSEC(usr); cpus++; } } -- 1.7.1