Поделиться через


Функция 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 . Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
SSRVOPT_DWORD
0x0002
Параметр id является DWORD.
SSRVOPT_DWORDPTR
0x0004
Параметр id является указателем на DWORD.
SSRVOPT_GUIDPTR
0x0008
Параметр 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 не используется и имеет нулевое значение.
Все эти значения можно получить, вызвав SymSrvGetFileIndexInfo.

При поиске в каталоге эта функция не проверяет соответствие идентификаторов символов по умолчанию. Чтобы убедиться, что соответствующие файлы символов находятся, вызовите функцию 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 или более поздней версии

См. также раздел

Функции DbgHelp

SymFindFileInPathProc

SymInitialize

SymSetSearchPath

SymSrvGetFileIndexInfo