我在 Windows 平台上运行以下代码。目的是了解特定进程 ID 是否引用现有进程。
BOOL bProcessExists = FALSE;
HANDLE hProcHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcID);
if(hProcHandle)
{
    bProcessExists = TRUE;
    ::CloseHandle(hProcHandle);
}
else
{
    if(::GetLastError() == ERROR_ACCESS_DENIED)
    {
        bProcessExists = TRUE;
    }
}
运行上述代码的进程没有运行提升,我发现 OpenProcess 可以返回拒绝访问某些进程 ID。
上面的代码有效吗?