[ros-diffs] [tkreuzer] 39191: KD64: implement case 0 for KdpReadControlSpace, which returns a pointer to the Pcr.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Thu Jan 29 00:34:05 CET 2009


Author: tkreuzer
Date: Wed Jan 28 17:34:04 2009
New Revision: 39191

URL: http://svn.reactos.org/svn/reactos?rev=39191&view=rev
Log:
KD64: implement case 0 for KdpReadControlSpace, which returns a pointer to the Pcr.

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/kd64/kdapi.c

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/kd64/kdapi.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/kd64/kdapi.c?rev=39191&r1=39190&r2=39191&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/kd64/kdapi.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/kd64/kdapi.c [iso-8859-1] Wed Jan 28 17:34:04 2009
@@ -319,16 +319,26 @@
 #if defined (_M_AMD64)
     if ((ULONG)ReadMemory->TargetBaseAddress <= 2)
     {
+        PKPRCB Prcb = KiProcessorBlock[State->Processor];
+        PKIPCR Pcr = CONTAINING_RECORD(Prcb, KIPCR, Prcb);
+
         switch ((ULONG_PTR)ReadMemory->TargetBaseAddress)
         {
+            case 0:
+                /* Copy a pointer to the Pcr */
+                ControlStart = &Pcr;
+                RealLength = sizeof(PVOID);
+                break;
+
             case 1:
-                ControlStart = &KiProcessorBlock[State->Processor];
+                /* Copy a pointer to the Prcb */
+                ControlStart = &Prcb;
                 RealLength = sizeof(PVOID);
                 break;
 
             case 2:
-                ControlStart = &KiProcessorBlock[State->Processor]->
-                                         ProcessorState.SpecialRegisters;
+                /* Copy SpecialRegisters */
+                ControlStart = &Prcb->ProcessorState.SpecialRegisters;
                 RealLength = sizeof(KSPECIAL_REGISTERS);
                 break;
 



More information about the Ros-diffs mailing list