implemented the SystemInterruptInformation information class to fill the
structure with empty data to make process explorer shut up
Modified: trunk/reactos/config
Modified: trunk/reactos/include/ntos/zwtypes.h
Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c
Modified: trunk/reactos/ntoskrnl/include/internal/i386/ps.h
_____
Modified: trunk/reactos/config
--- trunk/reactos/config 2005-03-14 15:23:44 UTC (rev 14063)
+++ trunk/reactos/config 2005-03-14 16:04:12 UTC (rev 14064)
@@ -14,17 +14,17 @@
# be optimized for.
#
-OARCH := i486
+OARCH := i586
#
# Whether to compile in the kernel debugger
#
-KDBG := 0
+KDBG := 1
#
# Whether to compile for debugging
#
-DBG := 0
+DBG := 1
#
# Whether to compile a multiprocessor or single processor version
_____
Modified: trunk/reactos/include/ntos/zwtypes.h
--- trunk/reactos/include/ntos/zwtypes.h 2005-03-14 15:23:44 UTC
(rev 14063)
+++ trunk/reactos/include/ntos/zwtypes.h 2005-03-14 16:04:12 UTC
(rev 14064)
@@ -490,6 +490,19 @@
} SYSTEM_CACHE_INFORMATION;
+// SystemInterruptInformation (23)
+typedef
+struct _SYSTEM_INTERRUPT_INFORMATION
+{
+ ULONG ContextSwitches;
+ ULONG DpcCount;
+ ULONG DpcRate;
+ ULONG TimeIncrement;
+ ULONG DpcBypassCount;
+ ULONG ApcBypassCount;
+
+} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
+
// SystemDpcInformation (24)
typedef
struct _SYSTEM_DPC_INFORMATION
_____
Modified: trunk/reactos/ntoskrnl/ex/sysinfo.c
--- trunk/reactos/ntoskrnl/ex/sysinfo.c 2005-03-14 15:23:44 UTC (rev
14063)
+++ trunk/reactos/ntoskrnl/ex/sysinfo.c 2005-03-14 16:04:12 UTC (rev
14064)
@@ -1017,12 +1017,35 @@
return (STATUS_NOT_IMPLEMENTED);
}
-/* Class 23 - Interrupt Information */
+/* Class 23 - Interrupt Information for all processors */
QSI_DEF(SystemInterruptInformation)
{
- /* FIXME */
- DPRINT1("NtQuerySystemInformation - SystemInterruptInformation
not implemented\n");
- return (STATUS_NOT_IMPLEMENTED);
+ PKPRCB Prcb;
+ UINT i;
+ ULONG ti;
+ PSYSTEM_INTERRUPT_INFORMATION sii =
(PSYSTEM_INTERRUPT_INFORMATION)Buffer;
+
+ if(Size < KeNumberProcessors * sizeof(SYSTEM_INTERRUPT_INFORMATION))
+ {
+ return (STATUS_INFO_LENGTH_MISMATCH);
+ }
+
+ ti = KeQueryTimeIncrement();
+
+ Prcb = ((PKPCR)KPCR_BASE)->Prcb;
+ for (i = 0; i < KeNumberProcessors; i++)
+ {
+ sii->ContextSwitches = Prcb->KeContextSwitches;
+ sii->DpcCount = 0; /* FIXME */
+ sii->DpcRate = 0; /* FIXME */
+ sii->TimeIncrement = ti;
+ sii->DpcBypassCount = 0; /* FIXME */
+ sii->ApcBypassCount = 0; /* FIXME */
+ sii++;
+ Prcb = (PKPRCB)((ULONG_PTR)Prcb + PAGE_SIZE);
+ }
+
+ return STATUS_SUCCESS;
}
/* Class 24 - DPC Behaviour Information */
_____
Modified: trunk/reactos/ntoskrnl/include/internal/i386/ps.h
--- trunk/reactos/ntoskrnl/include/internal/i386/ps.h 2005-03-14
15:23:44 UTC (rev 14063)
+++ trunk/reactos/ntoskrnl/include/internal/i386/ps.h 2005-03-14
16:04:12 UTC (rev 14064)
@@ -102,7 +102,7 @@
ULONG CcCopyReadWait;
ULONG CcCopyReadNoWaitMiss;
ULONG KeAlignmentFixupCount;
- ULONG SpareCounter0;
+ ULONG KeContextSwitches;
ULONG KeDcacheFlushCount;
ULONG KeExceptionDispatchCount;
ULONG KeFirstLevelTbFills;