Ensure explicit getters and setters

This commit is contained in:
Matt Nadareski
2023-09-10 21:24:10 -04:00
parent e3c5c76ee5
commit 670b8428c2
277 changed files with 2583 additions and 2584 deletions

View File

@@ -13,22 +13,22 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Describes keyboard accelerator characteristics.
/// </summary>
public AcceleratorTableFlags Flags;
public AcceleratorTableFlags Flags { get; set; }
/// <summary>
/// An ANSI character value or a virtual-key code that identifies the accelerator key.
/// </summary>
public ushort Ansi;
public ushort Ansi { get; set; }
/// <summary>
/// An identifier for the keyboard accelerator. This is the value passed to the window
/// procedure when the user presses the specified key.
/// </summary>
public ushort Id;
public ushort Id { get; set; }
/// <summary>
/// The number of bytes inserted to ensure that the structure is aligned on a DWORD boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
}
}

View File

@@ -8,25 +8,25 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("manifestVersion")]
#if NET48
public string ManifestVersion;
public string ManifestVersion { get; set; }
#else
public string? ManifestVersion;
public string? ManifestVersion { get; set; }
#endif
#region Group
[XmlElement("assemblyIdentity")]
#if NET48
public AssemblyIdentity[] AssemblyIdentities;
public AssemblyIdentity[] AssemblyIdentities { get; set; }
#else
public AssemblyIdentity?[]? AssemblyIdentities;
public AssemblyIdentity?[]? AssemblyIdentities { get; set; }
#endif
[XmlElement("noInheritable")]
#if NET48
public AssemblyNoInheritable[] NoInheritables;
public AssemblyNoInheritable[] NoInheritables { get; set; }
#else
public AssemblyNoInheritable?[]? NoInheritables;
public AssemblyNoInheritable?[]? NoInheritables { get; set; }
#endif
#endregion
@@ -35,63 +35,63 @@ namespace SabreTools.Models.PortableExecutable
[XmlElement("description")]
#if NET48
public AssemblyDescription Description;
public AssemblyDescription Description { get; set; }
#else
public AssemblyDescription? Description;
public AssemblyDescription? Description { get; set; }
#endif
[XmlElement("noInherit")]
#if NET48
public AssemblyNoInherit NoInherit;
public AssemblyNoInherit NoInherit { get; set; }
#else
public AssemblyNoInherit? NoInherit;
public AssemblyNoInherit? NoInherit { get; set; }
#endif
//[XmlElement("noInheritable")]
//public AssemblyNoInheritable NoInheritable;
//public AssemblyNoInheritable NoInheritable { get; set; }
[XmlElement("comInterfaceExternalProxyStub")]
#if NET48
public AssemblyCOMInterfaceExternalProxyStub[] COMInterfaceExternalProxyStub;
public AssemblyCOMInterfaceExternalProxyStub[] COMInterfaceExternalProxyStub { get; set; }
#else
public AssemblyCOMInterfaceExternalProxyStub?[]? COMInterfaceExternalProxyStub;
public AssemblyCOMInterfaceExternalProxyStub?[]? COMInterfaceExternalProxyStub { get; set; }
#endif
[XmlElement("dependency")]
#if NET48
public AssemblyDependency[] Dependency;
public AssemblyDependency[] Dependency { get; set; }
#else
public AssemblyDependency?[]? Dependency;
public AssemblyDependency?[]? Dependency { get; set; }
#endif
[XmlElement("file")]
#if NET48
public AssemblyFile[] File;
public AssemblyFile[] File { get; set; }
#else
public AssemblyFile?[]? File;
public AssemblyFile?[]? File { get; set; }
#endif
[XmlElement("clrClass")]
#if NET48
public AssemblyCommonLanguageRuntimeClass[] CLRClass;
public AssemblyCommonLanguageRuntimeClass[] CLRClass { get; set; }
#else
public AssemblyCommonLanguageRuntimeClass?[]? CLRClass;
public AssemblyCommonLanguageRuntimeClass?[]? CLRClass { get; set; }
#endif
[XmlElement("clrSurrogate")]
#if NET48
public AssemblyCommonLanguageSurrogateClass[] CLRSurrogate;
public AssemblyCommonLanguageSurrogateClass[] CLRSurrogate { get; set; }
#else
public AssemblyCommonLanguageSurrogateClass?[]? CLRSurrogate;
public AssemblyCommonLanguageSurrogateClass?[]? CLRSurrogate { get; set; }
#endif
#endregion
[XmlAnyElement]
#if NET48
public object[] EverythingElse;
public object[] EverythingElse { get; set; }
#else
public object[]? EverythingElse;
public object[]? EverythingElse { get; set; }
#endif
}
@@ -100,9 +100,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -111,9 +111,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -122,16 +122,16 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("oldVersion")]
#if NET48
public string OldVersion;
public string OldVersion { get; set; }
#else
public string? OldVersion;
public string? OldVersion { get; set; }
#endif
[XmlAttribute("newVersion")]
#if NET48
public string NewVersion;
public string NewVersion { get; set; }
#else
public string? NewVersion;
public string? NewVersion { get; set; }
#endif
}
@@ -140,44 +140,44 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("clsid")]
#if NET48
public string CLSID;
public string CLSID { get; set; }
#else
public string? CLSID;
public string? CLSID { get; set; }
#endif
[XmlAttribute("threadingModel")]
#if NET48
public string ThreadingModel;
public string ThreadingModel { get; set; }
#else
public string? ThreadingModel;
public string? ThreadingModel { get; set; }
#endif
[XmlAttribute("progid")]
#if NET48
public string ProgID;
public string ProgID { get; set; }
#else
public string? ProgID;
public string? ProgID { get; set; }
#endif
[XmlAttribute("tlbid")]
#if NET48
public string TLBID;
public string TLBID { get; set; }
#else
public string? TLBID;
public string? TLBID { get; set; }
#endif
[XmlAttribute("description")]
#if NET48
public string Description;
public string Description { get; set; }
#else
public string? Description;
public string? Description { get; set; }
#endif
[XmlElement("progid")]
#if NET48
public AssemblyProgID[] ProgIDs;
public AssemblyProgID[] ProgIDs { get; set; }
#else
public AssemblyProgID?[]? ProgIDs;
public AssemblyProgID?[]? ProgIDs { get; set; }
#endif
}
@@ -186,44 +186,44 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("iid")]
#if NET48
public string IID;
public string IID { get; set; }
#else
public string? IID;
public string? IID { get; set; }
#endif
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("tlbid")]
#if NET48
public string TLBID;
public string TLBID { get; set; }
#else
public string? TLBID;
public string? TLBID { get; set; }
#endif
[XmlAttribute("numMethods")]
#if NET48
public string NumMethods;
public string NumMethods { get; set; }
#else
public string? NumMethods;
public string? NumMethods { get; set; }
#endif
[XmlAttribute("proxyStubClsid32")]
#if NET48
public string ProxyStubClsid32;
public string ProxyStubClsid32 { get; set; }
#else
public string? ProxyStubClsid32;
public string? ProxyStubClsid32 { get; set; }
#endif
[XmlAttribute("baseInterface")]
#if NET48
public string BaseInterface;
public string BaseInterface { get; set; }
#else
public string? BaseInterface;
public string? BaseInterface { get; set; }
#endif
}
@@ -232,44 +232,44 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("iid")]
#if NET48
public string IID;
public string IID { get; set; }
#else
public string? IID;
public string? IID { get; set; }
#endif
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("tlbid")]
#if NET48
public string TLBID;
public string TLBID { get; set; }
#else
public string? TLBID;
public string? TLBID { get; set; }
#endif
[XmlAttribute("numMethods")]
#if NET48
public string NumMethods;
public string NumMethods { get; set; }
#else
public string? NumMethods;
public string? NumMethods { get; set; }
#endif
[XmlAttribute("proxyStubClsid32")]
#if NET48
public string ProxyStubClsid32;
public string ProxyStubClsid32 { get; set; }
#else
public string? ProxyStubClsid32;
public string? ProxyStubClsid32 { get; set; }
#endif
[XmlAttribute("baseInterface")]
#if NET48
public string BaseInterface;
public string BaseInterface { get; set; }
#else
public string? BaseInterface;
public string? BaseInterface { get; set; }
#endif
}
@@ -278,58 +278,58 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("clsid")]
#if NET48
public string CLSID;
public string CLSID { get; set; }
#else
public string? CLSID;
public string? CLSID { get; set; }
#endif
[XmlAttribute("progid")]
#if NET48
public string ProgID;
public string ProgID { get; set; }
#else
public string? ProgID;
public string? ProgID { get; set; }
#endif
[XmlAttribute("tlbid")]
#if NET48
public string TLBID;
public string TLBID { get; set; }
#else
public string? TLBID;
public string? TLBID { get; set; }
#endif
[XmlAttribute("description")]
#if NET48
public string Description;
public string Description { get; set; }
#else
public string? Description;
public string? Description { get; set; }
#endif
[XmlAttribute("runtimeVersion")]
#if NET48
public string RuntimeVersion;
public string RuntimeVersion { get; set; }
#else
public string? RuntimeVersion;
public string? RuntimeVersion { get; set; }
#endif
[XmlAttribute("threadingModel")]
#if NET48
public string ThreadingModel;
public string ThreadingModel { get; set; }
#else
public string? ThreadingModel;
public string? ThreadingModel { get; set; }
#endif
[XmlElement("progid")]
#if NET48
public AssemblyProgID[] ProgIDs;
public AssemblyProgID[] ProgIDs { get; set; }
#else
public AssemblyProgID?[]? ProgIDs;
public AssemblyProgID?[]? ProgIDs { get; set; }
#endif
}
@@ -338,23 +338,23 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("clsid")]
#if NET48
public string CLSID;
public string CLSID { get; set; }
#else
public string? CLSID;
public string? CLSID { get; set; }
#endif
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("runtimeVersion")]
#if NET48
public string RuntimeVersion;
public string RuntimeVersion { get; set; }
#else
public string? RuntimeVersion;
public string? RuntimeVersion { get; set; }
#endif
}
@@ -363,16 +363,16 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlElement("dependentAssembly")]
#if NET48
public AssemblyDependentAssembly DependentAssembly;
public AssemblyDependentAssembly DependentAssembly { get; set; }
#else
public AssemblyDependentAssembly? DependentAssembly;
public AssemblyDependentAssembly? DependentAssembly { get; set; }
#endif
[XmlAttribute("optional")]
#if NET48
public string Optional;
public string Optional { get; set; }
#else
public string? Optional;
public string? Optional { get; set; }
#endif
}
@@ -381,16 +381,16 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlElement("assemblyIdentity")]
#if NET48
public AssemblyIdentity AssemblyIdentity;
public AssemblyIdentity AssemblyIdentity { get; set; }
#else
public AssemblyIdentity? AssemblyIdentity;
public AssemblyIdentity? AssemblyIdentity { get; set; }
#endif
[XmlElement("bindingRedirect")]
#if NET48
public AssemblyBindingRedirect[] BindingRedirect;
public AssemblyBindingRedirect[] BindingRedirect { get; set; }
#else
public AssemblyBindingRedirect?[]? BindingRedirect;
public AssemblyBindingRedirect?[]? BindingRedirect { get; set; }
#endif
}
@@ -399,9 +399,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -410,9 +410,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -421,9 +421,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -432,9 +432,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -443,9 +443,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -454,60 +454,60 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("hash")]
#if NET48
public string Hash;
public string Hash { get; set; }
#else
public string? Hash;
public string? Hash { get; set; }
#endif
[XmlAttribute("hashalg")]
#if NET48
public string HashAlgorithm;
public string HashAlgorithm { get; set; }
#else
public string? HashAlgorithm;
public string? HashAlgorithm { get; set; }
#endif
[XmlAttribute("size")]
#if NET48
public string Size;
public string Size { get; set; }
#else
public string? Size;
public string? Size { get; set; }
#endif
#region Group
[XmlElement("comClass")]
#if NET48
public AssemblyCOMClass[] COMClass;
public AssemblyCOMClass[] COMClass { get; set; }
#else
public AssemblyCOMClass?[]? COMClass;
public AssemblyCOMClass?[]? COMClass { get; set; }
#endif
[XmlElement("comInterfaceProxyStub")]
#if NET48
public AssemblyCOMInterfaceProxyStub[] COMInterfaceProxyStub;
public AssemblyCOMInterfaceProxyStub[] COMInterfaceProxyStub { get; set; }
#else
public AssemblyCOMInterfaceProxyStub?[]? COMInterfaceProxyStub;
public AssemblyCOMInterfaceProxyStub?[]? COMInterfaceProxyStub { get; set; }
#endif
[XmlElement("typelib")]
#if NET48
public AssemblyTypeLib[] Typelib;
public AssemblyTypeLib[] Typelib { get; set; }
#else
public AssemblyTypeLib?[]? Typelib;
public AssemblyTypeLib?[]? Typelib { get; set; }
#endif
[XmlElement("windowClass")]
#if NET48
public AssemblyWindowClass[] WindowClass;
public AssemblyWindowClass[] WindowClass { get; set; }
#else
public AssemblyWindowClass?[]? WindowClass;
public AssemblyWindowClass?[]? WindowClass { get; set; }
#endif
#endregion
@@ -518,9 +518,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -529,9 +529,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -540,9 +540,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -551,44 +551,44 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("name")]
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
[XmlAttribute("version")]
#if NET48
public string Version;
public string Version { get; set; }
#else
public string? Version;
public string? Version { get; set; }
#endif
[XmlAttribute("type")]
#if NET48
public string Type;
public string Type { get; set; }
#else
public string? Type;
public string? Type { get; set; }
#endif
[XmlAttribute("processorArchitecture")]
#if NET48
public string ProcessorArchitecture;
public string ProcessorArchitecture { get; set; }
#else
public string? ProcessorArchitecture;
public string? ProcessorArchitecture { get; set; }
#endif
[XmlAttribute("publicKeyToken")]
#if NET48
public string PublicKeyToken;
public string PublicKeyToken { get; set; }
#else
public string? PublicKeyToken;
public string? PublicKeyToken { get; set; }
#endif
[XmlAttribute("language")]
#if NET48
public string Language;
public string Language { get; set; }
#else
public string? Language;
public string? Language { get; set; }
#endif
}
@@ -597,9 +597,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -618,9 +618,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -629,9 +629,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -640,9 +640,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("Id")]
#if NET48
public string Id;
public string Id { get; set; }
#else
public string? Id;
public string? Id { get; set; }
#endif
}
@@ -651,37 +651,37 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlElement("tlbid")]
#if NET48
public string TLBID;
public string TLBID { get; set; }
#else
public string? TLBID;
public string? TLBID { get; set; }
#endif
[XmlElement("version")]
#if NET48
public string Version;
public string Version { get; set; }
#else
public string? Version;
public string? Version { get; set; }
#endif
[XmlElement("helpdir")]
#if NET48
public string HelpDir;
public string HelpDir { get; set; }
#else
public string? HelpDir;
public string? HelpDir { get; set; }
#endif
[XmlElement("resourceid")]
#if NET48
public string ResourceID;
public string ResourceID { get; set; }
#else
public string? ResourceID;
public string? ResourceID { get; set; }
#endif
[XmlElement("flags")]
#if NET48
public string Flags;
public string Flags { get; set; }
#else
public string? Flags;
public string? Flags { get; set; }
#endif
}
@@ -690,9 +690,9 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
@@ -701,16 +701,16 @@ namespace SabreTools.Models.PortableExecutable
{
[XmlAttribute("versioned")]
#if NET48
public string Versioned;
public string Versioned { get; set; }
#else
public string? Versioned;
public string? Versioned { get; set; }
#endif
[XmlText]
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}

