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

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

[out, optional] Buffer

接收模块的名称。 如果 BufferNULL,则不返回此信息。

[in] BufferSize

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

[out, optional] NameSize

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

返回值

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

返回代码 说明
S_OK
方法成功。
S_FALSE
方法成功。 但是,缓冲区的大小小于模块名称的大小,因此将其截断以适合缓冲区。

注解

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

要求

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

另请参阅

GetModuleNames

IDebugSymbols2

IDebugSymbols3