SERVICE_CONTROL_STATUS_REASON_PARAMSA構造体 (winsvc.h)

サービス 制御パラメーターが含まれます。

構文

typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
  DWORD                  dwReason;
  LPSTR                  pszComment;
  SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA;

メンバー

dwReason

サービスの状態をSERVICE_CONTROL_STOPに変更する理由。 現在のコントロール コードがSERVICE_CONTROL_STOPされていない場合、このメンバーは無視されます。

このメンバーは、1 つの一般的なコード、1 つの主要な理由コード、および 1 つのマイナー理由コードの組み合わせに設定する必要があります。

一般的な理由コードを次に示します。

意味
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
理由コードはユーザーによって定義されます。 このフラグが存在しない場合、理由コードはシステムによって定義されます。 このフラグがシステム理由コードと共に指定されている場合、関数呼び出しは失敗します。

ユーザーは、範囲SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) からSERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) までのカスタムの主な理由コードと、SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) から SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF) の範囲のマイナー理由コードを作成できます。

SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
サービス停止が計画されました。
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
サービス停止は計画されていませんでした。
 

主な理由コードを次に示します。

意味
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
アプリケーションの問題。
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
ハードウェアの問題。
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
大きな理由はありません。
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
オペレーティング システムの問題。
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
その他の問題。
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
ソフトウェアの問題。
 

小さな理由コードを次に示します。

意味
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
[ディスク] を選択する必要があります。
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
環境。
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
ドライバー。
SERVICE_STOP_REASON_MINOR_HUNG
0x00000006
応答。
SERVICE_STOP_REASON_MINOR_INSTALLATION
0x00000003
インストールします。
SERVICE_STOP_REASON_MINOR_MAINTENANCE
0x00000002
メンテナンス。
SERVICE_STOP_REASON_MINOR_MMC
0x00000016
MMC の問題。
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000011
ネットワーク接続。
SERVICE_STOP_REASON_MINOR_NETWORKCARD
0x00000009
ネットワーク カード。
SERVICE_STOP_REASON_MINOR_NONE
0x00060000
軽微な理由はありません。
SERVICE_STOP_REASON_MINOR_OTHER
0x00000001
その他の問題。
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
0x0000000c
その他のドライバー イベント。
SERVICE_STOP_REASON_MINOR_RECONFIG
0x00000005
再構成。
SERVICE_STOP_REASON_MINOR_SECURITY
0x00000010
セキュリティの問題。
SERVICE_STOP_REASON_MINOR_SECURITYFIX
0x0000000f
セキュリティ更新プログラム。
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000015
セキュリティ更新プログラムのアンインストール。
SERVICE_STOP_REASON_MINOR_SERVICEPACK
0x0000000d
Service Pack。
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000013
Service Pack のアンインストール。
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
0x0000000e
ソフトウェア更新プログラム。
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
0x0000000e
ソフトウェア更新プログラムのアンインストール。
SERVICE_STOP_REASON_MINOR_UNSTABLE
0x00000007
不安定。
SERVICE_STOP_REASON_MINOR_UPGRADE
0x00000004
[アップグレード]:
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
WMI の問題。

pszComment

サービス停止に関する追加情報を提供する省略可能な文字列。 この文字列は、停止理由コードと共にイベント ログに格納されます。 このメンバーは NULL であるか、終端の null 文字を含む 128 文字未満の有効な文字列である必要があります。

ServiceStatus

最新のサービス状態情報を受け取る SERVICE_STATUS_PROCESS 構造体へのポインター。 返される情報には、サービスがサービス コントロール マネージャーに報告した最新の状態が反映されます。

サービス コントロール マネージャーは、 ControlServiceEx が NO_ERROR、ERROR_INVALID_SERVICE_CONTROL、ERROR_SERVICE_CANNOT_ACCEPT_CTRL、またはERROR_SERVICE_NOT_ACTIVEのいずれかのエラー コードを返す場合にのみ、構造体を入力します。 それ以外の場合、構造体は入力されません。

注釈

注意

winsvc.h ヘッダーは、SERVICE_CONTROL_STATUS_REASON_PARAMSをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header winsvc.h (Windows.h を含む)

こちらもご覧ください

ControlServiceEx

SERVICE_STATUS_PROCESS