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;