Windowsサービス制御文字
-
13-10-2019 - |
質問
Windowsサービスを作成し、コントロール+Bまたはコントロール+C制御値を送信したいと考えています。 SCコントロールを使用できることは知っていますが、送信できるすべての可能な値を含む場所があるかどうか疑問に思っていました。 SC STOPメソッドがありますが、コントロール文字を送信したいと考えています。
解決
サービスシャットダウンの「優雅さ」はすべて、サービスがリクエストにどのように応答するかに依存します。サービスを書いている場合、SCMが「停止」リクエストを送信したときにサービスがどのように応答するかを完全に制御できます。リクエストを受け取った後、サービスを停止してコントロールリクエストに応答する時間が限られた時間(Windowsがどれだけの量を決定します)があります。タイムリーに応答できない場合、Windowsはサービスプロセスを不平を言って終了する場合があります。
コンソールアプリケーションは、 SetConsoleCtrlHandler()
働き。ただし、サービスプロセスはコンソールウィンドウ内で実行されるわけではないため、このハンドラーはサービスに完全に適用できません。
所属していません StackOverflow