https://git.reactos.org/?p=reactos.git;a=commitdiff;h=13d9d3ebbf300003c318429d6bcd23ebb027af4e

commit 13d9d3ebbf300003c318429d6bcd23ebb027af4e
Author:     Pierre Schweitzer <pie...@reactos.org>
AuthorDate: Sun Dec 9 19:30:07 2018 +0100
Commit:     Pierre Schweitzer <pie...@reactos.org>
CommitDate: Sun Dec 9 19:30:07 2018 +0100

    [NTOSKRNL] Also account PRCBs for Io operations counters
---
 ntoskrnl/ex/sysinfo.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/ntoskrnl/ex/sysinfo.c b/ntoskrnl/ex/sysinfo.c
index b43aa2c1f9..1d8e1c539f 100644
--- a/ntoskrnl/ex/sysinfo.c
+++ b/ntoskrnl/ex/sysinfo.c
@@ -695,6 +695,19 @@ QSI_DEF(SystemPerformanceInformation)
     Spi->IoReadOperationCount = IoReadOperationCount;
     Spi->IoWriteOperationCount = IoWriteOperationCount;
     Spi->IoOtherOperationCount = IoOtherOperationCount;
+    for (i = 0; i < KeNumberProcessors; i ++)
+    {
+        Prcb = KiProcessorBlock[i];
+        if (Prcb)
+        {
+            Spi->IoReadTransferCount.QuadPart += 
Prcb->IoReadTransferCount.QuadPart;
+            Spi->IoWriteTransferCount.QuadPart += 
Prcb->IoWriteTransferCount.QuadPart;
+            Spi->IoOtherTransferCount.QuadPart += 
Prcb->IoOtherTransferCount.QuadPart;
+            Spi->IoReadOperationCount += Prcb->IoReadOperationCount;
+            Spi->IoWriteOperationCount += Prcb->IoWriteOperationCount;
+            Spi->IoOtherOperationCount += Prcb->IoOtherOperationCount;
+        }
+    }
 
     Spi->AvailablePages = (ULONG)MmAvailablePages;
     /*
@@ -805,7 +818,6 @@ QSI_DEF(SystemPerformanceInformation)
         }
     }
 
-
     return STATUS_SUCCESS;
 }
 

Reply via email to