View File

@@ -42,26 +42,26 @@
/// <summary>
/// Specifies the length of the attribute certificate entry.
/// </summary>
public uint Length;
public uint Length { get; set; }
/// <summary>
/// Contains the certificate version number.
/// </summary>
public WindowsCertificateRevision Revision;
public WindowsCertificateRevision Revision { get; set; }
/// <summary>
/// Specifies the type of content in Certificate.
/// </summary>
public WindowsCertificateType CertificateType;
public WindowsCertificateType CertificateType { get; set; }
/// <summary>
/// Contains a certificate, such as an Authenticode signature.
/// </summary>
/// <see href="https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#certificate-data"/>
#if NET48
public byte[] Certificate;
public byte[] Certificate { get; set; }
#else
public byte[]? Certificate;
public byte[]? Certificate { get; set; }
#endif
}
}

View File

@@ -24,14 +24,14 @@
/// The image base plus the page RVA is added to each offset to create
/// the VA where the base relocation must be applied.
/// </summary>
public uint PageRVA;
public uint PageRVA { get; set; }
/// <summary>
/// The total number of bytes in the base relocation block, including
/// the Page RVA and Block Size fields and the Type/Offset fields that
/// follow.
/// </summary>
public uint BlockSize;
public uint BlockSize { get; set; }
/// <summary>
/// The Block Size field is then followed by any number of Type or Offset
@@ -47,9 +47,9 @@
/// specifies where the base relocation is to be applied.
/// </summary>
#if NET48
public BaseRelocationTypeOffsetFieldEntry[] TypeOffsetFieldEntries;
public BaseRelocationTypeOffsetFieldEntry[] TypeOffsetFieldEntries { get; set; }
#else
public BaseRelocationTypeOffsetFieldEntry?[]? TypeOffsetFieldEntries;
public BaseRelocationTypeOffsetFieldEntry?[]? TypeOffsetFieldEntries { get; set; }
#endif
}
}

View File

@@ -10,13 +10,13 @@
/// Stored in the high 4 bits of the WORD, a value that indicates the type
/// of base relocation to be applied. For more information, see <see cref="BaseRelocationTypes"/>
/// </summary>
public BaseRelocationTypes BaseRelocationType;
public BaseRelocationTypes BaseRelocationType { get; set; }
/// <summary>
/// Stored in the remaining 12 bits of the WORD, an offset from the starting
/// address that was specified in the Page RVA field for the block. This
/// offset specifies where the base relocation is to be applied.
/// </summary>
public ushort Offset;
public ushort Offset { get; set; }
}
}

View File

@@ -14,43 +14,43 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The number that identifies the type of target machine.
/// </summary>
public MachineType Machine;
public MachineType Machine { get; set; }
/// <summary>
/// The number of sections. This indicates the size of the section table,
/// which immediately follows the headers.
/// </summary>
public ushort NumberOfSections;
public ushort NumberOfSections { get; set; }
/// <summary>
/// The low 32 bits of the number of seconds since 00:00 January 1, 1970
/// (a C run-time time_t value), which indicates when the file was created.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// The file offset of the COFF symbol table, or zero if no COFF symbol table
/// is present. This value should be zero for an image because COFF debugging
/// information is deprecated.
/// </summary>
public uint PointerToSymbolTable;
public uint PointerToSymbolTable { get; set; }
/// <summary>
/// The number of entries in the symbol table. This data can be used to locate
/// the string table, which immediately follows the symbol table. This value
/// should be zero for an image because COFF debugging information is deprecated.
/// </summary>
public uint NumberOfSymbols;
public uint NumberOfSymbols { get; set; }
/// <summary>
/// The size of the optional header, which is required for executable files but
/// not for object files. This value should be zero for an object file.
/// </summary>
public ushort SizeOfOptionalHeader;
public ushort SizeOfOptionalHeader { get; set; }
/// <summary>
/// The flags that indicate the attributes of the file.
/// </summary>
public Characteristics Characteristics;
public Characteristics Characteristics { get; set; }
}
}

View File

@@ -27,7 +27,7 @@ namespace SabreTools.Models.PortableExecutable
/// For example, if the first byte of the section has an address of 0x10,
/// the third byte has an address of 0x12.
/// </summary>
public uint VirtualAddress;
public uint VirtualAddress { get; set; }
/// <summary>
/// A zero-based index into the symbol table. This symbol gives the address
@@ -35,12 +35,12 @@ namespace SabreTools.Models.PortableExecutable
/// storage class, then the symbol's address is the address with the first
/// section of the same name.
/// </summary>
public uint SymbolTableIndex;
public uint SymbolTableIndex { get; set; }
/// <summary>
/// A value that indicates the kind of relocation that should be performed.
/// Valid relocation types depend on machine type.
/// </summary>
public RelocationType TypeIndicator;
public RelocationType TypeIndicator { get; set; }
}
}

View File

@@ -14,16 +14,16 @@
/// the size field itself, so that the value in this location would be 4 if no
/// strings were present.
/// </summary>
public uint TotalSize;
public uint TotalSize { get; set; }
/// <summary>
/// Following the size are null-terminated strings that are pointed to by symbols
/// in the COFF symbol table.
/// </summary>
#if NET48
public string[] Strings;
public string[] Strings { get; set; }
#else
public string[]? Strings;
public string[]? Strings { get; set; }
#endif
}
}

View File

@@ -38,12 +38,12 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// A field that is set to all zeros if the name is longer than 8 bytes.
/// </summary>
public uint Zeroes;
public uint Zeroes { get; set; }
/// <summary>
/// An offset into the string table.
/// </summary>
public uint Offset;
public uint Offset { get; set; }
#endregion
@@ -52,29 +52,29 @@ namespace SabreTools.Models.PortableExecutable
/// field depends on SectionNumber and StorageClass. A typical meaning is the
/// relocatable address.
/// </summary>
public uint Value;
public uint Value { get; set; }
/// <summary>
/// The signed integer that identifies the section, using a one-based index
/// into the section table. Some values have special meaning.
/// </summary>
public ushort SectionNumber;
public ushort SectionNumber { get; set; }
/// <summary>
/// A number that represents type. Microsoft tools set this field to 0x20
/// (function) or 0x0 (not a function).
/// </summary>
public SymbolType SymbolType;
public SymbolType SymbolType { get; set; }
/// <summary>
/// An enumerated value that represents storage class.
/// </summary>
public StorageClass StorageClass;
public StorageClass StorageClass { get; set; }
/// <summary>
/// The number of auxiliary symbol table entries that follow this record.
/// </summary>
public byte NumberOfAuxSymbols;
public byte NumberOfAuxSymbols { get; set; }
#endregion
@@ -106,31 +106,31 @@ namespace SabreTools.Models.PortableExecutable
/// The symbol-table index of the corresponding .bf (begin function)
/// symbol record.
/// </summary>
public uint AuxFormat1TagIndex;
public uint AuxFormat1TagIndex { get; set; }
/// <summary>
/// The size of the executable code for the function itself. If the function
/// is in its own section, the SizeOfRawData in the section header is greater
/// or equal to this field, depending on alignment considerations.
/// </summary>
public uint AuxFormat1TotalSize;
public uint AuxFormat1TotalSize { get; set; }
/// <summary>
/// The file offset of the first COFF line-number entry for the function, or
/// zero if none exists.
/// </summary>
public uint AuxFormat1PointerToLinenumber;
public uint AuxFormat1PointerToLinenumber { get; set; }
/// <summary>
/// The symbol-table index of the record for the next function. If the function
/// is the last in the symbol table, this field is set to zero.
/// </summary>
public uint AuxFormat1PointerToNextFunction;
public uint AuxFormat1PointerToNextFunction { get; set; }
/// <summary>
/// Unused
/// </summary>
public ushort AuxFormat1Unused;
public ushort AuxFormat1Unused { get; set; }
#endregion
@@ -154,13 +154,13 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Unused
/// </summary>
public uint AuxFormat2Unused1;
public uint AuxFormat2Unused1 { get; set; }
/// <summary>
/// The actual ordinal line number (1, 2, 3, and so on) within the source file,
/// corresponding to the .bf or .ef record.
/// </summary>
public ushort AuxFormat2Linenumber;
public ushort AuxFormat2Linenumber { get; set; }
/// <summary>
/// Unused
@@ -177,12 +177,12 @@ namespace SabreTools.Models.PortableExecutable
/// last in the symbol table, this field is set to zero. It is not used for
/// .ef records.
/// </summary>
public uint AuxFormat2PointerToNextFunction;
public uint AuxFormat2PointerToNextFunction { get; set; }
/// <summary>
/// Unused
/// </summary>
public ushort AuxFormat2Unused3;
public ushort AuxFormat2Unused3 { get; set; }
#endregion
@@ -207,7 +207,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The symbol-table index of sym2, the symbol to be linked if sym1 is not found.
/// </summary>
public uint AuxFormat3TagIndex;
public uint AuxFormat3TagIndex { get; set; }
/// <summary>
/// A value of IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY indicates that no library search
@@ -216,7 +216,7 @@ namespace SabreTools.Models.PortableExecutable
/// sym1 should be performed.
/// A value of IMAGE_WEAK_EXTERN_SEARCH_ALIAS indicates that sym1 is an alias for sym2.
/// </summary>
public uint AuxFormat3Characteristics;
public uint AuxFormat3Characteristics { get; set; }
/// <summary>
/// Unused
@@ -244,7 +244,7 @@ namespace SabreTools.Models.PortableExecutable
#if NET48
public byte[] AuxFormat4FileName;
#else
public byte[]? AuxFormat4FileName;
public byte[]? AuxFormat4FileName;}
#endif
#endregion
@@ -260,35 +260,35 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The size of section data; the same as SizeOfRawData in the section header.
/// </summary>
public uint AuxFormat5Length;
public uint AuxFormat5Length { get; set; }
/// <summary>
/// The number of relocation entries for the section.
/// </summary>
public ushort AuxFormat5NumberOfRelocations;
public ushort AuxFormat5NumberOfRelocations { get; set; }
/// <summary>
/// The number of line-number entries for the section.
/// </summary>
public ushort AuxFormat5NumberOfLinenumbers;
public ushort AuxFormat5NumberOfLinenumbers { get; set; }
/// <summary>
/// The checksum for communal data. It is applicable if the IMAGE_SCN_LNK_COMDAT
/// flag is set in the section header.
/// </summary>
public uint AuxFormat5CheckSum;
public uint AuxFormat5CheckSum { get; set; }
/// <summary>
/// One-based index into the section table for the associated section. This is
/// used when the COMDAT selection setting is 5.
/// </summary>
public ushort AuxFormat5Number;
public ushort AuxFormat5Number { get; set; }
/// <summary>
/// The COMDAT selection number. This is applicable if the section is a
/// COMDAT section.
/// </summary>
public byte AuxFormat5Selection;
public byte AuxFormat5Selection { get; set; }
/// <summary>
/// Unused
@@ -310,17 +310,17 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Must be IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF (1).
/// </summary>
public byte AuxFormat6AuxType;
public byte AuxFormat6AuxType { get; set; }
/// <summary>
/// Reserved, must be zero.
/// </summary>
public byte AuxFormat6Reserved1;
public byte AuxFormat6Reserved1 { get; set; }
/// <summary>
/// The symbol index of the COFF symbol to which this CLR token definition refers.
/// </summary>
public uint AuxFormat6SymbolTableIndex;
public uint AuxFormat6SymbolTableIndex { get; set; }
/// <summary>
/// Reserved, must be zero.

View File

@@ -34,9 +34,9 @@
/// Describes keyboard accelerator characteristics.
/// </summary>
#if NET48
public NewHeader NEWHEADER;
public NewHeader NEWHEADER { get; set; }
#else
public NewHeader? NEWHEADER;
public NewHeader? NEWHEADER { get; set; }
#endif
// TODO: Add array of entries in the resource

View File

@@ -19,11 +19,11 @@ namespace SabreTools.Models.PortableExecutable
/// is the address of the table relative to the base address of the image when
/// the table is loaded.
/// </summary>
public uint VirtualAddress;
public uint VirtualAddress { get; set; }
/// <summary>
/// The second field gives the size in bytes.
/// </summary>
public uint Size;
public uint Size { get; set; }
}
}

View File

@@ -25,42 +25,42 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Reserved, must be zero.
/// </summary>
public uint Characteristics;
public uint Characteristics { get; set; }
/// <summary>
/// The time and date that the debug data was created.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// The major version number of the debug data format.
/// </summary>
public ushort MajorVersion;
public ushort MajorVersion { get; set; }
/// <summary>
/// The minor version number of the debug data format.
/// </summary>
public ushort MinorVersion;
public ushort MinorVersion { get; set; }
/// <summary>
/// The format of debugging information. This field enables support
/// of multiple debuggers.
/// </summary>
public DebugType DebugType;
public DebugType DebugType { get; set; }
/// <summary>
/// The size of the debug data (not including the debug directory itself).
/// </summary>
public uint SizeOfData;
public uint SizeOfData { get; set; }
/// <summary>
/// The address of the debug data when loaded, relative to the image base.
/// </summary>
public uint AddressOfRawData;
public uint AddressOfRawData { get; set; }
/// <summary>
/// The file pointer to the debug data.
/// </summary>
public uint PointerToRawData;
public uint PointerToRawData { get; set; }
}
}

View File

@@ -34,9 +34,9 @@
/// the RVA is its address.
/// </summary>
#if NET48
public DebugDirectoryEntry[] DebugDirectoryTable;
public DebugDirectoryEntry[] DebugDirectoryTable { get; set; }
#else
public DebugDirectoryEntry?[]? DebugDirectoryTable;
public DebugDirectoryEntry?[]? DebugDirectoryTable { get; set; }
#endif
}
}

View File

@@ -20,7 +20,7 @@ namespace SabreTools.Models.PortableExecutable
/// indicating the presence of new fields, or it can be used to indicate
/// behaviors to the delay or unload helper functions.
/// </remarks>
public uint Attributes;
public uint Attributes { get; set; }
/// <summary>
/// The RVA of the name of the DLL to be loaded. The name resides in the
@@ -30,7 +30,7 @@ namespace SabreTools.Models.PortableExecutable
/// The name of the DLL to be delay-loaded resides in the read-only data
/// section of the image. It is referenced through the szName field.
/// </remarks>
public uint Name;
public uint Name { get; set; }
/// <summary>
/// The RVA of the module handle (in the data section of the image) of the DLL
@@ -42,7 +42,7 @@ namespace SabreTools.Models.PortableExecutable
/// The phmod field points to the handle. The supplied delay-load helper uses
/// this location to store the handle to the loaded DLL.
/// </remarks>
public uint ModuleHandle;
public uint ModuleHandle { get; set; }
/// <summary>
/// The RVA of the delay-load import address table.
@@ -54,7 +54,7 @@ namespace SabreTools.Models.PortableExecutable
/// the calling loop. The function pointers are accessed by using the expression
/// pINT->u1.Function.
/// </remarks>
public uint DelayImportAddressTable;
public uint DelayImportAddressTable { get; set; }
/// <summary>
/// The RVA of the delay-load name table, which contains the names of the imports
@@ -66,7 +66,7 @@ namespace SabreTools.Models.PortableExecutable
/// in the IAT. They consist of the same structures as the standard INT and are
/// accessed by using the expression pINT->u1.AddressOfData->Name[0].
/// </remarks>
public uint DelayImportNameTable;
public uint DelayImportNameTable { get; set; }
/// <summary>
/// The RVA of the bound delay-load address table, if it exists.
@@ -76,7 +76,7 @@ namespace SabreTools.Models.PortableExecutable
/// IMAGE_THUNK_DATA items that is used along with the timestamp field of the
/// delay-load directory table by a post-process binding phase.
/// </remarks>
public uint BoundDelayImportTable;
public uint BoundDelayImportTable { get; set; }
/// <summary>
/// The RVA of the unload delay-load address table, if it exists. This is an exact
@@ -92,7 +92,7 @@ namespace SabreTools.Models.PortableExecutable
/// On the unload request, the library can be freed, the *phmod cleared, and the
/// UIAT written over the IAT to restore everything to its preload state.
/// </remarks>
public uint UnloadDelayImportTable;
public uint UnloadDelayImportTable { get; set; }
/// <summary>
/// The timestamp of the DLL to which this image has been bound.
@@ -102,6 +102,6 @@ namespace SabreTools.Models.PortableExecutable
/// IMAGE_THUNK_DATA items that is used along with the timestamp field of the
/// delay-load directory table by a post-process binding phase.
/// </remarks>
public uint TimeStamp;
public uint TimeStamp { get; set; }
}
}

View File

@@ -15,18 +15,18 @@
/// Dialog box header structure
/// </summary>
#if NET48
public DialogTemplate DialogTemplate;
public DialogTemplate DialogTemplate { get; set; }
#else
public DialogTemplate? DialogTemplate;
public DialogTemplate? DialogTemplate { get; set; }
#endif
/// <summary>
/// Dialog box extended header structure
/// </summary>
#if NET48
public DialogTemplateExtended ExtendedDialogTemplate;
public DialogTemplateExtended ExtendedDialogTemplate { get; set; }
#else
public DialogTemplateExtended? ExtendedDialogTemplate;
public DialogTemplateExtended? ExtendedDialogTemplate { get; set; }
#endif
#endregion
@@ -40,9 +40,9 @@
/// These DLGITEMTEMPLATE structures must be aligned on DWORD boundaries.
/// </summary>
#if NET48
public DialogItemTemplate[] DialogItemTemplates;
public DialogItemTemplate[] DialogItemTemplates { get; set; }
#else
public DialogItemTemplate?[]? DialogItemTemplates;
public DialogItemTemplate?[]? DialogItemTemplates { get; set; }
#endif
/// <summary>
@@ -52,9 +52,9 @@
/// structures that follow in the template.
/// </summary>
#if NET48
public DialogItemTemplateExtended[] ExtendedDialogItemTemplates;
public DialogItemTemplateExtended[] ExtendedDialogItemTemplates { get; set; }
#else
public DialogItemTemplateExtended?[]? ExtendedDialogItemTemplates;
public DialogItemTemplateExtended?[]? ExtendedDialogItemTemplates { get; set; }
#endif
#endregion

View File

@@ -16,14 +16,14 @@ namespace SabreTools.Models.PortableExecutable
/// (such as WS_BORDER) and one or more of the control style values (such as
/// BS_PUSHBUTTON and ES_LEFT).
/// </summary>
public WindowStyles Style;
public WindowStyles Style { get; set; }
/// <summary>
/// The extended styles for a window. This member is not used to create dialog boxes,
/// but applications that use dialog box templates can use it to create other types
/// of windows.
/// </summary>
public ExtendedWindowStyles ExtendedStyle;
public ExtendedWindowStyles ExtendedStyle { get; set; }
/// <summary>
/// The x-coordinate, in dialog box units, of the upper-left corner of the control.
@@ -34,7 +34,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionX;
public short PositionX { get; set; }
/// <summary>
/// The y-coordinate, in dialog box units, of the upper-left corner of the control.
@@ -45,7 +45,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionY;
public short PositionY { get; set; }
/// <summary>
/// The width, in dialog box units, of the control.
@@ -54,7 +54,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short WidthX;
public short WidthX { get; set; }
/// <summary>
/// The height, in dialog box units, of the control.
@@ -63,12 +63,12 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short HeightY;
public short HeightY { get; set; }
/// <summary>
/// The control identifier.
/// </summary>
public ushort ID;
public ushort ID { get; set; }
// In a standard template for a dialog box, the DLGITEMTEMPLATE structure is always immediately
// followed by three variable-length arrays specifying the class, title, and creation data for
@@ -90,15 +90,15 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string ClassResource;
public string ClassResource { get; set; }
#else
public string? ClassResource;
public string? ClassResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a predefined system class.
/// </summary>
public DialogItemTemplateOrdinal ClassResourceOrdinal;
public DialogItemTemplateOrdinal ClassResourceOrdinal { get; set; }
/// <summary>
/// Following the class array is a title array that contains the initial text or resource identifier
@@ -113,22 +113,22 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string TitleResource;
public string TitleResource { get; set; }
#else
public string? TitleResource;
public string? TitleResource { get; set; }
#endif
/// <summary>
/// An ordinal value of a resource, such as an icon, in an executable file
/// </summary>
public ushort TitleResourceOrdinal;
public ushort TitleResourceOrdinal { get; set; }
/// <summary>
/// The creation data array begins at the next WORD boundary after the title array. This creation data
/// can be of any size and format. If the first word of the creation data array is nonzero, it indicates
/// the size, in bytes, of the creation data (including the size word).
/// </summary>
public ushort CreationDataSize;
public ushort CreationDataSize { get; set; }
/// <summary>
/// The creation data array begins at the next WORD boundary after the title array. This creation data
@@ -137,9 +137,9 @@ namespace SabreTools.Models.PortableExecutable
/// WM_CREATE message that it sends to the control.
/// </summary>
#if NET48
public byte[] CreationData;
public byte[] CreationData { get; set; }
#else
public byte[]? CreationData;
public byte[]? CreationData { get; set; }
#endif
}
}

View File

@@ -14,21 +14,21 @@ namespace SabreTools.Models.PortableExecutable
/// The help context identifier for the control. When the system sends a WM_HELP message,
/// it passes the helpID value in the dwContextId member of the HELPINFO structure.
/// </summary>
public uint HelpID;
public uint HelpID { get; set; }
/// <summary>
/// The extended styles for a window. This member is not used to create controls in dialog
/// boxes, but applications that use dialog box templates can use it to create other types
/// of windows.
/// </summary>
public ExtendedWindowStyles ExtendedStyle;
public ExtendedWindowStyles ExtendedStyle { get; set; }
/// <summary>
/// The style of the control. This member can be a combination of window style values
/// (such as WS_BORDER) and one or more of the control style values (such as
/// BS_PUSHBUTTON and ES_LEFT).
/// </summary>
public WindowStyles Style;
public WindowStyles Style { get; set; }
/// <summary>
/// The x-coordinate, in dialog box units, of the upper-left corner of the control.
@@ -39,7 +39,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionX;
public short PositionX { get; set; }
/// <summary>
/// The y-coordinate, in dialog box units, of the upper-left corner of the control.
@@ -50,7 +50,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionY;
public short PositionY { get; set; }
/// <summary>
/// The width, in dialog box units, of the control.
@@ -59,7 +59,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short WidthX;
public short WidthX { get; set; }
/// <summary>
/// The height, in dialog box units, of the control.
@@ -68,12 +68,12 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values to screen
/// units (pixels) by using the MapDialogRect function.
/// </remarks>
public short HeightY;
public short HeightY { get; set; }
/// <summary>
/// The control identifier.
/// </summary>
public uint ID;
public uint ID { get; set; }
/// <summary>
/// A variable-length array of 16-bit elements that specifies the window class of the control. If
@@ -88,15 +88,15 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string ClassResource;
public string ClassResource { get; set; }
#else
public string? ClassResource;
public string? ClassResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a predefined system class.
/// </summary>
public DialogItemTemplateOrdinal ClassResourceOrdinal;
public DialogItemTemplateOrdinal ClassResourceOrdinal { get; set; }
/// <summary>
/// A variable-length array of 16-bit elements that contains the initial text or resource identifier of the
@@ -111,22 +111,22 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string TitleResource;
public string TitleResource { get; set; }
#else
public string? TitleResource;
public string? TitleResource { get; set; }
#endif
/// <summary>
/// An ordinal value of a resource, such as an icon, in an executable file
/// </summary>
public ushort TitleResourceOrdinal;
public ushort TitleResourceOrdinal { get; set; }
/// <summary>
/// The creation data array begins at the next WORD boundary after the title array. This creation data
/// can be of any size and format. If the first word of the creation data array is nonzero, it indicates
/// the size, in bytes, of the creation data (including the size word).
/// </summary>
public ushort CreationDataSize;
public ushort CreationDataSize { get; set; }
/// <summary>
/// The creation data array begins at the next WORD boundary after the title array. This creation data
@@ -135,9 +135,9 @@ namespace SabreTools.Models.PortableExecutable
/// WM_CREATE message that it sends to the control.
/// </summary>
#if NET48
public byte[] CreationData;
public byte[] CreationData { get; set; }
#else
public byte[]? CreationData;
public byte[]? CreationData { get; set; }
#endif
}
}

View File

@@ -29,19 +29,19 @@ namespace SabreTools.Models.PortableExecutable
///
/// The DS_SHELLFONT style is not supported in the DLGTEMPLATE header.
/// </summary>
public WindowStyles Style;
public WindowStyles Style { get; set; }
/// <summary>
/// The extended styles for a window. This member is not used to create dialog boxes,
/// but applications that use dialog box templates can use it to create other types
/// of windows.
/// </summary>
public ExtendedWindowStyles ExtendedStyle;
public ExtendedWindowStyles ExtendedStyle { get; set; }
/// <summary>
/// The number of items in the dialog box.
/// </summary>
public ushort ItemCount;
public ushort ItemCount { get; set; }
/// <summary>
/// The x-coordinate, in dialog box units, of the upper-left corner of the dialog box.
@@ -50,7 +50,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionX;
public short PositionX { get; set; }
/// <summary>
/// The y-coordinate, in dialog box units, of the upper-left corner of the dialog box.
@@ -59,7 +59,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionY;
public short PositionY { get; set; }
/// <summary>
/// The width, in dialog box units, of the dialog box.
@@ -68,7 +68,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short WidthX;
public short WidthX { get; set; }
/// <summary>
/// The height, in dialog box units, of the dialog box.
@@ -77,7 +77,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short HeightY;
public short HeightY { get; set; }
// In a standard template for a dialog box, the DLGTEMPLATE structure is always immediately
// followed by three variable-length arrays that specify the menu, class, and title for the
@@ -100,15 +100,15 @@ namespace SabreTools.Models.PortableExecutable
/// Unicode strings.
/// </remarks>
#if NET48
public string MenuResource;
public string MenuResource { get; set; }
#else
public string? MenuResource;
public string? MenuResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a menu resource in an executable file.
/// </summary>
public ushort MenuResourceOrdinal;
public ushort MenuResourceOrdinal { get; set; }
/// <summary>
/// Following the menu array is a class array that identifies the window class of the dialog box.
@@ -123,15 +123,15 @@ namespace SabreTools.Models.PortableExecutable
/// Unicode strings.
/// </remarks>
#if NET48
public string ClassResource;
public string ClassResource { get; set; }
#else
public string? ClassResource;
public string? ClassResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a predefined system class.
/// </summary>
public ushort ClassResourceOrdinal;
public ushort ClassResourceOrdinal { get; set; }
/// <summary>
/// Following the class array is a title array that specifies a null-terminated Unicode string
@@ -143,9 +143,9 @@ namespace SabreTools.Models.PortableExecutable
/// Unicode strings.
/// </remarks>
#if NET48
public string TitleResource;
public string TitleResource { get; set; }
#else
public string? TitleResource;
public string? TitleResource { get; set; }
#endif
/// <summary>
@@ -156,7 +156,7 @@ namespace SabreTools.Models.PortableExecutable
/// and sends a WM_SETFONT message to the dialog box procedure and the control window
/// procedures as it creates the dialog box and controls.
/// </summary>
public ushort PointSizeValue;
public ushort PointSizeValue { get; set; }
/// <summary>
/// The 16-bit point size value and the typeface array follow the title array, but only if the
@@ -171,9 +171,9 @@ namespace SabreTools.Models.PortableExecutable
/// Unicode strings.
/// </remarks>
#if NET48
public string Typeface;
public string Typeface { get; set; }
#else
public string? Typeface;
public string? Typeface { get; set; }
#endif
}
}

View File

@@ -20,7 +20,7 @@ namespace SabreTools.Models.PortableExecutable
/// The version number of the extended dialog box template. This member must be
/// set to 1.
/// </summary>
public ushort Version;
public ushort Version { get; set; }
/// <summary>
/// Indicates whether a template is an extended dialog box template. If signature
@@ -29,21 +29,21 @@ namespace SabreTools.Models.PortableExecutable
/// than 0xFFFF, this is a standard dialog box template that uses the DLGTEMPLATE
/// and DLGITEMTEMPLATE structures.
/// </summary>
public ushort Signature;
public ushort Signature { get; set; }
/// <summary>
/// The help context identifier for the dialog box window. When the system sends a
/// WM_HELP message, it passes this value in the wContextId member of the HELPINFO
/// structure.
/// </summary>
public uint HelpID;
public uint HelpID { get; set; }
/// <summary>
/// The extended windows styles. This member is not used when creating dialog boxes,
/// but applications that use dialog box templates can use it to create other types
/// of windows.
/// </summary>
public ExtendedWindowStyles ExtendedStyle;
public ExtendedWindowStyles ExtendedStyle { get; set; }
/// <summary>
/// The style of the dialog box.
@@ -55,12 +55,12 @@ namespace SabreTools.Models.PortableExecutable
/// to the values specified in these members. Then the system sends a WM_SETFONT message
/// to the dialog box and to each control to provide a handle to the font.
/// </summary>
public WindowStyles Style;
public WindowStyles Style { get; set; }
/// <summary>
/// The number of controls in the dialog box.
/// </summary>
public ushort DialogItems;
public ushort DialogItems { get; set; }
/// <summary>
/// The x-coordinate, in dialog box units, of the upper-left corner of the dialog box.
@@ -69,7 +69,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionX;
public short PositionX { get; set; }
/// <summary>
/// The y-coordinate, in dialog box units, of the upper-left corner of the dialog box.
@@ -78,7 +78,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short PositionY;
public short PositionY { get; set; }
/// <summary>
/// The width, in dialog box units, of the dialog box.
@@ -87,7 +87,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short WidthX;
public short WidthX { get; set; }
/// <summary>
/// The height, in dialog box units, of the dialog box.
@@ -96,7 +96,7 @@ namespace SabreTools.Models.PortableExecutable
/// The x, y, cx, and cy members specify values in dialog box units. You can convert these values
/// to screen units (pixels) by using the MapDialogRect function.
/// </remarks>
public short HeightY;
public short HeightY { get; set; }
/// <summary>
/// A variable-length array of 16-bit elements that identifies a menu resource for the dialog box.
@@ -111,15 +111,15 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string MenuResource;
public string MenuResource { get; set; }
#else
public string? MenuResource;
public string? MenuResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a menu resource in an executable file.
/// </summary>
public ushort MenuResourceOrdinal;
public ushort MenuResourceOrdinal { get; set; }
/// <summary>A variable-length array of 16-bit elements that identifies the window class of the
/// dialog box. If the first element of the array is 0x0000, the system uses the predefined dialog
@@ -133,15 +133,15 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string ClassResource;
public string ClassResource { get; set; }
#else
public string? ClassResource;
public string? ClassResource { get; set; }
#endif
/// <summary>
/// The ordinal value of a predefined system window class.
/// </summary>
public ushort ClassResourceOrdinal;
public ushort ClassResourceOrdinal { get; set; }
/// <summary>
/// The title of the dialog box. If the first element of this array is 0x0000, the dialog box has no
@@ -152,9 +152,9 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string TitleResource;
public string TitleResource { get; set; }
#else
public string? TitleResource;
public string? TitleResource { get; set; }
#endif
/// <summary>
@@ -162,7 +162,7 @@ namespace SabreTools.Models.PortableExecutable
///
/// This member is present only if the style member specifies DS_SETFONT or DS_SHELLFONT.
/// </summary>
public ushort PointSize;
public ushort PointSize { get; set; }
/// <summary>
/// The weight of the font. Note that, although this can be any of the values listed for the lfWeight
@@ -170,21 +170,21 @@ namespace SabreTools.Models.PortableExecutable
///
/// This member is present only if the style member specifies DS_SETFONT or DS_SHELLFONT.
/// </summary>
public ushort Weight;
public ushort Weight { get; set; }
/// <summary>
/// Indicates whether the font is italic. If this value is TRUE, the font is italic.
///
/// This member is present only if the style member specifies DS_SETFONT or DS_SHELLFONT.
/// </summary>
public byte Italic;
public byte Italic { get; set; }
/// <summary>
/// The character set to be used. For more information, see the lfcharset member of LOGFONT.
///
/// This member is present only if the style member specifies DS_SETFONT or DS_SHELLFONT.
/// </summary>
public byte CharSet;
public byte CharSet { get; set; }
/// <summary>
/// The name of the typeface for the font.
@@ -196,9 +196,9 @@ namespace SabreTools.Models.PortableExecutable
/// MultiByteToWideChar function to generate Unicode strings from ANSI strings.
/// </remarks>
#if NET48
public string Typeface;
public string Typeface { get; set; }
#else
public string? Typeface;
public string? Typeface { get; set; }
#endif
}
}

View File

@@ -10,16 +10,16 @@
/// <summary>
/// A unique ordinal identifier for an individual font in a font resource group.
/// </summary>
public ushort FontOrdinal;
public ushort FontOrdinal { get; set; }
/// <summary>
/// The FONTDIRENTRY structure for the specified font directly follows the DIRENTRY structure
/// for that font.
/// </summary>
#if NET48
public FontDirEntry Entry;
public FontDirEntry Entry { get; set; }
#else
public FontDirEntry? Entry;
public FontDirEntry? Entry { get; set; }
#endif
}
}

View File

@@ -15,37 +15,37 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Reserved, must be 0.
/// </summary>
public uint ExportFlags;
public uint ExportFlags { get; set; }
/// <summary>
/// The time and date that the export data was created.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// The major version number. The major and minor version numbers can be set
/// by the user.
/// </summary>
public ushort MajorVersion;
public ushort MajorVersion { get; set; }
/// <summary>
/// The minor version number.
/// </summary>
public ushort MinorVersion;
public ushort MinorVersion { get; set; }
/// <summary>
/// The address of the ASCII string that contains the name of the DLL. This
/// address is relative to the image base.
/// </summary>
public uint NameRVA;
public uint NameRVA { get; set; }
/// <summary>
/// ASCII string that contains the name of the DLL.
/// </summary>
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
/// <summary>
@@ -53,33 +53,33 @@ namespace SabreTools.Models.PortableExecutable
/// the starting ordinal number for the export address table. It is usually set
/// to 1.
/// </summary>
public uint OrdinalBase;
public uint OrdinalBase { get; set; }
/// <summary>
/// The number of entries in the export address table.
/// </summary>
public uint AddressTableEntries;
public uint AddressTableEntries { get; set; }
/// <summary>
/// The number of entries in the name pointer table. This is also the number of
/// entries in the ordinal table.
/// </summary>
public uint NumberOfNamePointers;
public uint NumberOfNamePointers { get; set; }
/// <summary>
/// The address of the export address table, relative to the image base.
/// </summary>
public uint ExportAddressTableRVA;
public uint ExportAddressTableRVA { get; set; }
/// <summary>
/// The address of the export name pointer table, relative to the image base.
/// The table size is given by the Number of Name Pointers field.
/// </summary>
public uint NamePointerRVA;
public uint NamePointerRVA { get; set; }
/// <summary>
/// The address of the ordinal table, relative to the image base.
/// </summary>
public uint OrdinalTableRVA;
public uint OrdinalTableRVA { get; set; }
}
}

View File

@@ -14,9 +14,9 @@
/// The pointers are 32 bits each and are relative to the image base.
/// </summary>
#if NET48
public uint[] Pointers;
public uint[] Pointers { get; set; }
#else
public uint[]? Pointers;
public uint[]? Pointers { get; set; }
#endif
}
}

View File

@@ -23,9 +23,9 @@
/// A series of null-terminated ASCII strings of variable length.
/// </summary>
#if NET48
public string[] Strings;
public string[] Strings { get; set; }
#else
public string[]? Strings;
public string[]? Strings { get; set; }
#endif
}
}

View File

@@ -38,9 +38,9 @@
/// An array of 16-bit unbiased indexes into the export address table
/// </summary>
#if NET48
public ushort[] Indexes;
public ushort[] Indexes { get; set; }
#else
public ushort[]? Indexes;
public ushort[]? Indexes { get; set; }
#endif
}
}

View File

@@ -20,9 +20,9 @@
/// locations and sizes of the other export tables.
/// </summary>
#if NET48
public ExportDirectoryTable ExportDirectoryTable;
public ExportDirectoryTable ExportDirectoryTable { get; set; }
#else
public ExportDirectoryTable? ExportDirectoryTable;
public ExportDirectoryTable? ExportDirectoryTable { get; set; }
#endif
/// <summary>
@@ -32,18 +32,18 @@
/// using the public name that corresponds to the ordinal if a public name is defined.
/// </summary>
#if NET48
public ExportAddressTableEntry[] ExportAddressTable;
public ExportAddressTableEntry[] ExportAddressTable { get; set; }
#else
public ExportAddressTableEntry?[]? ExportAddressTable;
public ExportAddressTableEntry?[]? ExportAddressTable { get; set; }
#endif
/// <summary>
/// An array of pointers to the public export names, sorted in ascending order.
/// </summary>
#if NET48
public ExportNamePointerTable NamePointerTable;
public ExportNamePointerTable NamePointerTable { get; set; }
#else
public ExportNamePointerTable? NamePointerTable;
public ExportNamePointerTable? NamePointerTable { get; set; }
#endif
/// <summary>
@@ -53,9 +53,9 @@
/// table.
/// </summary>
#if NET48
public ExportOrdinalTable OrdinalTable;
public ExportOrdinalTable OrdinalTable { get; set; }
#else
public ExportOrdinalTable? OrdinalTable;
public ExportOrdinalTable? OrdinalTable { get; set; }
#endif
/// <summary>
@@ -65,9 +65,9 @@
/// the image file.
/// </summary>
#if NET48
public ExportNameTable ExportNameTable;
public ExportNameTable ExportNameTable { get; set; }
#else
public ExportNameTable? ExportNameTable;
public ExportNameTable? ExportNameTable { get; set; }
#endif
}
}

View File

@@ -14,75 +14,75 @@ namespace SabreTools.Models.PortableExecutable
/// Contains the value 0xFEEF04BD. This is used with the szKey member of the VS_VERSIONINFO
/// structure when searching a file for the FixedFileInfo structure.
/// </summary>
public uint Signature;
public uint Signature { get; set; }
/// <summary>
/// The binary version number of this structure. The high-order word of this member contains
/// the major version number, and the low-order word contains the minor version number.
/// </summary>
public uint StrucVersion;
public uint StrucVersion { get; set; }
/// <summary>
/// The most significant 32 bits of the file's binary version number. This member is used with
/// FileVersionLS to form a 64-bit value used for numeric comparisons.
/// </summary>
public uint FileVersionMS;
public uint FileVersionMS { get; set; }
/// <summary>
/// The least significant 32 bits of the file's binary version number. This member is used with
/// FileVersionMS to form a 64-bit value used for numeric comparisons.
/// </summary>
public uint FileVersionLS;
public uint FileVersionLS { get; set; }
/// <summary>
/// The most significant 32 bits of the binary version number of the product with which this file
/// was distributed. This member is used with ProductVersionLS to form a 64-bit value used for
/// numeric comparisons.
/// </summary>
public uint ProductVersionMS;
public uint ProductVersionMS { get; set; }
/// <summary>
/// The least significant 32 bits of the binary version number of the product with which this file
/// was distributed. This member is used with ProductVersionMS to form a 64-bit value used for
/// numeric comparisons.
/// </summary>
public uint ProductVersionLS;
public uint ProductVersionLS { get; set; }
/// <summary>
/// Contains a bitmask that specifies the valid bits in FileFlags. A bit is valid only if it was
/// defined when the file was created.
/// </summary>
public uint FileFlagsMask;
public uint FileFlagsMask { get; set; }
/// <summary>
/// Contains a bitmask that specifies the Boolean attributes of the file.
/// </summary>
public FixedFileInfoFlags FileFlags;
public FixedFileInfoFlags FileFlags { get; set; }
/// <summary>
/// The operating system for which this file was designed.
/// </summary>
public FixedFileInfoOS FileOS;
public FixedFileInfoOS FileOS { get; set; }
/// <summary>
/// The general type of file.
/// </summary>
public FixedFileInfoFileType FileType;
public FixedFileInfoFileType FileType { get; set; }
/// <summary>
/// The function of the file. The possible values depend on the value of FileType. For all values
/// of FileType not described in the following list, FileSubtype is zero.
/// </summary>
public FixedFileInfoFileSubtype FileSubtype;
public FixedFileInfoFileSubtype FileSubtype { get; set; }
/// <summary>
/// The most significant 32 bits of the file's 64-bit binary creation date and time stamp.
/// </summary>
public uint FileDateMS;
public uint FileDateMS { get; set; }
/// <summary>
/// The least significant 32 bits of the file's 64-bit binary creation date and time stamp.
/// </summary>
public uint FileDateLS;
public uint FileDateLS { get; set; }
}
}

View File

@@ -11,176 +11,176 @@
/// A user-defined version number for the resource data that tools can use to read and write
/// resource files.
/// </summary>
public ushort Version;
public ushort Version { get; set; }
/// <summary>
/// The size of the file, in bytes.
/// </summary>
public uint Size;
public uint Size { get; set; }
/// <summary>
/// The font supplier's copyright information.
/// </summary>
/// <remarks>60 characters</remarks>
#if NET48
public byte[] Copyright;
public byte[] Copyright { get; set; }
#else
public byte[]? Copyright;
public byte[]? Copyright { get; set; }
#endif
/// <summary>
/// The type of font file.
/// </summary>
public ushort Type;
public ushort Type { get; set; }
/// <summary>
/// The point size at which this character set looks best.
/// </summary>
public ushort Points;
public ushort Points { get; set; }
/// <summary>
/// The vertical resolution, in dots per inch, at which this character set was digitized.
/// </summary>
public ushort VertRes;
public ushort VertRes { get; set; }
/// <summary>
/// The horizontal resolution, in dots per inch, at which this character set was digitized.
/// </summary>
public ushort HorizRes;
public ushort HorizRes { get; set; }
/// <summary>
/// The distance from the top of a character definition cell to the baseline of the typographical
/// font.
/// </summary>
public ushort Ascent;
public ushort Ascent { get; set; }
/// <summary>
/// The amount of leading inside the bounds set by the PixHeight member. Accent marks and other
/// diacritical characters can occur in this area.
/// </summary>
public ushort InternalLeading;
public ushort InternalLeading { get; set; }
/// <summary>
/// The amount of extra leading that the application adds between rows.
/// </summary>
public ushort ExternalLeading;
public ushort ExternalLeading { get; set; }
/// <summary>
/// An italic font if not equal to zero.
/// </summary>
public byte Italic;
public byte Italic { get; set; }
/// <summary>
/// An underlined font if not equal to zero.
/// </summary>
public byte Underline;
public byte Underline { get; set; }
/// <summary>
/// A strikeout font if not equal to zero.
/// </summary>
public byte StrikeOut;
public byte StrikeOut { get; set; }
/// <summary>
/// The weight of the font in the range 0 through 1000. For example, 400 is roman and 700 is bold.
/// If this value is zero, a default weight is used. For additional defined values, see the
/// description of the LOGFONT structure.
/// </summary>
public ushort Weight;
public ushort Weight { get; set; }
/// <summary>
/// The character set of the font. For predefined values, see the description of the LOGFONT
/// structure.
/// </summary>
public byte CharSet;
public byte CharSet { get; set; }
/// <summary>
/// The width of the grid on which a vector font was digitized. For raster fonts, if the member
/// is not equal to zero, it represents the width for all the characters in the bitmap. If the
/// member is equal to zero, the font has variable-width characters.
/// </summary>
public ushort PixWidth;
public ushort PixWidth { get; set; }
/// <summary>
/// The height of the character bitmap for raster fonts or the height of the grid on which a
/// vector font was digitized.
/// </summary>
public ushort PixHeight;
public ushort PixHeight { get; set; }
/// <summary>
/// The pitch and the family of the font. For additional information, see the description of
/// the LOGFONT structure.
/// </summary>
public byte PitchAndFamily;
public byte PitchAndFamily { get; set; }
/// <summary>
/// The average width of characters in the font (generally defined as the width of the letter x).
/// This value does not include the overhang required for bold or italic characters.
/// </summary>
public ushort AvgWidth;
public ushort AvgWidth { get; set; }
/// <summary>
/// The width of the widest character in the font.
/// </summary>
public ushort MaxWidth;
public ushort MaxWidth { get; set; }
/// <summary>
/// The first character code defined in the font.
/// </summary>
public byte FirstChar;
public byte FirstChar { get; set; }
/// <summary>
/// The last character code defined in the font.
/// </summary>
public byte LastChar;
public byte LastChar { get; set; }
/// <summary>
/// The character to substitute for characters not in the font.
/// </summary>
public byte DefaultChar;
public byte DefaultChar { get; set; }
/// <summary>
/// The character that will be used to define word breaks for text justification.
/// </summary>
public byte BreakChar;
public byte BreakChar { get; set; }
/// <summary>
/// The number of bytes in each row of the bitmap. This value is always even so that the rows
/// start on word boundaries. For vector fonts, this member has no meaning.
/// </summary>
public ushort WidthBytes;
public ushort WidthBytes { get; set; }
/// <summary>
/// The offset in the file to a null-terminated string that specifies a device name. For a
/// generic font, this value is zero.
/// </summary>
public uint Device;
public uint Device { get; set; }
/// <summary>
/// The offset in the file to a null-terminated string that names the typeface.
/// </summary>
public uint Face;
public uint Face { get; set; }
/// <summary>
/// This member is reserved.
/// </summary>
public uint Reserved;
public uint Reserved { get; set; }
/// <summary>
/// The name of the device if this font file is designated for a specific device.
/// </summary>
#if NET48
public string DeviceName;
public string DeviceName { get; set; }
#else
public string? DeviceName;
public string? DeviceName { get; set; }
#endif
/// <summary>
/// The typeface name of the font.
/// </summary>
#if NET48
public string FaceName;
public string FaceName { get; set; }
#else
public string? FaceName;
public string? FaceName { get; set; }
#endif
}
}

View File

@@ -10,16 +10,16 @@
/// <summary>
/// The number of individual fonts associated with this resource.
/// </summary>
public ushort NumberOfFonts;
public ushort NumberOfFonts { get; set; }
/// <summary>
/// A structure that contains a unique ordinal identifier for each font in the resource. The DE
/// member is a placeholder for the variable-length array of DIRENTRY structures.
/// </summary>
#if NET48
public DirEntry[] DE;
public DirEntry[] DE { get; set; }
#else
public DirEntry?[]? DE;
public DirEntry?[]? DE { get; set; }
#endif
}
}

View File

@@ -11,7 +11,7 @@
/// with this value. If it fails, a binary search is performed on the DLL's
/// export name pointer table.
/// </summary>
public ushort Hint;
public ushort Hint { get; set; }
/// <summary>
/// An ASCII string that contains the name to import. This is the string that
@@ -19,9 +19,9 @@
/// and terminated by a null byte.
/// </summary>
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
}
}

View File

@@ -16,14 +16,14 @@
/// masked as 0x80000000 for PE32, 0x8000000000000000 for PE32+.
/// </summary>
/// <remarks>Bit 31/63</remarks>
public bool OrdinalNameFlag;
public bool OrdinalNameFlag { get; set; }
/// <summary>
/// A 16-bit ordinal number. This field is used only if the Ordinal/Name Flag
/// bit field is 1 (import by ordinal). Bits 30-15 or 62-15 must be 0.
/// </summary>
/// <remarks>Bits 15-0</remarks>
public ushort OrdinalNumber;
public ushort OrdinalNumber { get; set; }
/// <summary>
/// A 31-bit RVA of a hint/name table entry. This field is used only if the
@@ -31,6 +31,6 @@
/// must be zero.
/// </summary>
/// <remarks>Bits 30-0</remarks>
public uint HintNameTableRVA;
public uint HintNameTableRVA { get; set; }
}
}

View File

@@ -20,38 +20,38 @@ namespace SabreTools.Models.PortableExecutable
/// for each import. (The name "Characteristics" is used in Winnt.h, but no
/// longer describes this field.)
/// </summary>
public uint ImportLookupTableRVA;
public uint ImportLookupTableRVA { get; set; }
/// <summary>
/// The stamp that is set to zero until the image is bound. After the image is
/// bound, this field is set to the time/data stamp of the DLL.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// The index of the first forwarder reference.
/// </summary>
public uint ForwarderChain;
public uint ForwarderChain { get; set; }
/// <summary>
/// The address of an ASCII string that contains the name of the DLL. This address
/// is relative to the image base.
/// </summary>
public uint NameRVA;
public uint NameRVA { get; set; }
/// <summary>
/// ASCII string that contains the name of the DLL.
/// </summary>
#if NET48
public string Name;
public string Name { get; set; }
#else
public string? Name;
public string? Name { get; set; }
#endif
/// <summary>
/// The RVA of the import address table. The contents of this table are identical
/// to the contents of the import lookup table until the image is bound.
/// </summary>
public uint ImportAddressTableRVA;
public uint ImportAddressTableRVA { get; set; }
}
}

View File

@@ -16,14 +16,14 @@
/// masked as 0x80000000 for PE32, 0x8000000000000000 for PE32+.
/// </summary>
/// <remarks>Bit 31/63</remarks>
public bool OrdinalNameFlag;
public bool OrdinalNameFlag { get; set; }
/// <summary>
/// A 16-bit ordinal number. This field is used only if the Ordinal/Name Flag
/// bit field is 1 (import by ordinal). Bits 30-15 or 62-15 must be 0.
/// </summary>
/// <remarks>Bits 15-0</remarks>
public ushort OrdinalNumber;
public ushort OrdinalNumber { get; set; }
/// <summary>
/// A 31-bit RVA of a hint/name table entry. This field is used only if the
@@ -31,6 +31,6 @@
/// must be zero.
/// </summary>
/// <remarks>Bits 30-0</remarks>
public uint HintNameTableRVA;
public uint HintNameTableRVA { get; set; }
}
}

View File

@@ -24,9 +24,9 @@ namespace SabreTools.Models.PortableExecutable
/// remainder of the import information.
/// </summary>
#if NET48
public ImportDirectoryTableEntry[] ImportDirectoryTable;
public ImportDirectoryTableEntry[] ImportDirectoryTable { get; set; }
#else
public ImportDirectoryTableEntry?[]? ImportDirectoryTable;
public ImportDirectoryTableEntry?[]? ImportDirectoryTable { get; set; }
#endif
/// <summary>
@@ -34,9 +34,9 @@ namespace SabreTools.Models.PortableExecutable
/// numbers for PE32+.
/// </summary>
#if NET48
public Dictionary<int, ImportLookupTableEntry[]> ImportLookupTables;
public Dictionary<int, ImportLookupTableEntry[]> ImportLookupTables { get; set; }
#else
public Dictionary<int, ImportLookupTableEntry?[]?>? ImportLookupTables;
public Dictionary<int, ImportLookupTableEntry?[]?>? ImportLookupTables { get; set; }
#endif
/// <summary>
@@ -44,18 +44,18 @@ namespace SabreTools.Models.PortableExecutable
/// they are still called "virtual addresses".
/// </summary>
#if NET48
public Dictionary<int, ImportAddressTableEntry[]> ImportAddressTables;
public Dictionary<int, ImportAddressTableEntry[]> ImportAddressTables { get; set; }
#else
public Dictionary<int, ImportAddressTableEntry?[]?>? ImportAddressTables;
public Dictionary<int, ImportAddressTableEntry?[]?>? ImportAddressTables { get; set; }
#endif
/// <summary>
/// One hint/name table suffices for the entire import section.
/// </summary>
#if NET48
public HintNameTableEntry[] HintNameTable;
public HintNameTableEntry[] HintNameTable { get; set; }
#else
public HintNameTableEntry?[]? HintNameTable;
public HintNameTableEntry?[]? HintNameTable { get; set; }
#endif
}
}

View File

@@ -14,7 +14,7 @@
/// <summary>
/// Flags that indicate attributes of the file, currently unused.
/// </summary>
public uint Characteristics;
public uint Characteristics { get; set; }
/// <summary>
/// Date and time stamp value. The value is represented in the number of
@@ -22,47 +22,47 @@
/// Universal Coordinated Time, according to the system clock. The time
/// stamp can be printed by using the C runtime (CRT) time function.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// Major version number.
/// </summary>
public ushort MajorVersion;
public ushort MajorVersion { get; set; }
/// <summary>
/// Minor version number.
/// </summary>
public ushort MinorVersion;
public ushort MinorVersion { get; set; }
/// <summary>
/// The global loader flags to clear for this process as the loader starts
/// the process.
/// </summary>
public uint GlobalFlagsClear;
public uint GlobalFlagsClear { get; set; }
/// <summary>
/// The global loader flags to set for this process as the loader starts
/// the process.
/// </summary>
public uint GlobalFlagsSet;
public uint GlobalFlagsSet { get; set; }
/// <summary>
/// The default timeout value to use for this process's critical sections
/// that are abandoned.
/// </summary>
public uint CriticalSectionDefaultTimeout;
public uint CriticalSectionDefaultTimeout { get; set; }
#region DeCommitFreeBlockThreshold
/// <summary>
/// Memory that must be freed before it is returned to the system, in bytes.
/// </summary>
public uint DeCommitFreeBlockThreshold_PE32;
public uint DeCommitFreeBlockThreshold_PE32 { get; set; }
/// <summary>
/// Memory that must be freed before it is returned to the system, in bytes.
/// </summary>
public ulong DeCommitFreeBlockThreshold_PE32Plus;
public ulong DeCommitFreeBlockThreshold_PE32Plus { get; set; }
#endregion
@@ -71,12 +71,12 @@
/// <summary>
/// Total amount of free memory, in bytes.
/// </summary>
public uint DeCommitTotalFreeThreshold_PE32;
public uint DeCommitTotalFreeThreshold_PE32 { get; set; }
/// <summary>
/// Total amount of free memory, in bytes.
/// </summary>
public ulong DeCommitTotalFreeThreshold_PE32Plus;
public ulong DeCommitTotalFreeThreshold_PE32Plus { get; set; }
#endregion
@@ -86,13 +86,13 @@
/// [x86 only] The VA of a list of addresses where the LOCK prefix is used so
/// that they can be replaced with NOP on single processor machines.
/// </summary>
public uint LockPrefixTable_PE32;
public uint LockPrefixTable_PE32 { get; set; }
/// <summary>
/// [x86 only] The VA of a list of addresses where the LOCK prefix is used so
/// that they can be replaced with NOP on single processor machines.
/// </summary>
public ulong LockPrefixTable_PE32Plus;
public ulong LockPrefixTable_PE32Plus { get; set; }
#endregion
@@ -101,12 +101,12 @@
/// <summary>
/// Maximum allocation size, in bytes.
/// </summary>
public uint MaximumAllocationSize_PE32;
public uint MaximumAllocationSize_PE32 { get; set; }
/// <summary>
/// Maximum allocation size, in bytes.
/// </summary>
public ulong MaximumAllocationSize_PE32Plus;
public ulong MaximumAllocationSize_PE32Plus { get; set; }
#endregion
@@ -115,12 +115,12 @@
/// <summary>
/// Maximum virtual memory size, in bytes.
/// </summary>
public uint VirtualMemoryThreshold_PE32;
public uint VirtualMemoryThreshold_PE32 { get; set; }
/// <summary>
/// Maximum virtual memory size, in bytes.
/// </summary>
public ulong VirtualMemoryThreshold_PE32Plus;
public ulong VirtualMemoryThreshold_PE32Plus { get; set; }
#endregion
@@ -130,13 +130,13 @@
/// Setting this field to a non-zero value is equivalent to calling
/// SetProcessAffinityMask with this value during process startup (.exe only)
/// </summary>
public uint ProcessAffinityMask_PE32;
public uint ProcessAffinityMask_PE32 { get; set; }
/// <summary>
/// Setting this field to a non-zero value is equivalent to calling
/// SetProcessAffinityMask with this value during process startup (.exe only)
/// </summary>
public ulong ProcessAffinityMask_PE32Plus;
public ulong ProcessAffinityMask_PE32Plus { get; set; }
#endregion
@@ -145,29 +145,29 @@
/// HeapCreate function. These flags apply to the process heap that
/// is created during process startup.
/// </summary>
public uint ProcessHeapFlags;
public uint ProcessHeapFlags { get; set; }
/// <summary>
/// The service pack version identifier.
/// </summary>
public ushort CSDVersion;
public ushort CSDVersion { get; set; }
/// <summary>
/// Must be zero.
/// </summary>
public ushort Reserved;
public ushort Reserved { get; set; }
#region EditList
/// <summary>
/// Reserved for use by the system.
/// </summary>
public uint EditList_PE32;
public uint EditList_PE32 { get; set; }
/// <summary>
/// Reserved for use by the system.
/// </summary>
public ulong EditList_PE32Plus;
public ulong EditList_PE32Plus { get; set; }
#endregion
@@ -176,12 +176,12 @@
/// <summary>
/// A pointer to a cookie that is used by Visual C++ or GS implementation.
/// </summary>
public uint SecurityCookie_PE32;
public uint SecurityCookie_PE32 { get; set; }
/// <summary>
/// A pointer to a cookie that is used by Visual C++ or GS implementation.
/// </summary>
public ulong SecurityCookie_PE32Plus;
public ulong SecurityCookie_PE32Plus { get; set; }
#endregion
@@ -191,13 +191,13 @@
/// [x86 only] The VA of the sorted table of RVAs of each valid, unique
/// SE handler in the image.
/// </summary>
public uint SEHandlerTable_PE32;
public uint SEHandlerTable_PE32 { get; set; }
/// <summary>
/// [x86 only] The VA of the sorted table of RVAs of each valid, unique
/// SE handler in the image.
/// </summary>
public ulong SEHandlerTable_PE32Plus;
public ulong SEHandlerTable_PE32Plus { get; set; }
#endregion
@@ -206,12 +206,12 @@
/// <summary>
/// [x86 only] The count of unique handlers in the table.
/// </summary>
public uint SEHandlerCount_PE32;
public uint SEHandlerCount_PE32 { get; set; }
/// <summary>
/// [x86 only] The count of unique handlers in the table.
/// </summary>
public ulong SEHandlerCount_PE32Plus;
public ulong SEHandlerCount_PE32Plus { get; set; }
#endregion
@@ -220,12 +220,12 @@
/// <summary>
/// The VA where Control Flow Guard check-function pointer is stored.
/// </summary>
public uint GuardCFCheckFunctionPointer_PE32;
public uint GuardCFCheckFunctionPointer_PE32 { get; set; }
/// <summary>
/// The VA where Control Flow Guard check-function pointer is stored.
/// </summary>
public ulong GuardCFCheckFunctionPointer_PE32Plus;
public ulong GuardCFCheckFunctionPointer_PE32Plus { get; set; }
#endregion
@@ -234,12 +234,12 @@
/// <summary>
/// The VA where Control Flow Guard dispatch-function pointer is stored.
/// </summary>
public uint GuardCFDispatchFunctionPointer_PE32;
public uint GuardCFDispatchFunctionPointer_PE32 { get; set; }
/// <summary>
/// The VA where Control Flow Guard dispatch-function pointer is stored.
/// </summary>
public ulong GuardCFDispatchFunctionPointer_PE32Plus;
public ulong GuardCFDispatchFunctionPointer_PE32Plus { get; set; }
#endregion
@@ -249,13 +249,13 @@
/// The VA of the sorted table of RVAs of each Control Flow Guard
/// function in the image.
/// </summary>
public uint GuardCFFunctionTable_PE32;
public uint GuardCFFunctionTable_PE32 { get; set; }
/// <summary>
/// The VA of the sorted table of RVAs of each Control Flow Guard
/// function in the image.
/// </summary>
public ulong GuardCFFunctionTable_PE32Plus;
public ulong GuardCFFunctionTable_PE32Plus { get; set; }
#endregion
@@ -264,28 +264,28 @@
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public uint GuardCFFunctionCount_PE32;
public uint GuardCFFunctionCount_PE32 { get; set; }
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public ulong GuardCFFunctionCount_PE32Plus;
public ulong GuardCFFunctionCount_PE32Plus { get; set; }
#endregion
/// <summary>
/// Control Flow Guard related flags.
/// </summary>
public GuardFlags GuardFlags;
public GuardFlags GuardFlags { get; set; }
/// <summary>
/// Code integrity information.
/// </summary>
/// <remarks>12 bytes</remarks>
#if NET48
public byte[] CodeIntegrity;
public byte[] CodeIntegrity { get; set; }
#else
public byte[]? CodeIntegrity;
public byte[]? CodeIntegrity { get; set; }
#endif
#region GuardAddressTakenIatEntryTable
@@ -293,12 +293,12 @@
/// <summary>
/// The VA where Control Flow Guard address taken IAT table is stored.
/// </summary>
public uint GuardAddressTakenIatEntryTable_PE32;
public uint GuardAddressTakenIatEntryTable_PE32 { get; set; }
/// <summary>
/// The VA where Control Flow Guard address taken IAT table is stored.
/// </summary>
public ulong GuardAddressTakenIatEntryTable_PE32Plus;
public ulong GuardAddressTakenIatEntryTable_PE32Plus { get; set; }
#endregion
@@ -307,12 +307,12 @@
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public uint GuardAddressTakenIatEntryCount_PE32;
public uint GuardAddressTakenIatEntryCount_PE32 { get; set; }
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public ulong GuardAddressTakenIatEntryCount_PE32Plus;
public ulong GuardAddressTakenIatEntryCount_PE32Plus { get; set; }
#endregion
@@ -321,12 +321,12 @@
/// <summary>
/// The VA where Control Flow Guard long jump target table is stored.
/// </summary>
public uint GuardLongJumpTargetTable_PE32;
public uint GuardLongJumpTargetTable_PE32 { get; set; }
/// <summary>
/// The VA where Control Flow Guard long jump target table is stored.
/// </summary>
public ulong GuardLongJumpTargetTable_PE32Plus;
public ulong GuardLongJumpTargetTable_PE32Plus { get; set; }
#endregion
@@ -335,12 +335,12 @@
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public uint GuardLongJumpTargetCount_PE32;
public uint GuardLongJumpTargetCount_PE32 { get; set; }
/// <summary>
/// The count of unique RVAs in the above table.
/// </summary>
public ulong GuardLongJumpTargetCount_PE32Plus;
public ulong GuardLongJumpTargetCount_PE32Plus { get; set; }
#endregion
}

View File

@@ -14,12 +14,12 @@ namespace SabreTools.Models.PortableExecutable
/// The version number of the menu template. This member must be equal to zero to indicate
/// that this is an RT_MENU created with a standard menu template.
/// </summary>
public ushort Version;
public ushort Version { get; set; }
/// <summary>
/// The size of the menu template header. This value is zero for menus you create with a
/// standard menu template.
/// </summary>
public ushort HeaderSize;
public ushort HeaderSize { get; set; }
}
}

View File

@@ -13,18 +13,18 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The template version number. This member must be 1 for extended menu templates.
/// </summary>
public ushort Version;
public ushort Version { get; set; }
/// <summary>
/// The offset to the first MENUEX_TEMPLATE_ITEM structure, relative to the end of
/// this structure member. If the first item definition immediately follows the
/// dwHelpId member, this member should be 4.
/// </summary>
public ushort Offset;
public ushort Offset { get; set; }
/// <summary>
/// The help identifier of menu bar.
/// </summary>
public uint HelpID;
public uint HelpID { get; set; }
}
}

View File

@@ -18,16 +18,16 @@
/// <summary>
/// The type of menu item.
/// </summary>
public MenuFlags NormalResInfo;
public MenuFlags NormalResInfo { get; set; }
/// <summary>
/// A null-terminated Unicode string that contains the text for this menu item.
/// There is no fixed limit on the size of this string.
/// </summary>
#if NET48
public string NormalMenuText;
public string NormalMenuText { get; set; }
#else
public string? NormalMenuText;
public string? NormalMenuText { get; set; }
#endif
#endregion
@@ -37,32 +37,32 @@
/// <summary>
/// Describes the menu item.
/// </summary>
public MenuFlags PopupItemType;
public MenuFlags PopupItemType { get; set; }
/// <summary>
/// Describes the menu item.
/// </summary>
public MenuFlags PopupState;
public MenuFlags PopupState { get; set; }
/// <summary>
/// A numeric expression that identifies the menu item that is passed in the
/// WM_COMMAND message.
/// </summary>
public uint PopupID;
public uint PopupID { get; set; }
/// <summary>
/// A set of bit flags that specify the type of menu item.
/// </summary>
public MenuFlags PopupResInfo;
public MenuFlags PopupResInfo { get; set; }
/// <summary>
/// A null-terminated Unicode string that contains the text for this menu item.
/// There is no fixed limit on the size of this string.
/// </summary>
#if NET48
public string PopupMenuText;
public string PopupMenuText { get; set; }
#else
public string? PopupMenuText;
public string? PopupMenuText { get; set; }
#endif
#endregion

View File

@@ -10,32 +10,32 @@
/// <summary>
/// Describes the menu item.
/// </summary>
public MenuFlags ItemType;
public MenuFlags ItemType { get; set; }
/// <summary>
/// Describes the menu item.
/// </summary>
public MenuFlags State;
public MenuFlags State { get; set; }
/// <summary>
/// A numeric expression that identifies the menu item that is passed in the
/// WM_COMMAND message.
/// </summary>
public uint ID;
public uint ID { get; set; }
/// <summary>
/// A set of bit flags that specify the type of menu item.
/// </summary>
public MenuFlags Flags;
public MenuFlags Flags { get; set; }
/// <summary>
/// A null-terminated Unicode string that contains the text for this menu item.
/// There is no fixed limit on the size of this string.
/// </summary>
#if NET48
public string MenuText;
public string MenuText { get; set; }
#else
public string? MenuText;
public string? MenuText { get; set; }
#endif
}
}

View File

@@ -15,18 +15,18 @@
/// Menu header structure
/// </summary>
#if NET48
public MenuHeader MenuHeader;
public MenuHeader MenuHeader { get; set; }
#else
public MenuHeader? MenuHeader;
public MenuHeader? MenuHeader { get; set; }
#endif
/// <summary>
/// Menu extended header structure
/// </summary>
#if NET48
public MenuHeaderExtended ExtendedMenuHeader;
public MenuHeaderExtended ExtendedMenuHeader { get; set; }
#else
public MenuHeaderExtended? ExtendedMenuHeader;
public MenuHeaderExtended? ExtendedMenuHeader { get; set; }
#endif
#endregion
@@ -37,18 +37,18 @@
/// Menu items
/// </summary>
#if NET48
public MenuItem[] MenuItems;
public MenuItem[] MenuItems { get; set; }
#else
public MenuItem?[]? MenuItems;
public MenuItem?[]? MenuItems { get; set; }
#endif
/// <summary>
/// Extended menu items
/// </summary>
#if NET48
public MenuItemExtended[] ExtendedMenuItems;
public MenuItemExtended[] ExtendedMenuItems { get; set; }
#else
public MenuItemExtended?[]? ExtendedMenuItems;
public MenuItemExtended?[]? ExtendedMenuItems { get; set; }
#endif
#endregion

View File

@@ -10,18 +10,18 @@
/// <summary>
/// The lowest message identifier contained within this structure.
/// </summary>
public uint LowId;
public uint LowId { get; set; }
/// <summary>
/// The highest message identifier contained within this structure.
/// </summary>
public uint HighId;
public uint HighId { get; set; }
/// <summary>
/// The offset, in bytes, from the beginning of the MESSAGE_RESOURCE_DATA structure to the
/// MESSAGE_RESOURCE_ENTRY structures in this MESSAGE_RESOURCE_BLOCK. The MESSAGE_RESOURCE_ENTRY
/// structures contain the message strings.
/// </summary>
public uint OffsetToEntries;
public uint OffsetToEntries { get; set; }
}
}

View File

@@ -12,24 +12,24 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The number of MESSAGE_RESOURCE_BLOCK structures.
/// </summary>
public uint NumberOfBlocks;
public uint NumberOfBlocks { get; set; }
/// <summary>
/// An array of structures. The array is the size indicated by the NumberOfBlocks member.
/// </summary>
#if NET48
public MessageResourceBlock[] Blocks;
public MessageResourceBlock[] Blocks { get; set; }
#else
public MessageResourceBlock?[]? Blocks;
public MessageResourceBlock?[]? Blocks { get; set; }
#endif
/// <summary>
/// Message resource entries
/// </summary>
#if NET48
public Dictionary<uint, MessageResourceEntry> Entries;
public Dictionary<uint, MessageResourceEntry> Entries { get; set; }
#else
public Dictionary<uint, MessageResourceEntry?>? Entries;
public Dictionary<uint, MessageResourceEntry?>? Entries { get; set; }
#endif
}
}

View File

@@ -9,21 +9,21 @@
/// <summary>
/// The length, in bytes, of the MESSAGE_RESOURCE_ENTRY structure.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// Indicates that the string is encoded in Unicode, if equal to the value 0x0001.
/// Indicates that the string is encoded in ANSI, if equal to the value 0x0000.
/// </summary>
public ushort Flags;
public ushort Flags { get; set; }
/// <summary>
/// Pointer to an array that contains the error message or message box display text.
/// </summary>
#if NET48
public string Text;
public string Text { get; set; }
#else
public string? Text;
public string? Text { get; set; }
#endif
}
}

View File

@@ -12,35 +12,35 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// "CodeView signature, equal to “NB10”
/// </summary>
public uint Signature;
public uint Signature { get; set; }
/// <summary>
/// CodeView offset. Set to 0, because debug information
/// is stored in a separate file.
/// </summary>
public uint Offset;
public uint Offset { get; set; }
/// <summary>
/// The time when debug information was created (in seconds
/// since 01.01.1970)
/// </summary>
public uint Timestamp;
public uint Timestamp { get; set; }
/// <summary>
/// Ever-incrementing value, which is initially set to 1 and
/// incremented every time when a part of the PDB file is updated
/// without rewriting the whole file.
/// </summary>
public uint Age;
public uint Age { get; set; }
/// <summary>
/// Null-terminated name of the PDB file. It can also contain full
/// or partial path to the file.
/// </summary>
#if NET48
public string PdbFileName;
public string PdbFileName { get; set; }
#else
public string? PdbFileName;
public string? PdbFileName { get; set; }
#endif
}
}

View File

@@ -14,18 +14,18 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Reserved; must be zero.
/// </summary>
public ushort Reserved;
public ushort Reserved { get; set; }
/// <summary>
/// The resource type. This member must have one of the following values.
/// - RES_ICON (1): Icon resource type.
/// - RES_CURSOR (2): Cursor resource type.
/// </summary>
public ushort ResType;
public ushort ResType { get; set; }
/// <summary>
/// The number of icon or cursor components in the resource group.
/// </summary>
public ushort ResCount;
public ushort ResCount { get; set; }
}
}

View File

@@ -37,35 +37,35 @@
/// common number is 0x10B, which identifies it as a normal executable file.
/// 0x107 identifies it as a ROM image, and 0x20B identifies it as a PE32+ executable.
/// </summary>
public OptionalHeaderMagicNumber Magic;
public OptionalHeaderMagicNumber Magic { get; set; }
/// <summary>
/// The linker major version number.
/// </summary>
public byte MajorLinkerVersion;
public byte MajorLinkerVersion { get; set; }
/// <summary>
/// The linker minor version number.
/// </summary>
public byte MinorLinkerVersion;
public byte MinorLinkerVersion { get; set; }
/// <summary>
/// The size of the code (text) section, or the sum of all code sections if there
/// are multiple sections.
/// </summary>
public uint SizeOfCode;
public uint SizeOfCode { get; set; }
/// <summary>
/// The size of the initialized data section, or the sum of all such sections if
/// there are multiple data sections.
/// </summary>
public uint SizeOfInitializedData;
public uint SizeOfInitializedData { get; set; }
/// <summary>
/// The size of the uninitialized data section (BSS), or the sum of all such sections
/// if there are multiple BSS sections.
/// </summary>
public uint SizeOfUninitializedData;
public uint SizeOfUninitializedData { get; set; }
/// <summary>
/// The address of the entry point relative to the image base when the executable file
@@ -73,13 +73,13 @@
/// device drivers, this is the address of the initialization function. An entry point
/// is optional for DLLs. When no entry point is present, this field must be zero.
/// </summary>
public uint AddressOfEntryPoint;
public uint AddressOfEntryPoint { get; set; }
/// <summary>
/// The address that is relative to the image base of the beginning-of-code section when
/// it is loaded into memory.
/// </summary>
public uint BaseOfCode;
public uint BaseOfCode { get; set; }
#region PE32-Only
@@ -87,7 +87,7 @@
/// The address that is relative to the image base of the beginning-of-data section when
/// it is loaded into memory.
/// </summary>
public uint BaseOfData;
public uint BaseOfData { get; set; }
#endregion
@@ -98,20 +98,20 @@
#region ImageBase
/// <summary>
/// The preferred address of the first byte of image when loaded into memory;
/// The preferred address of the first byte of image when loaded into memory { get; set; }
/// must be a multiple of 64 K. The default for DLLs is 0x10000000. The default
/// for Windows CE EXEs is 0x00010000. The default for Windows NT, Windows 2000,
/// Windows XP, Windows 95, Windows 98, and Windows Me is 0x00400000.
/// </summary>
public uint ImageBase_PE32;
public uint ImageBase_PE32 { get; set; }
/// <summary>
/// The preferred address of the first byte of image when loaded into memory;
/// The preferred address of the first byte of image when loaded into memory { get; set; }
/// must be a multiple of 64 K. The default for DLLs is 0x10000000. The default
/// for Windows CE EXEs is 0x00010000. The default for Windows NT, Windows 2000,
/// Windows XP, Windows 95, Windows 98, and Windows Me is 0x00400000.
/// </summary>
public ulong ImageBase_PE32Plus;
public ulong ImageBase_PE32Plus { get; set; }
#endregion
@@ -120,7 +120,7 @@
/// be greater than or equal to FileAlignment. The default is the page size for
/// the architecture.
/// </summary>
public uint SectionAlignment;
public uint SectionAlignment { get; set; }
/// <summary>
/// The alignment factor (in bytes) that is used to align the raw data of sections
@@ -128,54 +128,54 @@
/// inclusive. The default is 512. If the SectionAlignment is less than the
/// architecture's page size, then FileAlignment must match SectionAlignment.
/// </summary>
public uint FileAlignment;
public uint FileAlignment { get; set; }
/// <summary>
/// The major version number of the required operating system.
/// </summary>
public ushort MajorOperatingSystemVersion;
public ushort MajorOperatingSystemVersion { get; set; }
/// <summary>
/// The minor version number of the required operating system.
/// </summary>
public ushort MinorOperatingSystemVersion;
public ushort MinorOperatingSystemVersion { get; set; }
/// <summary>
/// The major version number of the image.
/// </summary>
public ushort MajorImageVersion;
public ushort MajorImageVersion { get; set; }
/// <summary>
/// The minor version number of the image.
/// </summary>
public ushort MinorImageVersion;
public ushort MinorImageVersion { get; set; }
/// <summary>
/// The major version number of the subsystem.
/// </summary>
public ushort MajorSubsystemVersion;
public ushort MajorSubsystemVersion { get; set; }
/// <summary>
/// The minor version number of the subsystem.
/// </summary>
public ushort MinorSubsystemVersion;
public ushort MinorSubsystemVersion { get; set; }
/// <summary>
/// Reserved, must be zero.
/// </summary>
public uint Win32VersionValue;
public uint Win32VersionValue { get; set; }
/// <summary>
/// The size (in bytes) of the image, including all headers, as the image
/// is loaded in memory. It must be a multiple of SectionAlignment.
/// </summary>
public uint SizeOfImage;
public uint SizeOfImage { get; set; }
/// <summary>
/// The combined size of an MS-DOS stub, PE header, and section headers rounded
/// up to a multiple of FileAlignment.
/// </summary>
public uint SizeOfHeaders;
public uint SizeOfHeaders { get; set; }
/// <summary>
/// The image file checksum. The algorithm for computing the checksum is
@@ -183,17 +183,17 @@
/// load time: all drivers, any DLL loaded at boot time, and any DLL that is
/// loaded into a critical Windows process.
/// </summary>
public uint CheckSum;
public uint CheckSum { get; set; }
/// <summary>
/// The subsystem that is required to run this image.
/// </summary>
public WindowsSubsystem Subsystem;
public WindowsSubsystem Subsystem { get; set; }
/// <summary>
/// DLL characteristics
/// </summary>
public DllCharacteristics DllCharacteristics;
public DllCharacteristics DllCharacteristics { get; set; }
#region SizeOfStackReserve
@@ -201,13 +201,13 @@
/// The size of the stack to reserve. Only SizeOfStackCommit is committed; the rest
/// is made available one page at a time until the reserve size is reached.
/// </summary>
public uint SizeOfStackReserve_PE32;
public uint SizeOfStackReserve_PE32 { get; set; }
/// <summary>
/// The size of the stack to reserve. Only SizeOfStackCommit is committed; the rest
/// is made available one page at a time until the reserve size is reached.
/// </summary>
public ulong SizeOfStackReserve_PE32Plus;
public ulong SizeOfStackReserve_PE32Plus { get; set; }
#endregion
@@ -216,12 +216,12 @@
/// <summary>
/// The size of the stack to commit.
/// </summary>
public uint SizeOfStackCommit_PE32;
public uint SizeOfStackCommit_PE32 { get; set; }
/// <summary>
/// The size of the stack to commit.
/// </summary>
public ulong SizeOfStackCommit_PE32Plus;
public ulong SizeOfStackCommit_PE32Plus { get; set; }
#endregion
@@ -232,14 +232,14 @@
/// committed; the rest is made available one page at a time until the reserve
/// size is reached.
/// </summary>
public uint SizeOfHeapReserve_PE32;
public uint SizeOfHeapReserve_PE32 { get; set; }
/// <summary>
/// The size of the local heap space to reserve. Only SizeOfHeapCommit is
/// committed; the rest is made available one page at a time until the reserve
/// size is reached.
/// </summary>
public ulong SizeOfHeapReserve_PE32Plus;
public ulong SizeOfHeapReserve_PE32Plus { get; set; }
#endregion
@@ -248,25 +248,25 @@
/// <summary>
/// The size of the local heap space to commit.
/// </summary>
public uint SizeOfHeapCommit_PE32;
public uint SizeOfHeapCommit_PE32 { get; set; }
/// <summary>
/// The size of the local heap space to commit.
/// </summary>
public ulong SizeOfHeapCommit_PE32Plus;
public ulong SizeOfHeapCommit_PE32Plus { get; set; }
#endregion
/// <summary>
/// Reserved, must be zero.
/// </summary>
public uint LoaderFlags;
public uint LoaderFlags { get; set; }
/// <summary>
/// The number of data-directory entries in the remainder of the optional header.
/// Each describes a location and size.
/// </summary>
public uint NumberOfRvaAndSizes;
public uint NumberOfRvaAndSizes { get; set; }
#endregion
@@ -276,138 +276,138 @@
/// The export table address and size.
/// </summary>
#if NET48
public DataDirectory ExportTable;
public DataDirectory ExportTable { get; set; }
#else
public DataDirectory? ExportTable;
public DataDirectory? ExportTable { get; set; }
#endif
/// <summary>
/// The import table address and size.
/// </summary>
#if NET48
public DataDirectory ImportTable;
public DataDirectory ImportTable { get; set; }
#else
public DataDirectory? ImportTable;
public DataDirectory? ImportTable { get; set; }
#endif
/// <summary>
/// The resource table address and size.
/// </summary>
#if NET48
public DataDirectory ResourceTable;
public DataDirectory ResourceTable { get; set; }
#else
public DataDirectory? ResourceTable;
public DataDirectory? ResourceTable { get; set; }
#endif
/// <summary>
/// The exception table address and size.
/// </summary>
#if NET48
public DataDirectory ExceptionTable;
public DataDirectory ExceptionTable { get; set; }
#else
public DataDirectory? ExceptionTable;
public DataDirectory? ExceptionTable { get; set; }
#endif
/// <summary>
/// The attribute certificate table address and size.
/// </summary>
#if NET48
public DataDirectory CertificateTable;
public DataDirectory CertificateTable { get; set; }
#else
public DataDirectory? CertificateTable;
public DataDirectory? CertificateTable { get; set; }
#endif
/// <summary>
/// The base relocation table address and size.
/// </summary>
#if NET48
public DataDirectory BaseRelocationTable;
public DataDirectory BaseRelocationTable { get; set; }
#else
public DataDirectory? BaseRelocationTable;
public DataDirectory? BaseRelocationTable { get; set; }
#endif
/// <summary>
/// The debug data starting address and size.
/// </summary>
#if NET48
public DataDirectory Debug;
public DataDirectory Debug { get; set; }
#else
public DataDirectory? Debug;
public DataDirectory? Debug { get; set; }
#endif
/// <summary>
/// Reserved, must be 0
/// </summary>
public ulong Architecture;
public ulong Architecture { get; set; }
/// <summary>
/// The RVA of the value to be stored in the global pointer register.
/// The size member of this structure must be set to zero.
/// </summary>
#if NET48
public DataDirectory GlobalPtr;
public DataDirectory GlobalPtr { get; set; }
#else
public DataDirectory? GlobalPtr;
public DataDirectory? GlobalPtr { get; set; }
#endif
/// <summary>
/// The thread local storage (TLS) table address and size.
/// </summary>
#if NET48
public DataDirectory ThreadLocalStorageTable;
public DataDirectory ThreadLocalStorageTable { get; set; }
#else
public DataDirectory? ThreadLocalStorageTable;
public DataDirectory? ThreadLocalStorageTable { get; set; }
#endif
/// <summary>
/// The load configuration table address and size.
/// </summary>
#if NET48
public DataDirectory LoadConfigTable;
public DataDirectory LoadConfigTable { get; set; }
#else
public DataDirectory? LoadConfigTable;
public DataDirectory? LoadConfigTable { get; set; }
#endif
/// <summary>
/// The bound import table address and size.
/// </summary>
#if NET48
public DataDirectory BoundImport;
public DataDirectory BoundImport { get; set; }
#else
public DataDirectory? BoundImport;
public DataDirectory? BoundImport { get; set; }
#endif
/// <summary>
/// The import address table address and size
/// </summary>
#if NET48
public DataDirectory ImportAddressTable;
public DataDirectory ImportAddressTable { get; set; }
#else
public DataDirectory? ImportAddressTable;
public DataDirectory? ImportAddressTable { get; set; }
#endif
/// <summary>
/// The delay import descriptor address and size.
/// </summary>
#if NET48
public DataDirectory DelayImportDescriptor;
public DataDirectory DelayImportDescriptor { get; set; }
#else
public DataDirectory? DelayImportDescriptor;
public DataDirectory? DelayImportDescriptor { get; set; }
#endif
/// <summary>
/// The CLR runtime header address and size.
/// </summary>
#if NET48
public DataDirectory CLRRuntimeHeader;
public DataDirectory CLRRuntimeHeader { get; set; }
#else
public DataDirectory? CLRRuntimeHeader;
public DataDirectory? CLRRuntimeHeader { get; set; }
#endif
/// <summary>
/// Reserved, must be zero
/// </summary>
public ulong Reserved;
public ulong Reserved { get; set; }
#endregion
}

View File

@@ -14,27 +14,27 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// "RSDS" signature
/// </summary>
public uint Signature;
public uint Signature { get; set; }
/// <summary>
/// 16-byte Globally Unique Identifier
/// </summary>
public Guid GUID;
public Guid GUID { get; set; }
/// <summary>
/// Ever-incrementing value, which is initially set to 1 and
/// incremented every time when a part of the PDB file is updated
/// without rewriting the whole file.
/// </summary>
public uint Age;
public uint Age { get; set; }
/// <summary>
/// zero terminated UTF8 path and file name
/// </summary>
#if NET48
public string PathAndFileName;
public string PathAndFileName { get; set; }
#else
public string? PathAndFileName;
public string? PathAndFileName { get; set; }
#endif
}
}

View File

@@ -16,32 +16,32 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// The address of a unit of resource data in the Resource Data area.
/// </summary>
public uint DataRVA;
public uint DataRVA { get; set; }
/// <summary>
/// The size, in bytes, of the resource data that is pointed to by the
/// Data RVA field.
/// </summary>
public uint Size;
public uint Size { get; set; }
/// <summary>
/// The resource data that is pointed to by the Data RVA field.
/// </summary>
#if NET48
public byte[] Data;
public byte[] Data { get; set; }
#else
public byte[]? Data;
public byte[]? Data { get; set; }
#endif
/// <summary>
/// The code page that is used to decode code point values within the
/// resource data. Typically, the code page would be the Unicode code page.
/// </summary>
public uint Codepage;
public uint Codepage { get; set; }
/// <summary>
/// Reserved, must be 0.
/// </summary>
public uint Reserved;
public uint Reserved { get; set; }
}
}

View File

@@ -25,22 +25,22 @@
/// The offset of a string that gives the Type, Name, or Language ID entry,
/// depending on level of table.
/// </summary>
public uint NameOffset;
public uint NameOffset { get; set; }
/// <summary>
/// A string that gives the Type, Name, or Language ID entry, depending on
/// level of table.
/// </summary>
#if NET48
public ResourceDirectoryString Name;
public ResourceDirectoryString Name { get; set; }
#else
public ResourceDirectoryString? Name;
public ResourceDirectoryString? Name { get; set; }
#endif
/// <summary>
/// A 32-bit integer that identifies the Type, Name, or Language ID entry.
/// </summary>
public uint IntegerID;
public uint IntegerID { get; set; }
#endregion
@@ -49,30 +49,30 @@
/// <summary>
/// High bit 0. Address of a Resource Data entry (a leaf).
/// </summary>
public uint DataEntryOffset;
public uint DataEntryOffset { get; set; }
/// <summary>
/// Resource data entry (a leaf).
/// </summary>
#if NET48
public ResourceDataEntry DataEntry;
public ResourceDataEntry DataEntry { get; set; }
#else
public ResourceDataEntry? DataEntry;
public ResourceDataEntry? DataEntry { get; set; }
#endif
/// <summary>
/// High bit 1. The lower 31 bits are the address of another resource
/// directory table (the next level down).
/// </summary>
public uint SubdirectoryOffset;
public uint SubdirectoryOffset { get; set; }
/// <summary>
/// Another resource directory table (the next level down).
/// </summary>
#if NET48
public ResourceDirectoryTable Subdirectory;
public ResourceDirectoryTable Subdirectory { get; set; }
#else
public ResourceDirectoryTable? Subdirectory;
public ResourceDirectoryTable? Subdirectory { get; set; }
#endif
#endregion

View File

@@ -13,15 +13,15 @@
/// <summary>
/// The size of the string, not including length field itself.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// The variable-length Unicode string data, word-aligned.
/// </summary>
#if NET48
public byte[] UnicodeString;
public byte[] UnicodeString { get; set; }
#else
public byte[]? UnicodeString;
public byte[]? UnicodeString { get; set; }
#endif
}
}

View File

@@ -22,35 +22,35 @@ namespace SabreTools.Models.PortableExecutable
/// Resource flags. This field is reserved for future use. It is currently
/// set to zero.
/// </summary>
public uint Characteristics;
public uint Characteristics { get; set; }
/// <summary>
/// The time that the resource data was created by the resource compiler.
/// </summary>
public uint TimeDateStamp;
public uint TimeDateStamp { get; set; }
/// <summary>
/// The major version number, set by the user.
/// </summary>
public ushort MajorVersion;
public ushort MajorVersion { get; set; }
/// <summary>
/// The minor version number, set by the user.
/// </summary>
public ushort MinorVersion;
public ushort MinorVersion { get; set; }
/// <summary>
/// The number of directory entries immediately following the table that use
/// strings to identify Type, Name, or Language entries (depending on the
/// level of the table).
/// </summary>
public ushort NumberOfNameEntries;
public ushort NumberOfNameEntries { get; set; }
/// <summary>
/// The number of directory entries immediately following the Name entries that
/// use numeric IDs for Type, Name, or Language entries.
/// </summary>
public ushort NumberOfIDEntries;
public ushort NumberOfIDEntries { get; set; }
/// <summary>
/// Directory entries immediately following the table that use
@@ -58,9 +58,9 @@ namespace SabreTools.Models.PortableExecutable
/// level of the table).
/// </summary>
#if NET48
public ResourceDirectoryEntry[] Entries;
public ResourceDirectoryEntry[] Entries { get; set; }
#else
public ResourceDirectoryEntry?[]? Entries;
public ResourceDirectoryEntry?[]? Entries { get; set; }
#endif
}
}

View File

@@ -14,12 +14,12 @@
/// particular resource. It does not include any file padding between this
/// resource and any resource that follows it in the resource file.
/// </summary>
public uint DataSize;
public uint DataSize { get; set; }
/// <summary>
/// The size, in bytes, of the resource header data that follows.
/// </summary>
public uint HeaderSize;
public uint HeaderSize { get; set; }
/// <summary>
/// The resource type. The TYPE member can either be a numeric value or a
@@ -32,7 +32,7 @@
///
/// Values less than 256 are reserved for system use.
/// </summary>
public ResourceType ResourceType;
public ResourceType ResourceType { get; set; }
/// <summary>
/// A name that identifies the particular resource. The NAME member, like the TYPE
@@ -44,13 +44,13 @@
/// members because they contain WORD data. However, you may need to add a WORD of
/// padding after the NAME member to align the rest of the header on DWORD boundaries.
/// </summary>
public uint Name;
public uint Name { get; set; }
/// <summary>
/// A predefined resource data version. This will determine which version of the
/// resource data the application should use.
/// </summary>
public uint DataVersion;
public uint DataVersion { get; set; }
/// <summary>
/// A set of attribute flags that can describe the state of the resource. Modifiers
@@ -62,7 +62,7 @@
/// ignored. Resources are loaded when the corresponding module is loaded, and are
/// freed when the module is unloaded.
/// </summary>
public MemoryFlags MemoryFlags;
public MemoryFlags MemoryFlags { get; set; }
/// <summary>
/// The language for the resource or set of resources. Set the value for this member
@@ -75,20 +75,20 @@
/// the strings within the resources, you will need to specify a LanguageId for each
/// one.
/// </summary>
public ushort LanguageId;
public ushort LanguageId { get; set; }
/// <summary>
/// A user-defined version number for the resource data that tools can use to read and
/// write resource files. Set this value with the optional VERSION resource definition
/// statement.
/// </summary>
public uint Version;
public uint Version { get; set; }
/// <summary>
/// Specifies user-defined information about the resource that tools can use to read and
/// write resource files. Set this value with the optional CHARACTERISTICS resource
/// definition statement.
/// </summary>
public uint Characteristics;
public uint Characteristics { get; set; }
}
}

View File

@@ -44,16 +44,16 @@ namespace SabreTools.Models.PortableExecutable
/// greater than SizeOfRawData, the section is zero-padded. This field is valid
/// only for executable images and should be set to zero for object files.
/// </summary>
public uint VirtualSize;
public uint VirtualSize { get; set; }
/// <summary>
/// For executable images, the address of the first byte of the section relative
/// to the image base when the section is loaded into memory. For object files,
/// this field is the address of the first byte before relocation is applied;
/// this field is the address of the first byte before relocation is applied { get; set; }
/// for simplicity, compilers should set this to zero. Otherwise, it is an
/// arbitrary value that is subtracted from offsets during relocation.
/// </summary>
public uint VirtualAddress;
public uint VirtualAddress { get; set; }
/// <summary>
/// The size of the section (for object files) or the size of the initialized
@@ -64,7 +64,7 @@ namespace SabreTools.Models.PortableExecutable
/// to be greater than VirtualSize as well. When a section contains only
/// uninitialized data, this field should be zero.
/// </summary>
public uint SizeOfRawData;
public uint SizeOfRawData { get; set; }
/// <summary>
/// The file pointer to the first page of the section within the COFF file. For
@@ -73,54 +73,54 @@ namespace SabreTools.Models.PortableExecutable
/// for best performance. When a section contains only uninitialized data, this
/// field should be zero.
/// </summary>
public uint PointerToRawData;
public uint PointerToRawData { get; set; }
/// <summary>
/// The file pointer to the beginning of relocation entries for the section. This
/// is set to zero for executable images or if there are no relocations.
/// </summary>
public uint PointerToRelocations;
public uint PointerToRelocations { get; set; }
/// <summary>
/// The file pointer to the beginning of line-number entries for the section. This
/// is set to zero if there are no COFF line numbers. This value should be zero for
/// an image because COFF debugging information is deprecated.
/// </summary>
public uint PointerToLinenumbers;
public uint PointerToLinenumbers { get; set; }
/// <summary>
/// The number of relocation entries for the section. This is set to zero for
/// executable images.
/// </summary>
public ushort NumberOfRelocations;
public ushort NumberOfRelocations { get; set; }
/// <summary>
/// The number of line-number entries for the section. This value should be zero
/// for an image because COFF debugging information is deprecated.
/// </summary>
public ushort NumberOfLinenumbers;
public ushort NumberOfLinenumbers { get; set; }
/// <summary>
/// The flags that describe the characteristics of the section.
/// </summary>
public SectionFlags Characteristics;
public SectionFlags Characteristics { get; set; }
/// <summary>
/// COFF Relocations (Object Only)
/// </summary>
#if NET48
public COFFRelocation[] COFFRelocations;
public COFFRelocation[] COFFRelocations { get; set; }
#else
public COFFRelocation?[]? COFFRelocations;
public COFFRelocation?[]? COFFRelocations { get; set; }
#endif
/// <summary>
/// COFF Line Numbers (Deprecated)
/// </summary>
#if NET48
public COFFLineNumber[] COFFLineNumbers;
public COFFLineNumber[] COFFLineNumbers { get; set; }
#else
public COFFLineNumber?[]? COFFLineNumbers;
public COFFLineNumber?[]? COFFLineNumbers { get; set; }
#endif
}
}

View File

@@ -16,7 +16,7 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// "AddD", Identifier?
/// </summary>
public uint Signature;
public uint Signature { get; set; }
/// <summary>
/// Unknown (Entry count?)
@@ -25,24 +25,24 @@ namespace SabreTools.Models.PortableExecutable
/// 3 in EXPUNGED, 3.17.00.0017, 3.17.00.0019
/// 3 in 4.47.00.0039, 4.84.00.0054, 4.84.69.0037, 4.84.76.7966, 4.84.76.7968, 4.85.07.0009
/// </remarks>
public uint EntryCount;
public uint EntryCount { get; set; }
/// <summary>
/// Version, always 8 bytes?
/// </summary>
#if NET48
public string Version;
public string Version { get; set; }
#else
public string? Version;
public string? Version { get; set; }
#endif
/// <summary>
/// Unknown (Build? Formatted as a string)
/// </summary>
#if NET48
public char[] Build;
public char[] Build { get; set; }
#else
public char[]? Build;
public char[]? Build { get; set; }
#endif
/// <summary>
@@ -59,18 +59,18 @@ namespace SabreTools.Models.PortableExecutable
/// "548520-001" in 4.85.07.0009
/// </remarks>
#if NET48
public byte[] Unknown14h;
public byte[] Unknown14h { get; set; }
#else
public byte[]? Unknown14h;
public byte[]? Unknown14h { get; set; }
#endif
/// <summary>
/// Entry table
/// </summary>
#if NET48
public SecuROMAddDEntry[] Entries;
public SecuROMAddDEntry[] Entries { get; set; }
#else
public SecuROMAddDEntry?[]? Entries;
public SecuROMAddDEntry?[]? Entries { get; set; }
#endif
}
}

View File

@@ -16,58 +16,58 @@ namespace SabreTools.Models.PortableExecutable
/// <summary>
/// Physical offset of the embedded file
/// </summary>
public uint PhysicalOffset;
public uint PhysicalOffset { get; set; }
/// <summary>
/// Length of the embedded file
/// </summary>
/// <remarks>The last entry seems to be 4 bytes short in 4.47.00.0039</remarks>
public uint Length;
public uint Length { get; set; }
/// <summary>
/// Unknown (0x08)
/// </summary>
/// <remarks>3149224 [3496, 48] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown08h;
public uint Unknown08h { get; set; }
/// <summary>
/// Unknown (0x0C)
/// </summary>
/// <remarks>3147176 [1448, 48] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown0Ch;
public uint Unknown0Ch { get; set; }
/// <summary>
/// Unknown (0x10)
/// </summary>
/// <remarks>3149224 [3496, 48] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown10h;
public uint Unknown10h { get; set; }
/// <summary>
/// Unknown (0x14)
/// </summary>
/// <remarks>1245044 [65396, 18] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown14h;
public uint Unknown14h { get; set; }
/// <summary>
/// Unknown (0x18)
/// </summary>
/// <remarks>4214725 [20421, 64] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown18h;
public uint Unknown18h { get; set; }
/// <summary>
/// Unknown (0x1C)
/// </summary>
/// <remarks>2 [2, 0] in the sample (all 3 entries) in 4.47.00.0039</remarks>
public uint Unknown1Ch;
public uint Unknown1Ch { get; set; }
/// <summary>
/// Entry file name (null-terminated)
/// </summary>
/// <remarks>12 bytes long in the sample (all 3 entries) in 4.47.00.0039</remarks>
#if NET48
public string FileName;
public string FileName { get; set; }
#else
public string? FileName;
public string? FileName { get; set; }
#endif
/// <summary>
@@ -77,6 +77,6 @@ namespace SabreTools.Models.PortableExecutable
/// Offset based on consistent-sized filenames (12 bytes) in 4.47.00.0039
/// 132 [132, 0] in the sample (all 3 entries) in 4.47.00.0039
/// </remarks>
public uint Unknown2Ch;
public uint Unknown2Ch { get; set; }
}
}

View File

@@ -11,17 +11,17 @@
/// <summary>
/// The length, in bytes, of this String structure.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// The size, in words, of the Value member.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// An arbitrary Unicode string. The Key member can be one or more of the following
@@ -65,23 +65,23 @@
/// could be "Private build for Olivetti solving mouse problems on M250 and M250E computers".
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Value member on a 32-bit boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
/// <summary>
/// A zero-terminated string. See the szKey member description for more information.
/// </summary>
#if NET48
public string Value;
public string Value { get; set; }
#else
public string? Value;
public string? Value { get; set; }
#endif
}
}

View File

@@ -11,31 +11,31 @@
/// The length, in bytes, of the entire StringFileInfo block, including all
/// structures indicated by the Children member.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// This member is always equal to zero.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// The Unicode string L"StringFileInfo".
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
/// <summary>
/// An array of one or more StringTable structures. Each StringTable structure's Key
@@ -43,9 +43,9 @@
/// that StringTable structure.
/// </summary>
#if NET48
public StringTable[] Children;
public StringTable[] Children { get; set; }
#else
public StringTable?[]? Children;
public StringTable?[]? Children { get; set; }
#endif
}
}

View File

@@ -12,17 +12,17 @@
/// The length, in bytes, of this StringTable structure, including all structures
/// indicated by the Children member.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// This member is always equal to zero.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// An 8-digit hexadecimal number stored as a Unicode string. The four most significant
@@ -32,23 +32,23 @@
/// and the high-order 6 bits specify the sublanguage.
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
/// <summary>
/// An array of one or more StringData structures.
/// </summary>
#if NET48
public StringData[] Children;
public StringData[] Children { get; set; }
#else
public StringData?[]? Children;
public StringData?[]? Children { get; set; }
#endif
}
}

View File

@@ -12,7 +12,7 @@
/// address is not an RVA; it is an address for which there should be a base
/// relocation in the .reloc section.
/// </summary>
public uint RawDataStartVA_PE32;
public uint RawDataStartVA_PE32 { get; set; }
/// <summary>
/// The starting address of the TLS template. The template is a block of data
@@ -21,7 +21,7 @@
/// address is not an RVA; it is an address for which there should be a base
/// relocation in the .reloc section.
/// </summary>
public ulong RawDataStartVA_PE32Plus;
public ulong RawDataStartVA_PE32Plus { get; set; }
#endregion
@@ -31,13 +31,13 @@
/// The address of the last byte of the TLS, except for the zero fill. As
/// with the Raw Data Start VA field, this is a VA, not an RVA.
/// </summary>
public uint RawDataEndVA_PE32;
public uint RawDataEndVA_PE32 { get; set; }
/// <summary>
/// The address of the last byte of the TLS, except for the zero fill. As
/// with the Raw Data Start VA field, this is a VA, not an RVA.
/// </summary>
public ulong RawDataEndVA_PE32Plus;
public ulong RawDataEndVA_PE32Plus { get; set; }
#endregion
@@ -48,14 +48,14 @@
/// location is in an ordinary data section, so it can be given a symbolic
/// name that is accessible to the program.
/// </summary>
public uint AddressOfIndex_PE32;
public uint AddressOfIndex_PE32 { get; set; }
/// <summary>
/// The location to receive the TLS index, which the loader assigns. This
/// location is in an ordinary data section, so it can be given a symbolic
/// name that is accessible to the program.
/// </summary>
public ulong AddressOfIndex_PE32Plus;
public ulong AddressOfIndex_PE32Plus { get; set; }
#endregion
@@ -66,14 +66,14 @@
/// null-terminated, so if no callback function is supported, this field
/// points to 4 bytes set to zero.
/// </summary>
public uint AddressOfCallbacks_PE32;
public uint AddressOfCallbacks_PE32 { get; set; }
/// <summary>
/// The pointer to an array of TLS callback functions. The array is
/// null-terminated, so if no callback function is supported, this field
/// points to 4 bytes set to zero.
/// </summary>
public ulong AddressOfCallbacks_PE32Plus;
public ulong AddressOfCallbacks_PE32Plus { get; set; }
#endregion
@@ -84,13 +84,13 @@
/// The zero fill is the amount of data that comes after the initialized
/// nonzero data.
/// </summary>
public uint SizeOfZeroFill;
public uint SizeOfZeroFill { get; set; }
/// <summary>
/// The four bits [23:20] describe alignment info. Possible values are those
/// defined as IMAGE_SCN_ALIGN_*, which are also used to describe alignment
/// of section in object files. The other 28 bits are reserved for future use.
/// </summary>
public uint Characteristics;
public uint Characteristics { get; set; }
}
}

View File

@@ -11,31 +11,31 @@
/// <summary>
/// The length, in bytes, of the Var structure.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// The size, in words, of the Value member.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// The Unicode string L"Translation".
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Value member on a 32-bit boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
/// <summary>
/// An array of one or more values that are language and code page identifier pairs.
@@ -50,9 +50,9 @@
/// language and code page independent.
/// </summary>
#if NET48
public uint[] Value;
public uint[] Value { get; set; }
#else
public uint[]? Value;
public uint[]? Value { get; set; }
#endif
}
}

View File

@@ -11,39 +11,39 @@
/// The length, in bytes, of the entire VarFileInfo block, including all structures
/// indicated by the Children member.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// This member is always equal to zero.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// The Unicode string L"VarFileInfo".
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
/// </summary>
public ushort Padding;
public ushort Padding { get; set; }
/// <summary>
/// Typically contains a list of languages that the application or DLL supports.
/// </summary>
#if NET48
public VarData[] Children;
public VarData[] Children { get; set; }
#else
public VarData?[]? Children;
public VarData?[]? Children { get; set; }
#endif
}
}

View File

@@ -12,66 +12,66 @@
/// include any padding that aligns any subsequent version resource data on a
/// 32-bit boundary.
/// </summary>
public ushort Length;
public ushort Length { get; set; }
/// <summary>
/// The length, in bytes, of the Value member. This value is zero if there is no
/// Value member associated with the current version structure.
/// </summary>
public ushort ValueLength;
public ushort ValueLength { get; set; }
/// <summary>
/// The type of data in the version resource. This member is 1 if the version resource
/// contains text data and 0 if the version resource contains binary data.
/// </summary>
public VersionResourceType ResourceType;
public VersionResourceType ResourceType { get; set; }
/// <summary>
/// The Unicode string L"VS_VERSION_INFO".
/// </summary>
#if NET48
public string Key;
public string Key { get; set; }
#else
public string? Key;
public string? Key { get; set; }
#endif
/// <summary>
/// Contains as many zero words as necessary to align the Value member on a 32-bit boundary.
/// </summary>
public ushort Padding1;
public ushort Padding1 { get; set; }
/// <summary>
/// Arbitrary data associated with this VS_VERSIONINFO structure. The ValueLength member
/// specifies the length of this member; if ValueLength is zero, this member does not exist.
/// </summary>
#if NET48
public FixedFileInfo Value;
public FixedFileInfo Value { get; set; }
#else
public FixedFileInfo? Value;
public FixedFileInfo? Value { get; set; }
#endif
/// <summary>
/// As many zero words as necessary to align the Children member on a 32-bit boundary.
/// These bytes are not included in wValueLength. This member is optional.
/// </summary>
public ushort Padding2;
public ushort Padding2 { get; set; }
/// <summary>
/// The StringFileInfo structure to store user-defined string information data.
/// </summary>
#if NET48
public StringFileInfo StringFileInfo;
public StringFileInfo StringFileInfo { get; set; }
#else
public StringFileInfo? StringFileInfo;
public StringFileInfo? StringFileInfo { get; set; }
#endif
/// <summary>
/// The VarFileInfo structure to store language information data.
/// </summary>
#if NET48
public VarFileInfo VarFileInfo;
public VarFileInfo VarFileInfo { get; set; }
#else
public VarFileInfo? VarFileInfo;
public VarFileInfo? VarFileInfo { get; set; }
#endif
}
}