2

誰かがデバッガーに通知せずに中断されたデバッグ済みプロセスを終了したことを検出したいと思います。(たとえば、コンソールアプリのブレークポイントに到達し、アプリのコンソールウィンドウを閉じます。)プロセスはゾンビのような状態になり、デバッガーが保留を解除するまで、それ以上対話できません。

この状態は、NtQueryInformationProcessを介してプロセスに関する情報を収集するときに、PROCESS_EXTENDED_BASIC_INFORMATION :: IsProcessDeletingフラグを設定しているように見えますが、フラグ、構造、および機能の両方が事実上文書化されておらず、MSDNで「使用しない」とマークされています。

このフラグのテストは信頼できますか?使用できるより優れた「公式」APIはありますか?

(はい、IsProcessDeletingは、プロセスが(サプライズ、サプライズ)正常にシャットダウンしているときにも設定されることを知っています。これは、私の観点からは問題ではありません。)

4

1 に答える 1

2

いいえ、私が見ることができるわけではありません。NtQueryInformationProcessはすぐになくなることはありませんが、その関数が削除された場合、何百ものアプリが壊れてしまいます。

于 2010-04-08T21:57:37.607 に答える