SymFindFileInPathW 函数 (dbghelp.h)
找到符号文件或可执行映像。
语法
BOOL IMAGEAPI SymFindFileInPathW(
[in] HANDLE hprocess,
[in, optional] PCWSTR SearchPath,
[in] PCWSTR FileName,
[in, optional] PVOID id,
[in] DWORD two,
[in] DWORD three,
[in] DWORD flags,
[out] PWSTR FoundFile,
[in, optional] PFINDFILEINPATHCALLBACKW callback,
[in, optional] PVOID context
);
参数
[in] hprocess
最初传递给 SymInitialize 函数的进程句柄。
[in, optional] SearchPath
搜索路径。 这可以是用分号分隔的多个路径。 它可以包括目录和符号服务器。 如果此参数 NULL,则该函数使用使用 SymSetSearchPath 或 SymInitialize 函数设置的搜索路径。
[in] FileName
文件的名称。 可以指定路径;但是,仅使用文件名。
[in, optional] id
三个标识参数中的第一个(请参阅备注)。
[in] two
三个标识参数中的第二个(请参阅备注)。
[in] three
三个标识参数中的三个(请参阅备注)。
[in] flags
id 参数的格式。 此参数可以是下列值之一。
价值 | 意义 |
---|---|
|
ID 参数是 DWORD。 |
|
ID 参数是指向 DWORD的指针。 |
|
ID 参数是指向 GUID的指针。 |
[out] FoundFile
指向接收符号文件的完全限定路径的缓冲区的指针。 此缓冲区必须至少MAX_PATH个字符。
[in, optional] callback
SymFindFileInPathProc 回调函数。
[in, optional] context
用户定义的值或 NULL。 此值只是传递给回调函数。 此参数通常由应用程序用来将指针传递给为回调函数提供一些上下文的数据结构。
返回值
如果服务器找到有效的符号文件,则返回 true ;否则,它将返回 FALSE,GetLastError 返回一个值,该值指示未返回符号文件的原因。
言论
标识参数按如下所示填充:
- 如果 DbgHelp 正在寻找 .pdb 文件,则 id 参数指定原始映像的 codeview 调试目录中找到的 PDB 签名。 参数 两个 指定 PDB 期限。 参数 未使用三个,并设置为零。
- 如果 DbgHelp 正在查找任何其他类型的映像(如可执行文件或 .dbg 文件),则 id 参数指定原始映像的 TimeDateStamp,如其 PE 标头中所示。 参数 两个 指定 SizeOfImage 字段,也从 PE 标头中提取。 参数 未使用三个,并设置为零。
搜索目录时,此函数不会验证符号标识符默认是否匹配。 若要确保找到匹配的符号文件,请使用 SYMOPT_EXACT_SYMBOLS 调用 SymSetOptions 函数。
所有 DbgHelp 函数(如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将来自多个线程的所有并发调用同步到此函数。
若要调用此函数的 Unicode 版本,请定义DBGHELP_TRANSLATE_TCHAR。
注意
dbghelp.h 标头将 SymFindFileInPath 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | dbghelp.h |
库 | DbgHelp.lib |
DLL | DbgHelp.dll |
可再发行组件 | DbgHelp.dll 5.1 或更高版本 |