ProcessModule.EntryPointAddress ProcessModule.EntryPointAddress ProcessModule.EntryPointAddress ProcessModule.EntryPointAddress Property

정의

시스템에서 모듈을 로드하고 실행할 때 실행되는 함수의 메모리 주소를 가져옵니다.Gets the memory address for the function that runs when the system loads and runs the module.

public:
 property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr

속성 값

모듈의 진입점입니다.The entry point of the module.

예제

다음 코드 예제에는 Notepad.exe 애플리케이션에 대 한 새 프로세스를 만듭니다.The following code example creates a new process for the Notepad.exe application. 이 코드는 ProcessModuleCollection 클래스를 반복하여 컬렉션의 각 모듈에 대한 ProcessModule 개체를 가져옵니다.The code iterates through the ProcessModuleCollection class to obtain a ProcessModule object for each module in the collection. ModuleNameEntryPointAddress 속성은 각 모듈의 이름 및 진입점 주소를 표시하는 데 사용됩니다.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();
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

설명

모듈의 진입점은 프로세스 시작, 스레드 시작, 프로세스 종료 및 스레드 종료 중에 호출되는 함수의 위치입니다.The module's entry point is the location of the function that is called during process startup, thread startup, process shutdown, and thread shutdown. 진입점이 DllMain 함수의 주소가 아닌 경우 대부분의 목적을 위해 가까이 있어야 합니다.While the entry point is not the address of the DllMain function, it should be close enough for most purposes.

참고

Windows가 어셈블리를 로드하는 방식이 변경되어 EntryPointAddress은(는) 항상 Windows 8Windows 8 또는 Windows 8.1Windows 8.1에 0을 반환하며 해당 플랫폼에서 사용해서는 안 됩니다.Due to changes in the way that Windows loads assemblies, EntryPointAddress will always return 0 on Windows 8Windows 8 or Windows 8.1Windows 8.1 and should not be relied on for those platforms.

적용 대상