[NTOS:MM] Quick fix: use SIZE_T instead of ULONG, because ULONG is 32-bit and on...
[reactos.git] / ntoskrnl / ke / thrdobj.c
index a76bd69..142ff18 100644 (file)
@@ -530,7 +530,12 @@ KeStartThread(IN OUT PKTHREAD Thread)
     NodePrcb = KiProcessorBlock[Process->ThreadSeed];
 
     /* Calculate affinity mask */
+#ifdef _M_ARM
+    DbgBreakPoint();
+    Set = 0;
+#else
     Set = ~NodePrcb->MultiThreadProcessorSet;
+#endif
     Mask = (ULONG)(Node->ProcessorMask & Process->Affinity);
     Set &= Mask;
     if (Set) Mask = Set;
@@ -772,7 +777,7 @@ KeInitThread(IN OUT PKTHREAD Thread,
     PKTIMER Timer;
     NTSTATUS Status;
 
-    /* Initalize the Dispatcher Header */
+    /* Initialize the Dispatcher Header */
     Thread->Header.Type = ThreadObject;
     Thread->Header.ThreadControlFlags = 0;
     Thread->Header.DebugActive = FALSE;
@@ -803,8 +808,8 @@ KeInitThread(IN OUT PKTHREAD Thread,
     Thread->ServiceTable = KeServiceDescriptorTable;
 
     /* Setup APC Fields */
-    InitializeListHead(&Thread->ApcState.ApcListHead[0]);
-    InitializeListHead(&Thread->ApcState.ApcListHead[1]);
+    InitializeListHead(&Thread->ApcState.ApcListHead[KernelMode]);
+    InitializeListHead(&Thread->ApcState.ApcListHead[UserMode]);
     Thread->ApcState.Process = Process;
     Thread->ApcStatePointer[OriginalApcEnvironment] = &Thread->ApcState;
     Thread->ApcStatePointer[AttachedApcEnvironment] = &Thread->SavedApcState;
@@ -838,8 +843,9 @@ KeInitThread(IN OUT PKTHREAD Thread,
     TimerWaitBlock->WaitListEntry.Flink = &Timer->Header.WaitListHead;
     TimerWaitBlock->WaitListEntry.Blink = &Timer->Header.WaitListHead;
 
-    /* Set the TEB */
+    /* Set the TEB and process */
     Thread->Teb = Teb;
+    Thread->Process = Process;
 
     /* Check if we have a kernel stack */
     if (!KernelStack)
@@ -862,7 +868,7 @@ KeInitThread(IN OUT PKTHREAD Thread,
     Status = STATUS_SUCCESS;
     _SEH2_TRY
     {
-        /* Initalize the Thread Context */
+        /* Initialize the Thread Context */
         KiInitializeContextThread(Thread,
                                   SystemRoutine,
                                   StartRoutine,
@@ -884,7 +890,7 @@ KeInitThread(IN OUT PKTHREAD Thread,
     }
     _SEH2_END;
 
-    /* Set the Thread to initalized */
+    /* Set the Thread to initialized */
     Thread->State = Initialized;
     return Status;
 }