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;