Функция 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 задает подпись PDB, расположенную в каталоге отладки codeview исходного образа. Параметр два указывает возраст PDB. Параметр 3 не используется и имеет нулевое значение.
- Если DbgHelp ищет любой другой тип образа, например исполняемый файл или DBG-файл, параметр id задает TimeDateStamp исходного образа, как указано в его заголовке PE. Параметр two указывает поле SizeOfImage, также извлеченное из заголовка PE. Параметр 3 не используется и имеет нулевое значение.
При поиске в каталоге эта функция не проверяет соответствие идентификаторов символов по умолчанию. Чтобы убедиться, что соответствующие файлы символов находятся, вызовите функцию SymSetOptions с SYMOPT_EXACT_SYMBOLS.
Все функции DbgHelp, такие как эта, являются однопоточными. Поэтому вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.
Чтобы вызвать версию этой функции в Юникоде, определите DBGHELP_TRANSLATE_TCHAR.
Примечание
Заголовок dbghelp.h определяет SymFindFileInPath в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | dbghelp.h |
Библиотека | DbgHelp.lib |
DLL | DbgHelp.dll |
Распространяемые компоненты | DbgHelp.dll 5.1 или более поздней версии |