bindImageEx 函数 (imagehlp.h)

计算导入的每个函数的虚拟地址。

语法

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

parameters

[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
标头 imagehlp.h
Library Imagehlp.lib
DLL Imagehlp.dll

另请参阅

ImageHlp 函数

StatusRoutine