From c3f828c7ee6cc85154e89adad1e296cdbb480a57 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Thu, 23 Jul 2009 19:37:09 +0000 Subject: [PATCH] - Use the KiProcessorBlock array to loop the PRCBs in a portable way svn path=/trunk/; revision=42162 --- reactos/ntoskrnl/ex/sysinfo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/ex/sysinfo.c b/reactos/ntoskrnl/ex/sysinfo.c index 4be096948f3..bab108972ed 100644 --- a/reactos/ntoskrnl/ex/sysinfo.c +++ b/reactos/ntoskrnl/ex/sysinfo.c @@ -956,9 +956,11 @@ QSI_DEF(SystemProcessorPerformanceInformation) } CurrentTime.QuadPart = KeQueryInterruptTime(); - Prcb = KeGetPcr()->Prcb; for (i = 0; i < KeNumberProcessors; i++) { + /* Get the PRCB on this processor */ + Prcb = KiProcessorBlock[i]; + /* Calculate total user and kernel times */ TotalTime = Prcb->IdleThread->KernelTime + Prcb->IdleThread->UserTime; Spi->IdleTime.QuadPart = UInt32x32To64(TotalTime, KeMaximumIncrement); @@ -968,7 +970,6 @@ QSI_DEF(SystemProcessorPerformanceInformation) Spi->InterruptTime.QuadPart = UInt32x32To64(Prcb->InterruptTime, KeMaximumIncrement); Spi->InterruptCount = Prcb->InterruptCount; Spi++; - Prcb = (PKPRCB)((ULONG_PTR)Prcb + PAGE_SIZE); } return STATUS_SUCCESS;