return(STATUS_SUCCESS);
}
-VOID
+VOID
KeInitializeThread(PKPROCESS Process, PKTHREAD Thread, BOOLEAN First)
/*
* FUNCTION: Initialize the microkernel state of the thread
MM_STACK_SIZE,
0,
&StackArea,
+ FALSE,
FALSE);
MmUnlockAddressSpace(MmGetKernelAddressSpace());
if (!NT_SUCCESS(Status))
{
DPRINT1("Failed to create thread stack\n");
- KeBugCheck(0);
+ KEBUGCHECK(0);
}
for (i = 0; i < (MM_STACK_SIZE / PAGE_SIZE); i++)
{
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE, &Page);
if (!NT_SUCCESS(Status))
{
- KeBugCheck(0);
+ KEBUGCHECK(0);
}
Status = MmCreateVirtualMapping(NULL,
KernelStack + (i * PAGE_SIZE),
Thread->KernelApcDisable = 1;
Thread->UserAffinity = Process->Affinity;
Thread->SystemAffinityActive = 0;
+ Thread->PowerState = 0;
+ Thread->NpxIrql = 0;
+ Thread->ServiceTable = KeServiceDescriptorTable;
Thread->Queue = NULL;
KeInitializeSpinLock(&Thread->ApcQueueLock);
memset(&Thread->Timer, 0, sizeof(KTIMER));
Thread->AutoAlignment = 0;
KeInitializeApc(&Thread->SuspendApc,
Thread,
- 0,
+ OriginalApcEnvironment,
PiSuspendThreadKernelRoutine,
PiSuspendThreadRundownRoutine,
PiSuspendThreadNormalRoutine,