| 
     
因为作者的水平和时间有限,本书中可能存在各种错误和偏颇,作者对此深表歉意。您可以把您发现的错误通过意见反馈栏目中列出的方式发给作者。 
下表中是已经发现的问题,在此对于提出这些问题的读者深表感谢。
         
 
  
    
    | 编号 | 
    章节 | 
    页码 | 
    确切位置 | 
    原文内容 | 
    更正 | 
     
    
    | 1 | 
    1 | 
    18 | 
    表1-3,Windows Server 2012 R2一行 | 
    6.2 | 
    6.3 | 
     
    
    | 2 | 
    1 | 
    10 | 
    本页靠下 | 
    使用面向对象技术对原来的WDDM驱动模型做了一些封装 | 
    使用面向对象技术对原来的WDM驱动模型做了一些封装 | 
     
    
    | 3 | 
    30 | 
    783 | 
    页头示例命令 | 
    recx | 
    r ecx(少一空格,共有两处) | 
     
    
    | 4 | 
    2 | 
    36 | 
    清单上面的解说文字 | 
    它对应的是函数是著名的蓝屏函数 | 
    它对应的函数是著名的蓝屏函数(多一个是字) | 
     
    
    | 5 | 
    7 | 
    142 | 
    !name2ee命令下面的解说文字 | 
    倒数第4行便是这个类的方法表的地址 | 
    倒数第3行便是这个类的方法表的地址 | 
     
    
    | 6 | 
    9 | 
    181 | 
    表格中对nt!DbgkpOpenHandles的说明 | 
    打开进程、线程对象,增加应用计数 | 
    打开进程、线程对象,增加引用计数 | 
     
    
    | 7 | 
    20 | 
    467 | 
    清单20-2上方的说明 | 
    此时这个线程正在调用NtWiatForDebugEvent | 
    此时这个线程正在调用NtWaitForDebugEvent | 
       
    
    | 8 | 
    22 | 
    512 | 
    图22-3 | 
    图中有一处FuncC误写为FurcC | 
     | 
         
    
    | 9 | 
    22 | 
    521 | 
    清单22-16下面说明文字 | 
    参数d是第二个适合使用寄存器传递的参数 | 
    参数b是第二个适合使用寄存器传递的参数 | 
      
    
    | 10 | 
    22 | 
    512 | 
    图22-3 | 
    图中右上方FurcC | 
    FuncC | 
      
    
    | 11 | 
    2 | 
    36 | 
    清单上面的解说文字 | 
    它的返回地址是82b1ab51,翻译成符号便是PspCatchCriticalBreak+0x71 | 
    它的返回地址是82b1ab51,把返回地址翻译成符号便是下一行的PspCatchCriticalBreak+0x71 | 
     
    
    | 12 | 
    9 | 
    174 | 
     9.3.3小节第5行 | 
    在调用DbgkpResumeProcess函数后 | 
    在调用DbgkpSuspendProcess函数后 | 
     
    
    | 13 | 
    2 | 
    21 | 
    第三行 | 
    每个会话有自己的WorkStation和Desktop | 
    每个会话有自己的窗口站(WinStation)和桌面(Desktop) | 
     
    
    | 14 | 
    3 | 
    63 | 
    第2行 | 
    延迟过程调用(Delay Process Call,DPC)队列里的任务。 | 
    延迟过程调用(Deferred Process Call,DPC)队列里的任务。 | 
     
        
     |