https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e2560a5cadb8449f3fb6a0...
commit e2560a5cadb8449f3fb6a032bf06625f6074c897 Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Sun Apr 21 11:28:58 2019 +0200 Commit: Timo Kreuzer timo.kreuzer@reactos.org CommitDate: Sat Jan 18 14:56:17 2020 +0100
[XDK] Fix x64 version of KeGetCurrentProcessorNumber() and add KeGetCurrentProcessorIndex() --- sdk/include/xdk/amd64/ke.h | 14 +++++++++++++- sdk/include/xdk/kefuncs.h | 13 ------------- sdk/include/xdk/x86/ke.h | 13 +++++++++++++ 3 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/sdk/include/xdk/amd64/ke.h b/sdk/include/xdk/amd64/ke.h index 90abb703119..64212336702 100644 --- a/sdk/include/xdk/amd64/ke.h +++ b/sdk/include/xdk/amd64/ke.h @@ -152,6 +152,15 @@ KeRestoreFloatingPointState( return STATUS_SUCCESS; }
+#if (NTDDI_VERSION >= NTDDI_WIN7) +FORCEINLINE +ULONG +KeGetCurrentProcessorIndex(VOID) +{ + return __readgsdword(0x1a4); +} +#endif + /* VOID * KeFlushIoBuffers( * IN PMDL Mdl, @@ -320,11 +329,14 @@ KeGetPcr(VOID) return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self)); }
+#if (NTDDI_VERSION >= NTDDI_WIN7) +_CRT_DEPRECATE_TEXT("KeGetCurrentProcessorNumber is deprecated. Use KeGetCurrentProcessorNumberEx or KeGetCurrentProcessorIndex instead.") +#endif FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID) { - return (ULONG)__readgsword(0x184); + return __readgsbyte(0x184); }
$endif /* _NTDDK_ */ diff --git a/sdk/include/xdk/kefuncs.h b/sdk/include/xdk/kefuncs.h index d33a8a4f34f..c710257751b 100644 --- a/sdk/include/xdk/kefuncs.h +++ b/sdk/include/xdk/kefuncs.h @@ -44,19 +44,6 @@ KeInvalidateRangeAllCaches( _In_ PVOID BaseAddress, _In_ ULONG Length); $endif (_NTDDK_) -$if (_NTIFS_) - -NTSTATUS -NTAPI -KeGetProcessorNumberFromIndex( - _In_ ULONG ProcIndex, - _Out_ PPROCESSOR_NUMBER ProcNumber); - -ULONG -NTAPI -KeGetProcessorIndexFromNumber( - _In_ PPROCESSOR_NUMBER ProcNumber); -$endif (_NTIFS_)
#if (NTDDI_VERSION >= NTDDI_WIN2K)
diff --git a/sdk/include/xdk/x86/ke.h b/sdk/include/xdk/x86/ke.h index 5578f7fca18..f7ef92c2972 100644 --- a/sdk/include/xdk/x86/ke.h +++ b/sdk/include/xdk/x86/ke.h @@ -169,6 +169,16 @@ NTAPI KeRestoreFloatingPointState( _In_ PKFLOATING_SAVE FloatSave);
+#if (NTDDI_VERSION >= NTDDI_WIN7) +FORCEINLINE +ULONG +NTAPI +KeGetCurrentProcessorIndex(VOID) +{ + return __readfsbyte(0x51); +} +#endif + /* VOID * KeFlushIoBuffers( * IN PMDL Mdl, @@ -315,6 +325,9 @@ typedef struct _KPCR { ULONG HalReserved[16]; } KPCR, *PKPCR;
+#if (NTDDI_VERSION >= NTDDI_WIN7) +_CRT_DEPRECATE_TEXT("KeGetCurrentProcessorNumber is deprecated. Use KeGetCurrentProcessorNumberEx or KeGetCurrentProcessorIndex instead.") +#endif FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID)