IDebugSymbols3::GetModuleNameString 方法 (dbgeng.h)

GetModuleNameString 方法返回指定模块的名称。

语法

HRESULT GetModuleNameString(
  [in]            ULONG   Which,
  [in]            ULONG   Index,
  [in]            ULONG64 Base,
  [out, optional] PSTR    Buffer,
  [in]            ULONG   BufferSize,
  [out, optional] PULONG  NameSize
);

参数

[in] Which

指定要返回的模块名称之一,可能的值为:

价值 描述
DEBUG_MODNAME_IMAGE 映像名称。 这是可执行文件的名称,包括扩展名。 通常,完整路径包含在用户模式下,但不包含在内核模式下。
DEBUG_MODNAME_MODULE 模块名称。 这通常只是没有扩展名的文件名。 在少数情况下,模块名称与文件名明显不同。
DEBUG_MODNAME_LOADED_IMAGE 加载的图像名称。 除非存在 Microsoft CodeView 符号,否则这与图像名称相同。
DEBUG_MODNAME_SYMBOL_FILE 符号文件名。 符号文件的路径和名称。 如果未加载任何符号,则这是可执行文件的名称。
DEBUG_MODNAME_MAPPED_IMAGE 映射的图像名称。 在大多数情况下,这是 NULL。 如果调试器正在映射映像文件(例如,在小型转储调试期间),则这是映射映像的名称。

[in] Index

指定模块的索引。 如果设置为 DEBUG_ANY_ID,则 Base 参数用于指定模块的位置。

[in] Base

如果 索引 DEBUG_ANY_ID,则指定目标模块基的内存地址空间中的位置。 否则,将忽略它。

[out, optional] Buffer

接收模块的名称。 如果 缓冲区NULL,则不会返回此信息。

[in] BufferSize

指定缓冲区 缓冲区的大小(以字符为单位)。 此大小包括“\0”终止字符的空间。

[out, optional] NameSize

接收模块名称的字符大小。 此大小包括“\0”终止字符的空间。 如果 NameSizeNULL,则不会返回此信息。

返回值

此方法也可能返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。
S_FALSE
该方法成功。 但是,缓冲区的大小小于模块名称的大小,因此它被截断以适应缓冲区。

言论

有关模块的详细信息,请参阅 模块

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)

另请参阅

GetModuleNames

IDebugSymbols2

IDebugSymbols3