在内核模式调试中,除了主内存和寄存器外,还可以读取和写入各种数据空间。 可以访问以下数据空间:
系统总线
ReadBusData 和 WriteBusData 读取和写入系统总线数据的方法。
Control-Space 内存
ReadControl 和 WriteControl 读取和写入控制空间内存的方法。
I/O 内存。
ReadIo 和 WriteIo 读取和写入系统和总线 I/O 内存的方法。
模型特定寄存器 (MSR)
ReadMsr 和 WriteMsr 读取和写入 MSR 的方法,这些 MSR 是控制寄存器,用于启用和禁用功能,并支持调试特定 CPU 模型。
处理
在用户模式调试中,可以使用目标进程拥有的系统句柄获取有关系统对象的信息。 ReadHandleData 方法可用于读取此信息。
可以使用 GetCurrentThreadHandle 和 GetCurrentProcessHandle 方法获取线程和进程系统对象的系统句柄。 当发生 create-thread 和 create-process 调试事件时,这些句柄也提供给 IDebugEventCallbacks::CreateThread 和 IDebugEventCallbacks::CreateProcess 回调方法。
注意 在内核模式下,进程和线程句柄是人工句柄。 它们不是系统句柄。