diff --git a/reactos/sdk/lib/drivers/ntoskrnl_vista/CMakeLists.txt b/reactos/sdk/lib/drivers/ntoskrnl_vista/CMakeLists.txt index 39d9d1279c8..0fdafabeb91 100644 --- a/reactos/sdk/lib/drivers/ntoskrnl_vista/CMakeLists.txt +++ b/reactos/sdk/lib/drivers/ntoskrnl_vista/CMakeLists.txt @@ -5,6 +5,7 @@ add_definitions(-DUNICODE -D_UNICODE -D__NTOSKRNL__ -D_NTOSKRNL_ -D_NTSYSTEM_) list(APPEND SOURCE fsrtl.c + ke.c rtl.c) add_library(ntoskrnl_vista ${SOURCE}) diff --git a/reactos/sdk/lib/drivers/ntoskrnl_vista/ke.c b/reactos/sdk/lib/drivers/ntoskrnl_vista/ke.c new file mode 100644 index 00000000000..638af493115 --- /dev/null +++ b/reactos/sdk/lib/drivers/ntoskrnl_vista/ke.c @@ -0,0 +1,27 @@ +/* + * PROJECT: ReactOS Kernel - Vista+ APIs + * LICENSE: GPL v2 - See COPYING in the top level directory + * FILE: lib/drivers/ntoskrnl_vista/ke.c + * PURPOSE: Ke functions of Vista+ + * PROGRAMMERS: Pierre Schweitzer + */ + +#include +#include + +NTKERNELAPI +ULONG +NTAPI +KeQueryActiveProcessorCount(OUT PKAFFINITY ActiveProcessors OPTIONAL) +{ + RTL_BITMAP Bitmap; + KAFFINITY ActiveMap = KeQueryActiveProcessors(); + + if (ActiveProcessors != NULL) + { + *ActiveProcessors = ActiveMap; + } + + RtlInitializeBitMap(&Bitmap, &ActiveMap, sizeof(ActiveMap) * 8); + return RtlNumberOfSetBits(&Bitmap); +}