ChangeServiceConfig2A 関数 (winsvc.h)
サービスのオプションの構成パラメーターを変更します。
構文
BOOL ChangeServiceConfig2A(
[in] SC_HANDLE hService,
[in] DWORD dwInfoLevel,
[in, optional] LPVOID lpInfo
);
パラメーター
[in] hService
サービスへのハンドル。 このハンドルは OpenService または CreateService 関数によって返され、 SERVICE_CHANGE_CONFIG アクセス権が必要です。 詳細については、「 サービス セキュリティとアクセス権」を参照してください。
サービス コントローラーが SC_ACTION_RESTART アクションを処理する場合、 hService には SERVICE_START アクセス権が必要です。
[in] dwInfoLevel
変更する構成情報。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
lpInfo パラメーターは、SERVICE_DELAYED_AUTO_START_INFO構造体へのポインターです。
Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_DESCRIPTION構造体へのポインターです。 |
|
lpInfo パラメーターは、SERVICE_FAILURE_ACTIONS構造体へのポインターです。
サービス コントローラーが SC_ACTION_REBOOT アクションを処理する場合、呼び出し元には SE_SHUTDOWN_NAME 特権が必要です。 詳細については、「特別な特権を使用して実行する」を参照してください。 |
|
lpInfo パラメーターは、SERVICE_FAILURE_ACTIONS_FLAG構造体へのポインターです。
Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_PREFERRED_NODE_INFO構造体へのポインターです。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_PRESHUTDOWN_INFO構造体へのポインターです。
Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_REQUIRED_PRIVILEGES_INFO構造体へのポインターです。
Windows Server 2003 および Windows XP: この値はサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_SID_INFO構造体へのポインターです。 |
|
lpInfo パラメーターは、SERVICE_TRIGGER_INFO構造体へのポインターです。 この値は、ANSI バージョンの ChangeServiceConfig2 ではサポートされていません。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は、Windows Server 2008 R2 までサポートされていません。 |
|
lpInfo パラメーターは、SERVICE_LAUNCH_PROTECTED_INFO構造体を指すポインターです。
メモこの値は、Windows 8.1 以降でサポートされています。
|
[in, optional] lpInfo
構成情報に設定する新しい値へのポインター。 このデータの形式は 、dwInfoLevel パラメーターの値によって異なります。 この値が NULL の場合、情報は変更されません。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ChangeServiceConfig2 関数は、サービス コントロール マネージャー データベース内の指定されたサービスのオプションの構成情報を変更します。 QueryServiceConfig2 関数を使用して、現在の省略可能な構成情報を取得できます。
サービス コントロール マネージャーのプロセスを共有するサービスの SERVICE_CONFIG_FAILURE_ACTIONS 値を設定することはできません。 これには、実行可能イメージが "Services.exe" であるすべてのサービスが含まれます。
ChangeServiceConfig 関数と QueryServiceConfig 関数をそれぞれ使用して、追加の構成情報の変更とクエリを実行できます。
サービスがエラーで終了した後に再起動するように構成されている場合、サービス 制御マネージャーは、指定された遅延時間の後に発生する再起動アクションをキューに入れます。 キューに入れた再起動アクションを取り消すことはできません。 キューに登録された再起動アクションが発生する前にサービスを手動で再起動してから停止した場合、遅延時間が経過すると、サービスは予期せず再起動されます。 サービスを再起動できないようにするには、サービスを明示的に無効にする必要があります。
SERVICE_CONFIG_LAUNCH_PROTECTED値を使用して、保護されたサービスを起動できます。 保護されたサービスを起動するには、特別な証明書を使用してサービスに署名する必要があります。
SERVICE_CONFIG_LAUNCH_PROTECTED例:
SERVICE_LAUNCH_PROTECTED_INFO Info;
SC_HANDLE hService;
Info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT;
hService = CreateService (...);
if (ChangeServiceConfig2(hService,
SERVICE_CONFIG_LAUNCH_PROTECTED,
&Info) == FALSE)
{
Result = GetLastError();
}
例
例については、「 サービスの構成の変更」を参照してください。
注意
winsvc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして ChangeServiceConfig2 を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winsvc.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |
こちらもご覧ください
QueryServiceDynamicInformation
SERVICE_DELAYED_AUTO_START_INFO