APIdia Launch Partner
Top Description Methods
sun.jvm.hotspot.debugger.win32.coff

public Interface ExportDirectoryTable

Known Direct Implementers
sun.jvm.hotspot.debugger.win32.coff.COFFFileParser.COFFFileImpl.COFFHeaderImpl.ExportDirectoryTableImpl

Models the information stored in the export directory table. Ostensibly this is supposed to lie in the .edata section. However, experience has shown that this data does not appear to be present there, instead (likely -- not yet tested) showing up in the Export Table portion of the OptionalHeaderDataDirectories. (Some of the descriptions are taken directly from Microsoft's documentation and are copyrighted by Microsoft.)

Method Summary

Modifier and TypeMethod and Description
public String
getDLLName()

Convenience routine which returns the name of the DLL containing this export directory.

public int
getExportAddress(short ordinal)

Takes in an ordinal from the Export Ordinal Table (see getExportOrdinal).

public String
getExportAddressForwarder(short ordinal)

Get the forwarder name for the given ordinal.

public int
getExportAddressTableRVA()

Address of the Export Address Table, relative to the image base.

public int
getExportFlags()

A reserved field, set to zero for now.

public String
getExportName(int i)

Returns the ith exported symbol (from 0..

public short
getExportOrdinal(int i)

Returns the ith entry (0..

public short
getMajorVersion()

Major version number.

public short
getMinorVersion()

Minor version number.

public int
getNamePointerTableRVA()

Address of the Export Name Pointer Table, relative to the image base.

public int
getNameRVA()

Address of the ASCII string containing the name of the DLL.

public int
getNumberOfAddressTableEntries()

Number of entries in the Export Address Table.

public int
getNumberOfNamePointers()

Number of entries in the Name Pointer Table (also the number of entries in the Ordinal Table).

public int
getOrdinalBase()

Starting ordinal number for exports in this image.

public int
getOrdinalTableRVA()

Address of the Ordinal Table, relative to the image base.

public int
getTimeDateStamp()

Time and date the export data was created.

public boolean
isExportAddressForwarder(short ordinal)

Indicates whether the specified export address is really a forwarder, in which case the value is not an address but a string.

Method Detail

getDLLNameback to summary
public String getDLLName()

Convenience routine which returns the name of the DLL containing this export directory.

getExportAddressback to summary
public int getExportAddress(short ordinal)

Takes in an ordinal from the Export Ordinal Table (see getExportOrdinal). This ordinal is biased by getOrdinalBase; however, the subtraction described in the documentation is done internally for convenience. Returns an address that is in one of two formats. If the address specified is not within the export section (as defined by the address and length indicated in the Optional Header), the field is an Export RVA: an actual address in code or data. Otherwise, the field is a Forwarder RVA, which names a symbol in another DLL.

An Export RVA is the address of the exported symbol when loaded into memory, relative to the image base. For example, the address of an exported function.

A Forwarder RVA is a pointer to a null-terminated ASCII string in the export section, giving the DLL name and the name of the export (for example, "MYDLL.expfunc") or the DLL name and an export (for example, "MYDLL.#27").

Note

the value returned has been transformed from an RVA to a file pointer which can be added to the image base to find an absolute address for the symbol.

getExportAddressForwarderback to summary
public String getExportAddressForwarder(short ordinal)

Get the forwarder name for the given ordinal. Must be called only if isExportAddressForwarder() returns true.

getExportAddressTableRVAback to summary
public int getExportAddressTableRVA()

Address of the Export Address Table, relative to the image base.

getExportFlagsback to summary
public int getExportFlags()

A reserved field, set to zero for now.

getExportNameback to summary
public String getExportName(int i)

Returns the ith exported symbol (from 0..getNumberOfNamePointers - 1). These are arranged in sorted order to allow binary searches.

getExportOrdinalback to summary
public short getExportOrdinal(int i)

Returns the ith entry (0..getNumberOfNamePointers in the Export Ordinal Table. This is used for looking up a given symbol's address in the Export Address Table; see getExportAddress.

getMajorVersionback to summary
public short getMajorVersion()

Major version number. The major/minor version number can be set by the user.

getMinorVersionback to summary
public short getMinorVersion()

Minor version number.

getNamePointerTableRVAback to summary
public int getNamePointerTableRVA()

Address of the Export Name Pointer Table, relative to the image base. The table size is given by Number of Name Pointers.

getNameRVAback to summary
public int getNameRVA()

Address of the ASCII string containing the name of the DLL. Relative to image base. See getDLLName.

getNumberOfAddressTableEntriesback to summary
public int getNumberOfAddressTableEntries()

Number of entries in the Export Address Table.

getNumberOfNamePointersback to summary
public int getNumberOfNamePointers()

Number of entries in the Name Pointer Table (also the number of entries in the Ordinal Table).

getOrdinalBaseback to summary
public int getOrdinalBase()

Starting ordinal number for exports in this image. This field specifies the starting ordinal number for the Export Address Table. Usually set to 1.

getOrdinalTableRVAback to summary
public int getOrdinalTableRVA()

Address of the Ordinal Table, relative to the image base.

getTimeDateStampback to summary
public int getTimeDateStamp()

Time and date the export data was created.

isExportAddressForwarderback to summary
public boolean isExportAddressForwarder(short ordinal)

Indicates whether the specified export address is really a forwarder, in which case the value is not an address but a string.