こんにちは。
現在、Windows Server 2003 SP1の環境で開発した常駐アプリを動作させています。
常駐アプリはVC++6.0SP6で作成したものです。
通常ですと、特に問題もなく、動作していましたが、ここ最近、OSのシャットダウンができない
ことが数回あります。(ほんとにまれです)
常駐アプリ(exe)をタスクマネージャから停止させるとOSのシャットダウンができるようになります。
それなら、常駐アプリが悪いんじゃん!!
ということで、アプリケーションによってOSのシャットダウンが停止する原因を調べたところ、
OSのシャットダウン時には、OSから各アプリケーションにWM_QUERYENDSESSIONメッセージが
飛ばされる。
このメッセージに対してFALSEを返却するとOSのシャットダウンがキャンセルされる。
ということでした。
しかしながら、現在の常駐アプリではこの部分は常にTRUEを返却しているため、
FALSEを返すことはありません。
上記以外でアプリケーションが原因でOSのシャットダウンがキャンセルされることはあるのでしょうか?
または、シャットダウンがキャンセルされる理由を突き止める方法(ツールなど)がありましたらご教授ください。
以下のようにシャットダウン処理に入ってからの進行状況表示を行う方法はあったのですが、実際に知りたいのは
その少し前?の進行状況になります。
http://support.microsoft.com/kb/325376/ja
よろしくお願いします。