ProcessModule.EntryPointAddress Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar minnesadressen för den funktion som körs när systemet läser in och kör modulen.
public:
property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr
Egenskapsvärde
nativeint
Startpunkten för modulen.
Exempel
I följande kodexempel skapas en ny process för Notepad.exe-programmet. Koden itererar genom ProcessModuleCollection klassen för att hämta ett ProcessModule objekt för varje modul i samlingen. Egenskaperna ModuleName och EntryPointAddress används för att visa namnet och startpunktsadressen för varje modul.
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
Kommentarer
Modulens startpunkt är platsen för den funktion som anropas under processstart, trådstart, processavstängning och trådavstängning. Även om startpunkten inte är adressen till funktionen DllMain bör den vara tillräckligt nära för de flesta ändamål.
Note
På grund av ändringar i hur Windows läser in sammansättningar returnerar EntryPointAddress alltid 0 på Windows 8 eller Windows 8.1 och bör inte användas för dessa plattformar.