<Return[PQ]><Top>

QueryServiceStatus

Declare Function Api_QueryServiceStatus& Lib "advapi32" Alias "QueryServiceStatus" (ByVal hService&, lpServiceStatus As SERVICE_STATUS)

Declare Function QueryServiceStatus Lib "advapi32" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long

指定されたサービスの現在のステータスを取得する。
QueryServiceStatusEx 関数は、QueryServiceStatus 関数の改訂版である。QueryServiceStatusEx 関数は QueryServiceStatus 関数と同じ情報に加えて、プロセス識別子と、サービスに関する追加のフラグを返す。

パラメータ
hService
    [入力]サービスのハンドルを指定する。OpenService 関数または CreateService 関数が返したハンドルを指定し、これには

    SERVICE_QUERY_STATUS アクセス権が必要である。
lpServiceStatus
    [出力]ステータス情報を受け取る 構造体へのポインタを指定する。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。
    サービス制御マネージャは次のエラーコードを設定することがある。サービス制御マネージャが呼び出したレジストリ関数は、その他のエラー

    コードを設定することがある。
    エラーコード                                 意味                                                                                                                  
    ERROR_ACCESS_DENIED 指定されたハンドルを開く際に、SERVICE_QUERY_STATUS アクセス権が指定されていなかった。
    ERROR_INVALID_HANDLE 指定されたハンドルは無効である。


解説
    QueryServiceStatus 関数は、サービス制御マネージャへ報告された、サービスの最新ステータス情報を取得する。サービスがステータスを

    変更した直後は、サービス制御マネージャの保持する情報がまだ更新されていない可能性がある。アプリケーションは

    SERVICE_CONTROL_INTERROGATE 制御コードを指定して ControlService 関数を呼び出すことにより、サービスを直接検討し、サー

    ビスの現在のステータスを把握することもできる。