ProcessModule.EntryPointAddress Eigenschap

Definitie

Hiermee haalt u het geheugenadres op voor de functie die wordt uitgevoerd wanneer het systeem wordt geladen en de module wordt uitgevoerd.

public:
 property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr

Waarde van eigenschap

IntPtr

nativeint

Het toegangspunt van de module.

Voorbeelden

In het volgende codevoorbeeld wordt een nieuw proces voor de Notepad.exe toepassing gemaakt. De code doorloopt de ProcessModuleCollection klasse om een ProcessModule object te verkrijgen voor elke module in de verzameling. De ModuleName en EntryPointAddress eigenschappen worden gebruikt om de naam en het beginpuntadres voor elke module weer te geven.

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

Opmerkingen

Het ingangspunt van de module is de locatie van de functie die wordt aangeroepen tijdens het opstarten van het proces, het opstarten van threads, het afsluiten van processen en het afsluiten van threads. Hoewel het toegangspunt niet het adres is van de functie DllMain, moet het voor de meeste doeleinden dicht genoeg zijn.

Note

Als gevolg van wijzigingen in de manier waarop Windows assembly's laadt, retourneert EntryPointAddress altijd 0 op Windows 8 of Windows 8.1 en mag niet worden gebruikt voor deze platforms.

Van toepassing op