- 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 */
Show replies by date