Функция SymSrvDeltaName (dbghelp.h)
Создает имя файла, описывающего связь между двумя разными версиями одного и того же файла символа или изображения. Использование этой функции предотвращает повторное создание таких данных приложениями при каждом анализе двух файлов.
Синтаксис
PCSTR IMAGEAPI SymSrvDeltaName(
[in] HANDLE hProcess,
[in, optional] PCSTR SymPath,
[in] PCSTR Type,
[in] PCSTR File1,
[in] PCSTR File2
);
Параметры
[in] hProcess
Дескриптор процесса. Этот дескриптор должен быть ранее передан в функцию SymInitialize .
[in, optional] SymPath
Путь к символу. Функция использует только хранилища символов, описанные в стандартном синтаксисе для хранилищ символов. Все остальные пути игнорируются. Если этот параметр имеет значение NULL, функция использует путь к символам, заданный с помощью функции SymInitialize или SymSetSearchPath .
[in] Type
Расширение для созданного имени файла.
[in] File1
Путь к первой версии файла символа или изображения.
[in] File2
Путь ко второй версии файла символа или изображения.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение — это имя результирующего файла.
Если функция завершается сбоем, возвращается значение NULL. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.
Комментарии
Эта функция открывает два указанных файла, считывает данные индексирования из заголовка и передает эти сведения на сервер символов, чтобы он смог создать имя файла. Если указать параметр Type как xml, то именем будет индекс File1, за которым следует дефис, за которым следует индекс File2, за которым следует расширение .xml. Пример:
3F3D5C755000-3F3D647621000.xml
Эта функция возвращает указатель на буфер, который может повторно использоваться другой функцией. Поэтому не забудьте немедленно скопировать данные, возвращенные в другой буфер.
Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.
Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR.
Требования
Целевая платформа | Windows |
Header | dbghelp.h |
Библиотека | Dbghelp.lib |
DLL | Dbghelp.dll |
Распространяемые компоненты | DbgHelp.dll 6.3 или более поздней версии |