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 ausgeführt wird, wenn das System das Modul lädt und ausführt.
public:
property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr
Eigenschaftswert
nativeint
Der Einstiegspunkt dieses Moduls.
Beispiele
Im folgenden Codebeispiel wird ein neuer Prozess für die Anwendung „Notepad. exe“ erstellt. Der Code durchläuft die ProcessModuleCollection-Klasse, um ein ProcessModule-Objekt für jedes Modul in der Sammlung abzurufen. Die Eigenschaften ModuleName und EntryPointAddress werden verwendet, um den Namen und die Einstiegspunktadresse für jedes Modul anzuzeigen.
Process^ myProcess = gcnew Process;
// Get the process start information of notepad.
ProcessStartInfo^ myProcessStartInfo = gcnew 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( "{0} : {1}", myProcessModule->ModuleName, myProcessModule->EntryPointAddress );
}
myProcessModule = myProcess->MainModule;
Console::WriteLine( "The process's main module's EntryPointAddress is: {0}", myProcessModule->EntryPointAddress );
myProcess->CloseMainWindow();
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 jeweils beim Starten bzw. Herunterfahren des Prozesses bzw. Threads aufgerufen wird. Obwohl der Einstiegspunkt nicht die Adresse der DllMain-Funktion ist, sollte er für die meisten Zwecke nahe genug sein.
Hinweis
Aufgrund von Änderungen an der Art und Weise, wie Windows Assemblys lädt, EntryPointAddress gibt immer 0 auf Windows 8 oder Windows 8.1 zurück und sollte für diese Plattformen nicht verwendet werden.