PEHeaderBuilder 构造函数

定义

初始化 PEHeader 类的新实例。

public PEHeaderBuilder (System.Reflection.PortableExecutable.Machine machine = System.Reflection.PortableExecutable.Machine.Unknown, int sectionAlignment = 8192, int fileAlignment = 512, ulong imageBase = 4194304, byte majorLinkerVersion = 48, byte minorLinkerVersion = 0, ushort majorOperatingSystemVersion = 4, ushort minorOperatingSystemVersion = 0, ushort majorImageVersion = 0, ushort minorImageVersion = 0, ushort majorSubsystemVersion = 4, ushort minorSubsystemVersion = 0, System.Reflection.PortableExecutable.Subsystem subsystem = System.Reflection.PortableExecutable.Subsystem.WindowsCui, System.Reflection.PortableExecutable.DllCharacteristics dllCharacteristics = System.Reflection.PortableExecutable.DllCharacteristics.DynamicBase | System.Reflection.PortableExecutable.DllCharacteristics.NoSeh | System.Reflection.PortableExecutable.DllCharacteristics.NxCompatible | System.Reflection.PortableExecutable.DllCharacteristics.TerminalServerAware, System.Reflection.PortableExecutable.Characteristics imageCharacteristics = System.Reflection.PortableExecutable.Characteristics.Dll, ulong sizeOfStackReserve = 1048576, ulong sizeOfStackCommit = 4096, ulong sizeOfHeapReserve = 1048576, ulong sizeOfHeapCommit = 4096);
new System.Reflection.PortableExecutable.PEHeaderBuilder : System.Reflection.PortableExecutable.Machine * int * int * uint64 * byte * byte * uint16 * uint16 * uint16 * uint16 * uint16 * uint16 * System.Reflection.PortableExecutable.Subsystem * System.Reflection.PortableExecutable.DllCharacteristics * System.Reflection.PortableExecutable.Characteristics * uint64 * uint64 * uint64 * uint64 -> System.Reflection.PortableExecutable.PEHeaderBuilder
Public Sub New (Optional machine As Machine = System.Reflection.PortableExecutable.Machine.Unknown, Optional sectionAlignment As Integer = 8192, Optional fileAlignment As Integer = 512, Optional imageBase As ULong = 4194304, Optional majorLinkerVersion As Byte = 48, Optional minorLinkerVersion As Byte = 0, Optional majorOperatingSystemVersion As UShort = 4, Optional minorOperatingSystemVersion As UShort = 0, Optional majorImageVersion As UShort = 0, Optional minorImageVersion As UShort = 0, Optional majorSubsystemVersion As UShort = 4, Optional minorSubsystemVersion As UShort = 0, Optional subsystem As Subsystem = System.Reflection.PortableExecutable.Subsystem.WindowsCui, Optional dllCharacteristics As DllCharacteristics = System.Reflection.PortableExecutable.DllCharacteristics.DynamicBase | System.Reflection.PortableExecutable.DllCharacteristics.NoSeh | System.Reflection.PortableExecutable.DllCharacteristics.NxCompatible | System.Reflection.PortableExecutable.DllCharacteristics.TerminalServerAware, Optional imageCharacteristics As Characteristics = System.Reflection.PortableExecutable.Characteristics.Dll, Optional sizeOfStackReserve As ULong = 1048576, Optional sizeOfStackCommit As ULong = 4096, Optional sizeOfHeapReserve As ULong = 1048576, Optional sizeOfHeapCommit As ULong = 4096)

参数

machine
Machine

目标计算机的 CPU 体系结构。

sectionAlignment
Int32

各部分加载到内存中时的对齐值(以字节为单位)。 该值必须大于或等于 fileAlignment。 默认值为体系结构的页面大小。

fileAlignment
Int32

用于使映像文件中各部分的原始数据一致的对齐系数(以字节为单位)。 该值应为 2 的幂次方,界于 512 和 64K 之间(含)。 默认值为 512。 如果 sectionAlignment 小于体系结构的页面大小,则 fileAlignment 必须与 sectionAlignment 匹配。

imageBase
UInt64

映像加载到内存中时其第一个字节的首选地址。它必须是 64K 的倍数。

majorLinkerVersion
Byte

链接器主版本号。

minorLinkerVersion
Byte

链接器次要版本号。

majorOperatingSystemVersion
UInt16

所需操作系统的主版本号。

minorOperatingSystemVersion
UInt16

所需操作系统的次要版本号。

majorImageVersion
UInt16

映像的主版本号。

minorImageVersion
UInt16

映像的次要版本号。

majorSubsystemVersion
UInt16

子系统的主版本号。

minorSubsystemVersion
UInt16

子系统的次要版本号。

subsystem
Subsystem

运行映像所需的子系统。

dllCharacteristics
DllCharacteristics

描述动态链接库特征的对象。

imageCharacteristics
Characteristics

描述映像特征的对象。

sizeOfStackReserve
UInt64

要保留的堆栈的大小。 仅提交 sizeOfStackCommit;其余部分一次提供一页,直到达到保留大小。

sizeOfStackCommit
UInt64

要提交的堆栈的大小。

sizeOfHeapReserve
UInt64

要保留的本地堆空间的大小。 仅提交 sizeOfHeapCommit;其余部分一次提供一页,直到达到保留大小。

sizeOfHeapCommit
UInt64

要提交的本地堆空间的大小。

例外

fileAlignment 不是界于 512 和 64K 之间的 2 的幂次方。 - 或 -

sectionAlignment 不是 2 的幂次方。

- 或 -

sectionAlignment 小于 fileAlignment

适用于