PEHeaderBuilder Konstruktor
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Initialisiert eine neue Instanz der PEHeader-Klasse.
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)
Parameter
- machine
- Machine
Die CPU-Architektur des Zielcomputers.
- sectionAlignment
- Int32
Die Ausrichtung (in Bytes) von Abschnitten beim Laden in den Arbeitsspeicher. Dieses muss größer oder gleich fileAlignment
sein. Der Standard für die Architektur ist die Seitengröße.
- fileAlignment
- Int32
Der Ausrichtungsfaktor (in Byte), der verwendet wird, um die Rohdaten von Abschnitten in der Imagedatei auszurichten. Der Wert muss eine Potenz von 2 sein und zwischen 512 und einschließlich 64.000 liegen. Der Standardwert liegt bei 512. Wenn sectionAlignment
kleiner ist als die Seitengröße der Architektur, dann muss fileAlignment
mit sectionAlignment
übereinstimmen.
- imageBase
- UInt64
Beim Laden in den Arbeitsspeicher muss die bevorzugte Adresse des ersten Imagebytes ein Vielfaches von 64.000 sein.
- majorLinkerVersion
- Byte
Die Hauptversionsnummer des Linker.
- minorLinkerVersion
- Byte
Die Nebenversionsnummer des Linker.
- majorOperatingSystemVersion
- UInt16
Die Hauptversionsnummer des erforderlichen Betriebssystems.
- minorOperatingSystemVersion
- UInt16
Die Nebenversionsnummer des erforderlichen Betriebssystems.
- majorImageVersion
- UInt16
Die Hauptversionsnummer des Images.
- minorImageVersion
- UInt16
Die Nebenversionsnummer des Images.
- majorSubsystemVersion
- UInt16
Die Hauptversionsnummer des Subsystems.
- minorSubsystemVersion
- UInt16
Die Nebenversionsnummer des Subsystems.
- subsystem
- Subsystem
Das Subsystem, das für die Ausführung des Images erforderlich ist.
- dllCharacteristics
- DllCharacteristics
Ein Objekt, das die Merkmale der Dynamic Link Library beschreibt.
- imageCharacteristics
- Characteristics
Ein Objekt, das die Merkmale des Images beschreibt.
- sizeOfStackReserve
- UInt64
Die Größe des Stapels, der reserviert werden soll. Nur für sizeOfStackCommit
wird ein Commit ausgeführt. Der Rest wird auf jeweils einer Seite verfügbar gemacht, bis die Reservierungsgröße erreicht ist.
- sizeOfStackCommit
- UInt64
Dier Größe des Stapels, für den ein Commit ausgeführt wird.
- sizeOfHeapReserve
- UInt64
Die Größe des Speicherplatzes für den lokalen Heap, der reserviert werden soll. Nur für sizeOfHeapCommit
wird ein Commit ausgeführt. Der Rest wird auf jeweils einer Seite verfügbar gemacht, bis die Reservierungsgröße erreicht ist.
- sizeOfHeapCommit
- UInt64
Die Größe des Speicherplatzes für den lokalen Heap, für den ein Commit ausgeführt werden soll.
Ausnahmen
fileAlignment
ist keine Potenz von 2, die zwischen 512 und 64.000 liegt.
- oder -
sectionAlignment
ist keine Potenz von 2.
- oder -
sectionAlignment
ist kleiner als fileAlignment
.