From 4e4861b39294a4e4b04935c79dbf3be83adc04c6 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Mon, 25 Jul 2016 20:45:48 +0000 Subject: [PATCH] [NTOSKRNL_VISTA] Implement KeQueryActiveProcessorCount(). CORE-11674 svn path=/trunk/; revision=72001 --- .../lib/drivers/ntoskrnl_vista/CMakeLists.txt | 1 + reactos/sdk/lib/drivers/ntoskrnl_vista/ke.c | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 reactos/sdk/lib/drivers/ntoskrnl_vista/ke.c 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); +}