ProcessModule.EntryPointAddress Eigenschaft

Definition

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

IntPtr

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.

Gilt für: