Я запускаю следующий код на платформе Windows. Цель состоит в том, чтобы узнать, относится ли конкретный идентификатор процесса к существующему процессу.
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 может возвращать отказ в доступе для некоторых идентификаторов процессов.
Будет ли приведенный выше код действительным?