ProcessModule.EntryPointAddress Eigenschaft
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.
Ruft die Speicheradresse für die Funktion ab, die beim Laden des Systems ausgeführt wird, und führt das Modul aus.
public:
property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr
Eigenschaftswert
nativeint
Der Einstiegspunkt des Moduls.
Beispiele
Im folgenden Codebeispiel wird ein neuer Prozess für die Notepad.exe Anwendung erstellt. Der Code durchläuft die ProcessModuleCollection Klasse, um ein ProcessModule Objekt für jedes Modul in der Auflistung abzurufen. Die ModuleName Eigenschaften EntryPointAddress werden verwendet, um den Namen und die Einstiegspunktadresse für jedes Modul anzuzeigen.
using (Process myProcess = new Process())
{
// Get the process start information of notepad.
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("notepad.exe");
// Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' object.
myProcess.StartInfo = myProcessStartInfo;
// Create a notepad.
myProcess.Start();
System.Threading.Thread.Sleep(1000);
ProcessModule myProcessModule;
// Get all the modules associated with 'myProcess'.
ProcessModuleCollection myProcessModuleCollection = myProcess.Modules;
Console.WriteLine("Entry point addresses of the modules "
+ "associated with 'notepad' are:");
// Display the 'EntryPointAddress' of each of the modules.
for (int i = 0; i < myProcessModuleCollection.Count; i++)
{
myProcessModule = myProcessModuleCollection[i];
Console.WriteLine(myProcessModule.ModuleName + " : "
+ myProcessModule.EntryPointAddress);
}
// Get the main module associated with 'myProcess'.
myProcessModule = myProcess.MainModule;
Console.WriteLine("The process's main module's EntryPointAddress is: "
+ myProcessModule.EntryPointAddress);
myProcess.CloseMainWindow();
}
Using myProcess As New Process()
' Get the process start information of notepad.
Dim myProcessStartInfo As New ProcessStartInfo("notepad.exe")
' Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' object.
myProcess.StartInfo = myProcessStartInfo
' Create a notepad.
myProcess.Start()
System.Threading.Thread.Sleep(1000)
Dim myProcessModule As ProcessModule
' Get all the modules associated with 'myProcess'.
Dim myProcessModuleCollection As ProcessModuleCollection = myProcess.Modules
Console.WriteLine("Entry point addresses of the modules " +
"associated with 'notepad' are:")
' Display the 'EntryPointAddress' of each of the modules.
Dim i As Integer
For i = 0 To myProcessModuleCollection.Count - 1
myProcessModule = myProcessModuleCollection(i)
Console.WriteLine(myProcessModule.ModuleName + " : " +
myProcessModule.EntryPointAddress.ToString())
Next i
' Get the main module associated with 'myProcess'.
myProcessModule = myProcess.MainModule
Console.WriteLine("The process's main module's EntryPointAddress is: " +
myProcessModule.EntryPointAddress.ToString())
myProcess.CloseMainWindow()
End Using
Hinweise
Der Einstiegspunkt des Moduls ist die Position der Funktion, die während des Prozessstarts, des Threadstarts, des Herunterfahrens des Prozesses und des Herunterfahrens von Threads aufgerufen wird. Während der Einstiegspunkt nicht die Adresse der DllMain-Funktion ist, sollte er für die meisten Zwecke nah genug sein.
Note
Aufgrund von Änderungen, wie Windows Assemblys lädt, gibt EntryPointAddress immer 0 auf Windows 8 oder Windows 8.1 zurück und sollte nicht für diese Plattformen verwendet werden.