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


Функция SymFindFileInPath (dbghelp.h)

Находит файл символов или исполняемое изображение.

Синтаксис

BOOL IMAGEAPI SymFindFileInPath(
  [in]           HANDLE                  hprocess,
  [in, optional] PCSTR                   SearchPath,
  [in]           PCSTR                   FileName,
  [in, optional] PVOID                   id,
  [in]           DWORD                   two,
  [in]           DWORD                   three,
  [in]           DWORD                   flags,
  [out]          PSTR                    FoundFile,
  [in, optional] PFINDFILEINPATHCALLBACK 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.

Требования

Требование Значение
Целевая платформа Windows
Header dbghelp.h
Библиотека DbgHelp.lib
DLL DbgHelp.dll
Распространяемые компоненты DbgHelp.dll 5.1 или более поздней версии

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

Функции DbgHelp

SymFindFileInPathProc

SymInitialize

SymSetSearchPath

SymSrvGetFileIndexInfo