ProcessModule::EntryPointAddress Property
Gets the memory address for the function that runs when the system loads and runs the module.
Assembly: System (in System.dll)
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.
Note |
|---|
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 = 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();
Available since 1.1
