From aa17be6eb3579a08c49d396b668e59ba0e4b7cc4 Mon Sep 17 00:00:00 2001 From: belliash Date: Sun, 29 Oct 2023 19:59:21 +0100 Subject: [PATCH] Implement KeSetTargetProcessorDpc() routine --- sdk/xtdk/kefuncs.h | 5 +++++ xtoskrnl/ke/dpc.c | 21 +++++++++++++++++++++ xtoskrnl/xtoskrnl.spec | 1 + 3 files changed, 27 insertions(+) diff --git a/sdk/xtdk/kefuncs.h b/sdk/xtdk/kefuncs.h index a2a75f2..108d3f3 100644 --- a/sdk/xtdk/kefuncs.h +++ b/sdk/xtdk/kefuncs.h @@ -69,4 +69,9 @@ KeReleaseSemaphore(IN PKSEMAPHORE Semaphore, IN LONG Adjustment, IN BOOLEAN Wait); +XTAPI +VOID +KeSetTargetProcessorDpc(IN PKDPC Dpc, + IN CCHAR Number); + #endif /* __XTDK_KEFUNCS_H */ diff --git a/xtoskrnl/ke/dpc.c b/xtoskrnl/ke/dpc.c index cd521a7..6fb34df 100644 --- a/xtoskrnl/ke/dpc.c +++ b/xtoskrnl/ke/dpc.c @@ -91,3 +91,24 @@ KepRetireDpcList(IN PKPROCESSOR_CONTROL_BLOCK Prcb) { UNIMPLEMENTED; } + +/** + * Sets the target processor number for DPC. + * + * @param Dpc + * Supplies a pointer to the DPC object. + * + * @param Number + * Supplies the target processor number. + * + * @return This routine does not return any value. + * + * @since NT 4.0 + */ +XTAPI +VOID +KeSetTargetProcessorDpc(IN PKDPC Dpc, + IN CCHAR Number) +{ + Dpc->Number = MAXIMUM_PROCESSORS + Number; +} diff --git a/xtoskrnl/xtoskrnl.spec b/xtoskrnl/xtoskrnl.spec index a0d83a6..9ecfd35 100644 --- a/xtoskrnl/xtoskrnl.spec +++ b/xtoskrnl/xtoskrnl.spec @@ -16,6 +16,7 @@ @ stdcall KeInitializeTimerEx(ptr long) @ stdcall KeReadSemaphoreState(ptr) @ stdcall KeReleaseSemaphore(ptr long long long) +@ stdcall KeSetTargetProcessorDpc(ptr long) @ stdcall RtlCompareMemory(ptr ptr long) @ stdcall RtlCopyMemory(ptr ptr long) @ stdcall RtlFillMemory(ptr long long)