Windows C ++, проверить, если процесс приостановлен? Альтернативы NtQuerySystemInformation () - PullRequest
0 голосов
/ 26 марта 2020

Есть ли лучший способ программно c проверить, приостановлен ли процесс windows, чем загрузка NtDll.dll и вызов NtQuerySystemInformation () с аргументом SystemProcessInformation?

В настоящее время я работаю с приложением, которое зависит по другому заявлению на получение туннеля. К сожалению, это другое приложение не имеет реального API, который я могу использовать для проверки его состояния, но я вижу с ProcessExplorer-SysInternals, что время от времени процесс d ie (процесс приостановлен)

До сих пор я реализовал dll-загрузку и вызов NtQuerySystemInformation и проверил ThreadState + WaitReason потоков процесса. Microsoft советует не использовать NtQuerySystemInformation, и я боюсь, что она нестабильна, и я также вижу небольшие различия в том, что содержится в структуре SYSTEM_PROCESS_INFORMATION (среди веб-сайтов, с помощью локальных заголовочных файлов и т. Д. c.), А также различия в 32/64-битном.

К сожалению, я не вижу других способов, позволяющих проверить, приостановлен ли процесс. Я пробовал GetExitCodeProcess (), но я получаю STILL_ACTIVE даже для приостановленных потоков.

...