diff --git a/SabreTools.Models/PortableExecutable/Executable.cs b/SabreTools.Models/PortableExecutable/Executable.cs
index 42f1257..306871c 100644
--- a/SabreTools.Models/PortableExecutable/Executable.cs
+++ b/SabreTools.Models/PortableExecutable/Executable.cs
@@ -97,7 +97,7 @@ namespace SabreTools.Models.PortableExecutable
///
/// Export table (.edata)
///
- public ExportTable? ExportTable { get; set; }
+ public Export.Table? ExportTable { get; set; }
///
/// Import table (.idata)
diff --git a/SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs b/SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs
similarity index 94%
rename from SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs
rename to SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs
index 2da75a6..8676d6e 100644
--- a/SabreTools.Models/PortableExecutable/ExportAddressTableEntry.cs
+++ b/SabreTools.Models/PortableExecutable/Export/AddressTableEntry.cs
@@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export address table contains the address of exported entry points
@@ -16,7 +16,7 @@ namespace SabreTools.Models.PortableExecutable
///
///
[StructLayout(LayoutKind.Explicit)]
- public sealed class ExportAddressTableEntry
+ public sealed class AddressTableEntry
{
///
/// The address of the exported symbol when loaded into memory, relative to
diff --git a/SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs b/SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs
similarity index 96%
rename from SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs
rename to SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs
index 838c4f9..f1d037d 100644
--- a/SabreTools.Models/PortableExecutable/ExportDirectoryTable.cs
+++ b/SabreTools.Models/PortableExecutable/Export/DirectoryTable.cs
@@ -1,4 +1,4 @@
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export symbol information begins with the export directory table,
@@ -7,7 +7,7 @@
/// imports to the entry points within this image.
///
///
- public sealed class ExportDirectoryTable
+ public sealed class DirectoryTable
{
///
/// Reserved, must be 0.
diff --git a/SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs b/SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs
similarity index 87%
rename from SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs
rename to SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs
index 83db9fb..6c268ae 100644
--- a/SabreTools.Models/PortableExecutable/ExportNamePointerTable.cs
+++ b/SabreTools.Models/PortableExecutable/Export/NamePointerTable.cs
@@ -1,4 +1,4 @@
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export name pointer table is an array of addresses (RVAs) into the export name table.
@@ -8,7 +8,7 @@
/// An export name is defined only if the export name pointer table contains a pointer to it.
///
///
- public sealed class ExportNamePointerTable
+ public sealed class NamePointerTable
{
///
/// The pointers are 32 bits each and are relative to the image base.
diff --git a/SabreTools.Models/PortableExecutable/ExportNameTable.cs b/SabreTools.Models/PortableExecutable/Export/NameTable.cs
similarity index 93%
rename from SabreTools.Models/PortableExecutable/ExportNameTable.cs
rename to SabreTools.Models/PortableExecutable/Export/NameTable.cs
index c3df14c..6c25ffa 100644
--- a/SabreTools.Models/PortableExecutable/ExportNameTable.cs
+++ b/SabreTools.Models/PortableExecutable/Export/NameTable.cs
@@ -1,4 +1,4 @@
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export name table contains the actual string data that was pointed to by the export
@@ -17,7 +17,7 @@
/// of variable length.
///
///
- public sealed class ExportNameTable
+ public sealed class NameTable
{
///
/// A series of null-terminated ASCII strings of variable length.
diff --git a/SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs b/SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs
similarity index 95%
rename from SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs
rename to SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs
index 1025e92..b10f03b 100644
--- a/SabreTools.Models/PortableExecutable/ExportOrdinalTable.cs
+++ b/SabreTools.Models/PortableExecutable/Export/OrdinalTable.cs
@@ -1,4 +1,4 @@
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export ordinal table is an array of 16-bit unbiased indexes into the export address table.
@@ -32,7 +32,7 @@
/// name = ExportNameTable[i];
///
///
- public sealed class ExportOrdinalTable
+ public sealed class OrdinalTable
{
///
/// An array of 16-bit unbiased indexes into the export address table
diff --git a/SabreTools.Models/PortableExecutable/ExportTable.cs b/SabreTools.Models/PortableExecutable/Export/Table.cs
similarity index 86%
rename from SabreTools.Models/PortableExecutable/ExportTable.cs
rename to SabreTools.Models/PortableExecutable/Export/Table.cs
index 9020089..0ccfc3a 100644
--- a/SabreTools.Models/PortableExecutable/ExportTable.cs
+++ b/SabreTools.Models/PortableExecutable/Export/Table.cs
@@ -1,4 +1,4 @@
-namespace SabreTools.Models.PortableExecutable
+namespace SabreTools.Models.PortableExecutable.Export
{
///
/// The export data section, named .edata, contains information about symbols that other images
@@ -13,7 +13,7 @@
/// exist to support use of export names.
///
///
- public sealed class ExportTable
+ public sealed class Table
{
// TODO: Look into splitting this up
// Technically speaking, even though all of these should live in the same
@@ -26,7 +26,7 @@
/// A table with just one row (unlike the debug directory). This table indicates the
/// locations and sizes of the other export tables.
///
- public ExportDirectoryTable? ExportDirectoryTable { get; set; }
+ public DirectoryTable? ExportDirectoryTable { get; set; }
///
/// An array of RVAs of exported symbols. These are the actual addresses of the exported
@@ -34,12 +34,12 @@
/// can import a symbol by using an index to this table (an ordinal) or, optionally, by
/// using the public name that corresponds to the ordinal if a public name is defined.
///
- public ExportAddressTableEntry[]? ExportAddressTable { get; set; }
+ public AddressTableEntry[]? ExportAddressTable { get; set; }
///
/// An array of pointers to the public export names, sorted in ascending order.
///
- public ExportNamePointerTable? NamePointerTable { get; set; }
+ public NamePointerTable? NamePointerTable { get; set; }
///
/// An array of the ordinals that correspond to members of the name pointer table. The
@@ -47,7 +47,7 @@
/// must have the same number of members. Each ordinal is an index into the export address
/// table.
///
- public ExportOrdinalTable? OrdinalTable { get; set; }
+ public OrdinalTable? OrdinalTable { get; set; }
///
/// A series of null-terminated ASCII strings. Members of the name pointer table point into
@@ -55,6 +55,6 @@
/// exported; they are not necessarily the same as the private names that are used within
/// the image file.
///
- public ExportNameTable? ExportNameTable { get; set; }
+ public NameTable? ExportNameTable { get; set; }
}
}