ProcessModule.EntryPointAddress プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
システムがモジュールを読み込んで実行するときの関数のメモリ アドレスを取得します。
public:
property IntPtr EntryPointAddress { IntPtr get(); };
public IntPtr EntryPointAddress { get; }
member this.EntryPointAddress : nativeint
Public ReadOnly Property EntryPointAddress As IntPtr
プロパティ値
IntPtr
nativeint
このモジュールのエントリ ポイント。
例
次のコード例では、Notepad.exe アプリケーションの新しいプロセスが作成されます。 このコードでは、ProcessModuleCollection クラスを反復処理して、コレクション内の各モジュールの ProcessModule オブジェクトを取得します。 ModuleName プロパティと EntryPointAddress プロパティは、各モジュールの名前とエントリ ポイント アドレスを表示するために使用されます。
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
注釈
モジュールのエントリ ポイントは、プロセスの起動、スレッドの起動、プロセスのシャットダウン、スレッドのシャットダウン中に呼び出される関数の場所です。 エントリ ポイントは、DllMain 関数のアドレスではありませんが、ほとんどの目的では十分に事足ります。
注意
Windows がアセンブリを読み込む方法の変更により、 EntryPointAddress は常に Windows 8 または Windows 8.1 で 0 を返し、それらのプラットフォームに依存しないようにする必要があります。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET