LOADED_IMAGE 结构是 Win32 API 中 Dbghelp.h 头文件中定义的一个结构,用于描述加载的映像(image)的信息。以下是该结构体的定义:
typedef struct _LOADED_IMAGE {
    PSTR ModuleName;            // 模块的名称
    HANDLE hFile;               // 模块文件的句柄
    PUCHAR MappedAddress;       // 模块的基地址
    PIMAGE_NT_HEADERS64 FileHeader; // 模块的 NT 头部
    PIMAGE_SECTION_HEADER LastRvaSection; // 最后一个 RVA 段
    ULONG NumberOfSections;     // 模块的节的数量
    PIMAGE_SECTION_HEADER Sections;      // 模块的节头部数组
    ULONG Characteristics;      // 模块的特征
    BOOLEAN fSystemImage;       // 是否为系统映像
    BOOLEAN fDOSImage;          // 是否为 DOS 映像
    LIST_ENTRY InLoadOrderLinks; // 模块的装载顺序链接
    LIST_ENTRY InMemoryOrderLinks; // 模块的内存顺序链接
    LIST_ENTRY InInitializationOrderLinks; // 模块的初始化顺序链接
    PVOID Reserved;             // 保留字段
} LOADED_IMAGE, *PLOADED_IMAGE;

这个结构体包含以下字段:

  •  ModuleName: 模块的名称。

  •  hFile: 模块文件的句柄。

  •  MappedAddress: 模块的基地址。

  •  FileHeader: 模块的 NT 头部。

  •  LastRvaSection: 最后一个 RVA 段。

  •  NumberOfSections: 模块的节的数量。

  •  Sections: 模块的节头部数组。

  •  Characteristics: 模块的特征。

  •  fSystemImage: 表示是否为系统映像。

  •  fDOSImage: 表示是否为 DOS 映像。

  •  InLoadOrderLinks: 模块的装载顺序链接。

  •  InMemoryOrderLinks: 模块的内存顺序链接。

  •  InInitializationOrderLinks: 模块的初始化顺序链接。

  •  Reserved: 保留字段。


LOADED_IMAGE 结构通常在调试和符号处理的上下文中使用,用于获取已加载模块的信息,如基地址、文件句柄、模块头等。这对于调试工具和符号查找等场景非常有用。


转载请注明出处:http://www.zyzy.cn/article/detail/26399/Win32 API/Dbghelp.h/LOADED_IMAGE