André Hentschel : ntdll: Respect multiple CPUs when faking values.
Alexandre Julliard
julliard at winehq.org
Tue Jan 4 09:47:28 CST 2011
Module: wine
Branch: master
Commit: 40294182c1554a97dcfa8414b609b6f8de8f5239
URL: http://source.winehq.org/git/wine.git/?a=commit;h=40294182c1554a97dcfa8414b609b6f8de8f5239
Author: André Hentschel <nerv at dawncrow.de>
Date: Mon Jan 3 20:27:00 2011 +0100
ntdll: Respect multiple CPUs when faking values.
---
dlls/ntdll/nt.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 7ad56e4..ee78aec 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -1647,17 +1647,18 @@ NTSTATUS WINAPI NtQuerySystemInformation(
if (cpus == 0)
{
static int i = 1;
-
- sppi = RtlAllocateHeap(GetProcessHeap(),0,sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION));
-
- memset(sppi, 0 , sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION));
+ int n;
+ cpus = min(NtCurrentTeb()->Peb->NumberOfProcessors, out_cpus);
+ len = sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION) * cpus;
+ sppi = RtlAllocateHeap(GetProcessHeap(), 0, len);
FIXME("stub info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION\n");
-
/* many programs expect these values to change so fake change */
- len = sizeof(SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION);
- sppi->KernelTime.QuadPart = 1 * i;
- sppi->UserTime.QuadPart = 2 * i;
- sppi->IdleTime.QuadPart = 3 * i;
+ for (n = 0; n < cpus; n++)
+ {
+ sppi[n].KernelTime.QuadPart = 1 * i;
+ sppi[n].UserTime.QuadPart = 2 * i;
+ sppi[n].IdleTime.QuadPart = 3 * i;
+ }
i++;
}
More information about the wine-cvs
mailing list