Функция SearchTreeForFile (dbghelp.h)
Выполняет поиск указанного файла в дереве каталогов.
Синтаксис
BOOL IMAGEAPI SearchTreeForFile(
[in] PCSTR RootPath,
[in] PCSTR InputPathName,
[out] PSTR OutputPathBuffer
);
Параметры
[in] RootPath
Путь, по которому функция должна начать поиск файла.
[in] InputPathName
Файл, в котором будет выполняться поиск функции. Можно использовать частичный путь.
[out] OutputPathBuffer
Указатель на буфер, получающий полный путь к найденном файлу. Эта строка не изменяется, если возвращаемое значение равно FALSE.
Возвращаемое значение
Если функция выполнена успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.
Комментарии
Функция выполняет поиск файла, указанного параметром InputPathName , начиная с пути, указанного в параметре RootPath . Максимальная глубина пути, разрешенная в RootPath , составляет 32 каталога. Когда функция находит файл в дереве каталогов, она помещает полный путь к файлу в буфер, указанный параметром OutputPathBuffer . Базовая файловая система определяет порядок поиска в подкаталоге.
Поиск можно отменить, если зарегистрировать функцию обратного вызова SymRegisterCallbackProc64 . Для каждого каталога, где выполняется поиск, SearchTreeForFile вызывает эту функцию обратного вызова с CBA_DEFERRED_SYMBOL_LOAD_CANCEL. Если функция обратного вызова возвращает значение TRUE, SearchTreeForFile отменяет поиск.
Эта функция активирует одно событие CBA_DEFERRED_SYMBOL_LOAD_CANCEL для каждого искомого каталога. Это позволяет вызывающей объекту отменить поиск.
Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.
Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR.
Требования
Целевая платформа | Windows |
Header | dbghelp.h |
Библиотека | Dbghelp.lib |
DLL | Dbghelp.dll |
Распространяемые компоненты | DbgHelp.dll 5.1 или более поздней версии |