Альтернативы NtQueryInformationProcess для обнаружения процессов нежити? - PullRequest
2 голосов
/ 07 апреля 2010

Я хотел бы определить, когда кто-то прерывает отлаженный процесс без уведомления отладчика. (Например, перейдите к точке останова в консольном приложении и закройте окно консоли приложения.) Процесс переходит в состояние, похожее на зомби, и дальше с ним невозможно взаимодействовать, пока отладчик не освободит удержание.

Это состояние, по-видимому, устанавливает флаг PROCESS_EXTENDED_BASIC_INFORMATION :: IsProcessDeleting при сборе информации о процессе через NtQueryInformationProcess, но и флаг, структура и функция фактически недокументированы и помечены как «не использовать» в MSDN.

Надежно ли проверять этот флаг? Есть ли лучший, "официальный" API, который я могу использовать?

(Да, я знаю, что IsProcessDeleting также устанавливается, когда процесс (неожиданно, неожиданно) завершается нормально. Это не проблема с моей точки зрения.)

1 Ответ

2 голосов
/ 09 апреля 2010

Нет, не то, чтобы я мог видеть.NtQueryInformationProcess не исчезнет в ближайшее время, хотя, если бы эта функция была удалена, сотни приложений были бы сломаны ею.

...