diff --git a/SabreTools.Serialization/Extensions/PortableExecutable.cs b/SabreTools.Serialization/Extensions/PortableExecutable.cs
index 8f35f19e..c73f67ae 100644
--- a/SabreTools.Serialization/Extensions/PortableExecutable.cs
+++ b/SabreTools.Serialization/Extensions/PortableExecutable.cs
@@ -1,6 +1,5 @@
using System;
using SabreTools.Data.Models.COFF;
-using SabreTools.Data.Models.PortableExecutable;
using SabreTools.IO.Extensions;
#pragma warning disable IDE0017 // Simplify object initialization
@@ -143,34 +142,5 @@ namespace SabreTools.Data.Extensions
}
#endregion
-
- // TODO: Implement other resource types from https://learn.microsoft.com/en-us/windows/win32/menurc/resource-file-formats
- #region Resources
-
- ///
- /// Parse a byte array into a ResourceHeader
- ///
- /// Data to parse
- /// Offset into the byte array
- /// A filled ResourceHeader on success, null on error
- public static Models.PortableExecutable.Resource.ResourceHeader ParseResourceHeader(this byte[] data, ref int offset)
- {
- // Read in the table
- var obj = new Models.PortableExecutable.Resource.ResourceHeader();
-
- obj.DataSize = data.ReadUInt32LittleEndian(ref offset);
- obj.HeaderSize = data.ReadUInt32LittleEndian(ref offset);
- obj.ResourceType = (ResourceType)data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too
- obj.Name = data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too
- obj.DataVersion = data.ReadUInt32LittleEndian(ref offset);
- obj.MemoryFlags = (MemoryFlags)data.ReadUInt16LittleEndian(ref offset);
- obj.LanguageId = data.ReadUInt16LittleEndian(ref offset);
- obj.Version = data.ReadUInt32LittleEndian(ref offset);
- obj.Characteristics = data.ReadUInt32LittleEndian(ref offset);
-
- return obj;
- }
-
- #endregion
}
}
diff --git a/SabreTools.Serialization/Readers/PortableExecutable.cs b/SabreTools.Serialization/Readers/PortableExecutable.cs
index be24fcaa..145d9144 100644
--- a/SabreTools.Serialization/Readers/PortableExecutable.cs
+++ b/SabreTools.Serialization/Readers/PortableExecutable.cs
@@ -14,6 +14,7 @@ using static SabreTools.Data.Models.PortableExecutable.Constants;
#pragma warning disable IDE0017 // Simplify object initialization
namespace SabreTools.Serialization.Readers
{
+ // TODO: Implement other resource types from https://learn.microsoft.com/en-us/windows/win32/menurc/resource-file-formats
public class PortableExecutable : BaseBinaryReader
{
///
@@ -2582,6 +2583,30 @@ namespace SabreTools.Serialization.Readers
return obj;
}
+ ///
+ /// Parse a byte array into a ResourceHeader
+ ///
+ /// Data to parse
+ /// Offset into the byte array
+ /// A filled ResourceHeader on success, null on error
+ public static Data.Models.PortableExecutable.Resource.ResourceHeader ParseResourceHeader(byte[] data, ref int offset)
+ {
+ // Read in the table
+ var obj = new Data.Models.PortableExecutable.Resource.ResourceHeader();
+
+ obj.DataSize = data.ReadUInt32LittleEndian(ref offset);
+ obj.HeaderSize = data.ReadUInt32LittleEndian(ref offset);
+ obj.ResourceType = (ResourceType)data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too
+ obj.Name = data.ReadUInt32LittleEndian(ref offset); // TODO: Could be a string too
+ obj.DataVersion = data.ReadUInt32LittleEndian(ref offset);
+ obj.MemoryFlags = (MemoryFlags)data.ReadUInt16LittleEndian(ref offset);
+ obj.LanguageId = data.ReadUInt16LittleEndian(ref offset);
+ obj.Version = data.ReadUInt32LittleEndian(ref offset);
+ obj.Characteristics = data.ReadUInt32LittleEndian(ref offset);
+
+ return obj;
+ }
+
///
/// Parse a Stream into a SectionDefinition
///