您的位置:首页 > 编程语言 > PHP开发

GetParentProcessId获取父进程ID

2017-07-20 16:07 330 查看
//获取父进程ID
DWORD GetParentProcessId(DWORD ProcessId)
{
NTSTATUS                   status;
DWORD                     dwParentPID = 0;
HANDLE                    hProcess = NULL;
PROCESS_BASIC_INFORMATION pbi;

typedef LONG(WINAPI *PNTQUERYINFORMATIONPROCESS)(HANDLE, UINT, PVOID, ULONG, PULONG);
static PNTQUERYINFORMATIONPROCESS  NtQueryInformationProcess = (PNTQUERYINFORMATIONPROCESS)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtQueryInformationProcess");

do
{
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, ProcessId);
if (!hProcess)break;

status = NtQueryInformationProcess(hProcess, SystemBasicInformation, (PVOID)&pbi, sizeof(PROCESS_BASIC_INFORMATION), NULL);
if (NT_SUCCESS(status))
dwParentPID = (ULONG_PTR)pbi.Reserved3;

} while (FALSE);

SafeCloseHandle(hProcess);
return dwParentPID;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: