撰寫 DbgEng 擴充功能程式碼
DbgEng 擴充 功能命令可以包含任何標準 C++ 程式碼。 除了出現在 wdbgexts.h 標頭檔中的 C 函式之外,它們也可以包含出現在 dbgeng.h 標頭檔中的 C++ 介面。
如果您想要使用來自 wdbgexts.h 的函式,則必須在包含 wdbgexts.h 之前定義KDEXT_64BIT。 例如:
#define KDEXT_64BIT
#include wdbgexts.h
#include dbgeng.h
如需 dbgeng.h 中可用於擴充功能命令的完整介面清單,請參閱 偵錯工具引擎參考。
如需可在擴充命令中使用的 wdbgexts.h 函式完整清單,請參閱 WdbgExts 函式。 其中許多函式會出現在 32 位版本和 64 位版本中。 一般而言,64 位版本以 「64」 結尾,而 32 位版本沒有數值結尾 ,例如 ReadIoSpace64 和 ReadIoSpace。 從 DbgEng 延伸模組呼叫 wdbgexts.h 函式時,您應該一律使用以 「64」 結尾的函式名稱。 這是因為 偵錯工具引擎 一律會在內部使用 64 位指標,而不論目標平臺為何。
如果您在 DbgEng 延伸模組中包含 wdbgexts.h,您應該在擴充 DLL 初始化期間呼叫 GetWindbgExtensionApis64 (請參閱 DebugExtensionInitialize) 。
注意 您不得嘗試從任何偵錯工具擴充功能呼叫任何 DbgHelp 或 ImageHlp 常式。 不支援呼叫這些常式,而且可能會導致各種問題。