RegisterServiceCtrlHandler |
Declare Function Api_RegisterServiceCtrlHandler& Lib "advapi32" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName$, ByVal lpHandlerProc&) |
||||||
Declare Function RegisterServiceCtrlHandler Lib "advapi32" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long |
|||||||
サービスアプリケーションは RegisterServiceCtrlHandler 関数を呼び出して、自らのサービス制御要求を処理する関数を登録する。 |
|||||||
パラメータ
ビスの作成時にサービス制御プログラムが CreateService 関数で指定したサービスの名前である。
は指定された名前が有効かどうかを検証しない。 コードを設定することがある。
解説 に登録しなければならない。この結果、制御ディスパッチャはそのサービスに対する制御の要求を受け取ったときに、指定された関数を呼び 出せるようになる。呼び出し側プロセスのスレッドは、この関数が返したサービスステータスのハンドルを使って、それ以降の
SetServiceStatus 関数の呼び出しでこのサービスを識別することができる。 このサービスのステータスを設定することがないよう、RegisterServiceCtrlHandler 関数が呼び出し側用のサービスステータスのハンドルを 返すからである。加えて、サービスが制御ハンドラを指定する時点までに、制御の要求を受け取れるように制御ハンドラを実装しておかなけ
ればならない。サービスは、SetServiceStatus 関数を通してこの制御ハンドラを受け入れる。
SetServiceStatus
関数を呼び出して自らの現在のステータスをサービス制御マネージャへ通知しなければならない。 |