ProcessModule.BaseAddress Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets the memory address where the module was loaded.

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

public IntPtr BaseAddress { get; }

Property Value

Type: System.IntPtr

The load address of the module.

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 BaseAddress properties are used to display the module name and the memory address where each module was loaded.

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("Base addresses of the modules associated "
   +"with 'notepad' are:");
// Display the 'BaseAddress' of each of the modules.
for( int i = 0; i < myProcessModuleCollection.Count; i++)
{
   myProcessModule = myProcessModuleCollection[i];
   Console.WriteLine(myProcessModule.ModuleName+" : "
      +myProcessModule.BaseAddress);
}
// Get the main module associated with 'myProcess'.
myProcessModule = myProcess.MainModule;
// Display the 'BaseAddress' of the main module.
Console.WriteLine("The process's main module's base address is: "
   +myProcessModule.BaseAddress);
 myProcess.CloseMainWindow();

.NET Framework
Available since 1.1
Return to top
Show: