KDHELP64 结构 (dbghelp.h)

内核调试程序用来跟踪线程内核堆栈中的用户模式回调的信息。

语法

typedef struct _KDHELP64 {
  DWORD64 Thread;
  DWORD   ThCallbackStack;
  DWORD   ThCallbackBStore;
  DWORD   NextCallback;
  DWORD   FramePointer;
  DWORD64 KiCallUserMode;
  DWORD64 KeUserCallbackDispatcher;
  DWORD64 SystemRangeStart;
  DWORD64 KiUserExceptionDispatcher;
  DWORD64 StackBase;
  DWORD64 StackLimit;
  DWORD   BuildVersion;
  DWORD   RetpolineStubFunctionTableSize;
  DWORD64 RetpolineStubFunctionTable;
  DWORD   RetpolineStubOffset;
  DWORD   RetpolineStubSize;
  DWORD64 Reserved0[2];
} KDHELP64, *PKDHELP64;

成员

Thread

内核线程对象的地址,如WAIT_STATE_CHANGE数据包中提供。

ThCallbackStack

线程对象中指向指向内核堆栈中当前回调帧的指针的偏移量。

ThCallbackBStore

Intel Itanium: 线程对象中指向指向内核堆栈中当前回调后备存储帧的指针的偏移量。

NextCallback

下一个回调帧的地址。

FramePointer

保存的帧指针的地址(如果适用)。

KiCallUserMode

调用用户模式的内核函数的地址。

KeUserCallbackDispatcher

用户模式调度程序函数的地址。

SystemRangeStart

最低内核模式地址。

KiUserExceptionDispatcher

用户模式异常调度程序函数的地址。

DbgHelp 6.1 及更早版本: 不支持此成员。

StackBase

堆栈基的地址。

StackLimit

堆栈限制。

BuildVersion

TBD

RetpolineStubFunctionTableSize

TBD

RetpolineStubFunctionTable

TBD

RetpolineStubOffset

TBD

RetpolineStubSize

TBD

Reserved0[2]

此成员保留供操作系统使用。

注解

此结构取代 KDHELP 结构。 有关详细信息,请参阅 更新的平台支持KDHELP 在 Dbghelp.h 中定义如下。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define KDHELP KDHELP64
#define PKDHELP PKDHELP64
#else
typedef struct _KDHELP {
    DWORD   Thread;
    DWORD   ThCallbackStack;
    DWORD   NextCallback;
    DWORD   FramePointer;
    DWORD   KiCallUserMode;
    DWORD   KeUserCallbackDispatcher;
    DWORD   SystemRangeStart;
    DWORD   ThCallbackBStore;
    DWORD   KiUserExceptionDispatcher;
    DWORD   StackBase;
    DWORD   StackLimit;
    DWORD   Reserved[5];
} KDHELP, *PKDHELP;
#endif

要求

要求
Header dbghelp.h
可再发行组件 DbgHelp.dll 5.1 或更高版本

另请参阅

STACKFRAME64