From 47f399e987f0f5b0a5f8c3a44d0694ee7a5941b3 Mon Sep 17 00:00:00 2001 From: belliash Date: Thu, 9 Feb 2023 00:02:45 +0100 Subject: [PATCH] Set current process and thread in processor control block --- xtoskrnl/ar/amd64/procsup.c | 4 ++++ xtoskrnl/ar/i686/procsup.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/xtoskrnl/ar/amd64/procsup.c b/xtoskrnl/ar/amd64/procsup.c index 79f7e55..76a0dba 100644 --- a/xtoskrnl/ar/amd64/procsup.c +++ b/xtoskrnl/ar/amd64/procsup.c @@ -214,6 +214,10 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock, ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0; ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 0; + /* Set current process and thread */ + ProcessorBlock->Prcb.CurrentThread = &KeInitialThread.ThreadControlBlock; + ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock; + /* Set initial MXCSR register value */ ProcessorBlock->Prcb.MxCsr = INITIAL_MXCSR; } diff --git a/xtoskrnl/ar/i686/procsup.c b/xtoskrnl/ar/i686/procsup.c index 8242cce..2aac25e 100644 --- a/xtoskrnl/ar/i686/procsup.c +++ b/xtoskrnl/ar/i686/procsup.c @@ -214,6 +214,10 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock, /* Clear DR6 and DR7 registers */ ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0; ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 0; + + /* Set current process and thread */ + ProcessorBlock->Prcb.CurrentThread = &KeInitialThread.ThreadControlBlock; + ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock; } /**