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