ProcessModule.EntryPointAddress Property

Gets the memory address for the function that runs when the system loads and runs the module.

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)

public IntPtr EntryPointAddress { get; }

Property Value

Type: System.IntPtr
The entry point of the module.

The module's entry point is the location of the function that is called during process startup, thread startup, process shutdown, and thread shutdown. While the entry point is not the address of the DllMain function, it should be close enough for most purposes.

NoteNote

Due to changes in the way that Windows loads assemblies, EntryPointAddress will always return 0 on Windows 8 or Windows 8.1 and should not be relied on for those platforms.

The following code example creates a new process for the Notepad.exe application. The code iterates through the ProcessModuleCollection class to obtain a ProcessModule object for each module in the collection. The ModuleName and EntryPointAddress properties are used to display the name and the entry point address for each module.

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();

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft