Set process and thread information in processor control block
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
47f399e987
commit
e645cf664c
@ -445,6 +445,8 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
|
|||||||
ULONG MxCsr;
|
ULONG MxCsr;
|
||||||
UCHAR Number;
|
UCHAR Number;
|
||||||
PKTHREAD CurrentThread;
|
PKTHREAD CurrentThread;
|
||||||
|
PKTHREAD IdleThread;
|
||||||
|
PKTHREAD NextThread;
|
||||||
ULONG64 RspBase;
|
ULONG64 RspBase;
|
||||||
ULONG_PTR SetMember;
|
ULONG_PTR SetMember;
|
||||||
KPROCESSOR_STATE ProcessorState;
|
KPROCESSOR_STATE ProcessorState;
|
||||||
|
@ -348,6 +348,8 @@ typedef struct _KPROCESSOR_STATE
|
|||||||
typedef struct _KPROCESSOR_CONTROL_BLOCK
|
typedef struct _KPROCESSOR_CONTROL_BLOCK
|
||||||
{
|
{
|
||||||
PKTHREAD CurrentThread;
|
PKTHREAD CurrentThread;
|
||||||
|
PKTHREAD IdleThread;
|
||||||
|
PKTHREAD NextThread;
|
||||||
UCHAR Number;
|
UCHAR Number;
|
||||||
ULONG_PTR SetMember;
|
ULONG_PTR SetMember;
|
||||||
KPROCESSOR_STATE ProcessorState;
|
KPROCESSOR_STATE ProcessorState;
|
||||||
|
@ -214,9 +214,11 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock,
|
|||||||
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
|
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
|
||||||
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 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 = &KeInitialThread.ThreadControlBlock;
|
||||||
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
|
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
|
||||||
|
ProcessorBlock->Prcb.IdleThread = &KeInitialThread.ThreadControlBlock;
|
||||||
|
ProcessorBlock->Prcb.NextThread = NULL;
|
||||||
|
|
||||||
/* Set initial MXCSR register value */
|
/* Set initial MXCSR register value */
|
||||||
ProcessorBlock->Prcb.MxCsr = INITIAL_MXCSR;
|
ProcessorBlock->Prcb.MxCsr = INITIAL_MXCSR;
|
||||||
|
@ -215,9 +215,11 @@ ArpInitializeProcessorBlock(OUT PKPROCESSOR_BLOCK ProcessorBlock,
|
|||||||
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
|
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr6 = 0;
|
||||||
ProcessorBlock->Prcb.ProcessorState.SpecialRegisters.KernelDr7 = 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 = &KeInitialThread.ThreadControlBlock;
|
||||||
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
|
ProcessorBlock->Prcb.CurrentThread->ApcState.Process = &KeInitialProcess.ProcessControlBlock;
|
||||||
|
ProcessorBlock->Prcb.IdleThread = &KeInitialThread.ThreadControlBlock;
|
||||||
|
ProcessorBlock->Prcb.NextThread = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user