diff --git a/ntoskrnl/ke/amd64/stubs.c b/ntoskrnl/ke/amd64/stubs.c index f63485eb788..9f8ed16e0de 100644 --- a/ntoskrnl/ke/amd64/stubs.c +++ b/ntoskrnl/ke/amd64/stubs.c @@ -278,13 +278,11 @@ KiSwapProcess(IN PKPROCESS NewProcess, IN PKPROCESS OldProcess) { PKIPCR Pcr = (PKIPCR)KeGetPcr(); -#ifdef CONFIG_SMP - LONG SetMember; +#ifdef CONFIG_SMP /* Update active processor mask */ - SetMember = (LONG)Pcr->SetMember; - InterlockedXor((PLONG)&NewProcess->ActiveProcessors, SetMember); - InterlockedXor((PLONG)&OldProcess->ActiveProcessors, SetMember); + InterlockedXor64((PLONG64)&NewProcess->ActiveProcessors, Pcr->Prcb.SetMember); + InterlockedXor64((PLONG64)&OldProcess->ActiveProcessors, Pcr->Prcb.SetMember); #endif /* Update CR3 */ diff --git a/sdk/include/ndk/ketypes.h b/sdk/include/ndk/ketypes.h index 839a0d77d74..7a8c614a8de 100644 --- a/sdk/include/ndk/ketypes.h +++ b/sdk/include/ndk/ketypes.h @@ -1988,7 +1988,7 @@ typedef struct _KPROCESS UCHAR Iopl; UCHAR Unused; #endif - volatile ULONG ActiveProcessors; + volatile KAFFINITY ActiveProcessors; ULONG KernelTime; ULONG UserTime; LIST_ENTRY ReadyListHead;