サービス コントロール マネージャー (SCM) は、サービスのメソッド呼び出しに関してどのような保証を行いますか?
次のような場合は保証されますか?
- サービス停止中のOnStart/OnPause/OnContinue
- サービス停止中のOnStart/OnPause
- サービス実行中の OnStop/OnContinue
- コマンドメソッドが既に実行されている間に呼び出されるコマンドメソッド
- OnStart が既に実行中の場合の OnStart
- OnPause実行中のOnStop
これまでに見つけた最良の参考文献は、これらの保証が実際に行われていることを示しているようですが、私が見つけたドキュメントの唯一の参考文献はかなりあいまいだったので、より良い参考文献を見つけようとしています.
MSDN フォーラムのスレッドでは、SCM が状態が一貫していることを保証している、または「[サービスが実行されていないか一時停止している場合に SCM が停止要求を送信する] というケースを少なくとも見つけたことがない」と述べています。
ドキュメントでこれまでに見つけた最高のリファレンスは次のとおりです。
これらのメソッド [OnStart/OnStop/etc.] は、サービスが存続期間中に移動する状態を表します。サービスは、ある状態から次の状態に移行します。たとえば、OnStart が呼び出される前に、サービスが OnContinue コマンドに応答することはありません。