SymGetSymFromName函数找到所请求名称的符号。
BOOL SymGetSymFromName(
IN HANDLE【hProcess】, | |
IN LPSTR【名称】, | |
OUT PIMAGEHLP_SYMBOL【符号】 | |
); |
参数
【hProcess】
最初传递给SymInitialize的进程句柄。
【名称】
请求符号的符号名称。
【符号】
指向IMAGEHLP_SYMBOL结构的指针。
回报值
如果函数成功,返回值为TRUE。
如果函数失败,则返回值为FALSE。要检索扩展错误信息,请调用GetLastError.
备注
SymGetSymFromName功能用于查找所请求名称的符号。该名称可以包含将符号搜索隔离到单个模块的符号表的模块前缀。
模块前缀采用【“模块】!【"】的形式。“!”字符是模块名称和符号名称之间的分隔符。如果没有模块前缀,则以线性方式对每个模块的符号表执行搜索,从加载的第一个模块开始。
使用模块前缀是最好的两个原因。首先,符号搜索发生得更快。第二,当延迟符号加载打开时,搜索将为搜索到的每个模块加载符号。当找到符号时,符号信息被复制到调用者提供的【符号】缓冲区中。呼叫者必须正确地分配【符号】缓冲区,并在调用SymGetSymFromName函数之前在IMAGEHLP_SYMBOL结构中填写必需的参数。