Files
SabreTools.Serialization/SabreTools.Data.Models/PortableExecutable/Export/NameTable.cs

28 lines
1.3 KiB
C#
Raw Normal View History

2025-09-26 13:06:18 -04:00
namespace SabreTools.Data.Models.PortableExecutable.Export
2025-09-26 12:09:34 -04:00
{
/// <summary>
/// The export name table contains the actual string data that was pointed to by the export
/// name pointer table. The strings in this table are public names that other images can use
/// to import the symbols. These public export names are not necessarily the same as the
/// private symbol names that the symbols have in their own image file and source code,
/// although they can be.
2025-10-30 23:29:24 -04:00
///
2025-09-26 12:09:34 -04:00
/// Every exported symbol has an ordinal value, which is just the index into the export
/// address table. Use of export names, however, is optional. Some, all, or none of the
/// exported symbols can have export names. For exported symbols that do have export names,
/// corresponding entries in the export name pointer table and export ordinal table work
/// together to associate each name with an ordinal.
2025-10-30 23:29:24 -04:00
///
2025-09-26 12:09:34 -04:00
/// The structure of the export name table is a series of null-terminated ASCII strings
/// of variable length.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format"/>
public sealed class NameTable
{
/// <summary>
/// A series of null-terminated ASCII strings of variable length.
/// </summary>
public string[] Strings { get; set; } = [];
2025-09-26 12:09:34 -04:00
}
}