RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
Microsoft::PEFormat::ImportDirectory Class Reference

A collection of the imported names for a specific dynamic linking library. More...

#include <peexe.h>

Classes

class  Name
 Represents an entry in the hint-name table, corresponding to imports by name. More...
 

Public Types

typedef uint16_t Ordinal
 
typedef std::variant< Ordinal, NameImportTableEntry
 Represents a single entry in the import directory, either an ordinal or a name.
 

Public Member Functions

void AddImportByName (std::string entry_name, uint16_t hint)
 Adds a new imported entry by name and hint, unless an entry by the same name already exists, in which case it does nothing.
 
void AddImportByOrdinal (uint16_t ordinal)
 Adds a new imported entry by ordinal, unless an entry by the same ordinal already exists, in which case it does nothing.
 
offset_t GetImportByNameAddress (const PEFormat &fmt, std::string name)
 Retrieves the virtual address of an already registered entry that is imported by name.
 
offset_t GetImportByOrdinalAddress (const PEFormat &fmt, uint16_t ordinal)
 Retrieves the virtual address of an already registered entry that is imported by ordinal.
 
 ImportDirectory (std::string name)
 

Public Attributes

uint32_t lookup_table_rva = 0
 Relative virtual address for the lookup table, preserved during execution time.
 
uint32_t address_table_rva = 0
 Relative virtual address for the address table, used to access the imported functions, but has the same layout as the lookup table in the image.
 
uint32_t timestamp = 0
 
uint32_t forwarder_chain = 0
 
std::string name
 Name of the dynamic linking library included.
 
uint32_t name_rva = 0
 Relative virtual address of the name.
 
std::vector< ImportTableEntryimport_table
 List of imported entries.
 
std::map< std::string, size_t > imports_by_name
 A convenience field to quickly access the imported entry index via its name, must be kept synchronized with import_table.
 
std::map< Ordinal, size_t > imports_by_ordinal
 A convenience field to quickly access the imported entry index via its ordinal (only for import by ordinal, not for hints), must be kept synchronized with import_table.
 

Detailed Description

A collection of the imported names for a specific dynamic linking library.


The documentation for this class was generated from the following files: