Set process and thread information in processor control block
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2023-02-09 17:30:24 +01:00
parent 47f399e987
commit e645cf664c
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
4 changed files with 10 additions and 2 deletions

View File

@ -445,6 +445,8 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
ULONG MxCsr;
UCHAR Number;
PKTHREAD CurrentThread;
PKTHREAD IdleThread;
PKTHREAD NextThread;
ULONG64 RspBase;
ULONG_PTR SetMember;
KPROCESSOR_STATE ProcessorState;

View File

@ -348,6 +348,8 @@ typedef struct _KPROCESSOR_STATE
typedef struct _KPROCESSOR_CONTROL_BLOCK
{
PKTHREAD CurrentThread;
PKTHREAD IdleThread;
PKTHREAD NextThread;
UCHAR Number;
ULONG_PTR SetMember;
KPROCESSOR_STATE ProcessorState;

View File

@ -214,9 +214,11 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock,
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 0;
/* Set current process and thread */
/* Set process and thread information */
ProcessorBlock->Prcb.CurrentThread = &KeInitialThread.ThreadControlBlock;
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
ProcessorBlock->Prcb.IdleThread = &KeInitialThread.ThreadControlBlock;
ProcessorBlock->Prcb.NextThread = NULL;
/* Set initial MXCSR register value */
ProcessorBlock->Prcb.MxCsr = INITIAL_MXCSR;

View File

@ -215,9 +215,11 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock,
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 0;
/* Set current process and thread */
/* Set process and thread information */
ProcessorBlock->Prcb.CurrentThread = &KeInitialThread.ThreadControlBlock;
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
ProcessorBlock->Prcb.IdleThread = &KeInitialThread.ThreadControlBlock;
ProcessorBlock->Prcb.NextThread = NULL;
}
/**