Альтернативы NtQueryInformationProcess для обнаружения процессов нежити?
Я хотел бы определить, когда кто-то завершает приостановленный отлаженный процесс, не сообщая об этом отладчику. (Например, перейдите к точке останова в консольном приложении и закройте окно консоли приложения.) Процесс переходит в состояние, похожее на зомби, и дальше с ним невозможно взаимодействовать, пока отладчик не освободит удержание.
Это состояние, по-видимому, устанавливает флаг PROCESS_EXTENDED_BASIC_INFORMATION::IsProcessDeleting при сборе информации о процессе через NtQueryInformationProcess, но и флаг, структура и функция фактически недокументированы и помечены как "не использовать" в MSDN.
Надежно ли тестировать этот флаг? Есть ли лучший, "официальный" API, который я могу использовать?
(Да, я знаю, что IsProcessDeleting также устанавливается, когда процесс (неожиданно, неожиданно) завершается нормально. С моей точки зрения, это не проблема.)
1 ответ
Нет, не то, что я могу видеть. NtQueryInformationProcess не исчезнет в ближайшее время, хотя, если бы эта функция была удалена, сотни приложений были бы нарушены ею.