Функция BindImageEx (imagehlp.h)

Вычисляет виртуальный адрес каждой импортируемой функции.

Синтаксис

BOOL IMAGEAPI BindImageEx(
  [in] DWORD                    Flags,
  [in] PCSTR                    ImageName,
  [in] PCSTR                    DllPath,
  [in] PCSTR                    SymbolPath,
  [in] PIMAGEHLP_STATUS_ROUTINE StatusRoutine
);

Параметры

[in] Flags

Параметры привязки. Этот параметр может быть сочетанием следующих значений.

Значение Значение
BIND_ALL_IMAGES
0x00000004
Привяжите все изображения в дереве вызовов для этого файла.
BIND_CACHE_IMPORT_DLLS
0x00000008
Не отменяйте сведения о библиотеках DLL в кэше между вызовами. Это повышает производительность при привязке большого количества изображений.
BIND_NO_BOUND_IMPORTS
0x00000001
Не создавайте новую таблицу адресов импорта.
BIND_NO_UPDATE
0x00000002
Не вносите изменения в файл.

[in] ImageName

Имя привязаемого файла. Это может быть имя файла, частичный путь или полный путь.

[in] DllPath

Корень пути поиска, используемого, если не удается открыть файл, указанный параметром ImageName .

[in] SymbolPath

Корень пути для поиска соответствующего файла символов.

[in] StatusRoutine

Указатель на подпрограмму состояния. Подпрограмма состояния вызывается во время выполнения привязки образа. Дополнительные сведения см. в разделе StatusRoutine.

Возвращаемое значение

Если функция выполняется успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Комментарии

Процесс привязки образа состоит из вычисления виртуального адреса каждой импортированной функции. Затем вычисленный виртуальный адрес сохраняется в таблице импортируемых адресов (IAT) импортируемого образа. В результате образ загружается гораздо быстрее, особенно если он использует много библиотек DLL, так как системный загрузчик не должен вычислять адрес каждой импортированной функции.

Если можно найти соответствующий файл символов, его метка времени и контрольная сумма обновляются.

Все функции ImageHlp, такие как эта, являются однопоточными. Поэтому вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header imagehlp.h
Библиотека Imagehlp.lib
DLL Imagehlp.dll

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

Функции ImageHlp

StatusRoutine