- Fixed the access to the KPCR in KiQuantumEnd.
Modified: trunk/reactos/ntoskrnl/ke/dpc.c

Modified: trunk/reactos/ntoskrnl/ke/dpc.c
--- trunk/reactos/ntoskrnl/ke/dpc.c	2005-01-01 11:31:43 UTC (rev 12691)
+++ trunk/reactos/ntoskrnl/ke/dpc.c	2005-01-01 11:33:31 UTC (rev 12692)
@@ -19,7 +19,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id: dpc.c,v 1.50 2004/12/24 17:06:58 navaraf Exp $
+/* $Id$
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -411,7 +411,7 @@
  *          Called when deleting a Driver.
  */
 {
-	KPRCB Prcb;
+	PKPRCB Prcb;
 	PKTHREAD CurrentThread;
 	KIRQL OldIrql;
 	PKPROCESS Process;
@@ -419,7 +419,7 @@
 	KPRIORITY NewPriority;
 	
 	/* Lock dispatcher, get current thread */
-	Prcb = KeGetCurrentKPCR()->PrcbData;
+	Prcb = &KeGetCurrentKPCR()->PrcbData;
 	CurrentThread = KeGetCurrentThread();
 	OldIrql = KeRaiseIrqlToSynchLevel();
 	
@@ -427,8 +427,8 @@
 	Process = CurrentThread->ApcState.Process;
 	
 	/* Set DPC Event if requested */
-	if (Prcb.DpcSetEventRequest) {
-		KeSetEvent(Prcb.DpcEvent, 0, 0);
+	if (Prcb->DpcSetEventRequest) {
+		KeSetEvent(Prcb->DpcEvent, 0, 0);
 	}
 	
 	/* Check if Quantum expired */
@@ -449,7 +449,7 @@
 				CurrentThread->Priority = NewPriority;
 			} else {
 				/* Queue new thread if none is already */
-				if (Prcb.NextThread == NULL) {
+				if (Prcb->NextThread == NULL) {
 					/* FIXME: Schedule a New Thread, when ROS will have NT Scheduler */
 				} else {
 					/* Make the current thread non-premeptive if a new thread is queued */