Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mendapatkan proses induk dalam .net tanpa menggunakan p/invoke?
Mendapatkan proses induk dalam .NET adalah tugas biasa yang boleh dilaksanakan menggunakan panggilan platform (p/invoke). Walau bagaimanapun, artikel ini memperkenalkan alternatif yang tidak perlu menggunakan p/invoke. Penyelesaian ini menggunakan fungsi ntQueryInformationProcess di perpustakaan NTDLL.DLL, tetapi ia tidak berinteraksi secara langsung melalui p/invoke, tetapi menggunakan kelas ParentProcessUtilities untuk abstrak proses.
Kelas ParentProcessUtilities mengandungi kaedah statik, seperti GetParentProcess, yang menerima contoh kelas Procestess yang menunjukkan proses proses induk.
<code class="language-csharp">[StructLayout(LayoutKind.Sequential)] public struct ParentProcessUtilities { // 这些成员必须与PROCESS_BASIC_INFORMATION匹配 internal IntPtr Reserved1; internal IntPtr PebBaseAddress; internal IntPtr Reserved2_0; internal IntPtr Reserved2_1; internal IntPtr UniqueProcessId; internal IntPtr InheritedFromUniqueProcessId; }</code>fungsi NtQueryInformationProcess untuk mendapatkan maklumat asas proses yang ditentukan, termasuk ID Proses Warisan. Dengan menanyakan maklumat ini dan menukarkannya ke dalam contoh proses, penyelesaian ini membolehkan dengan mudah mengambil proses induk dalam kod hosting tanpa menggunakan p/invoke.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan proses induk dalam .net tanpa menggunakan p/invoke?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!