PEHeaderBuilder 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 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
。