StartServiceA 関数 (winsvc.h)
サービスを開始します。
構文
BOOL StartServiceA(
[in] SC_HANDLE hService,
[in] DWORD dwNumServiceArgs,
[in, optional] LPCSTR *lpServiceArgVectors
);
パラメーター
[in] hService
サービスへのハンドル。 このハンドルは、
[in] dwNumServiceArgs
lpServiceArgVectors 配列内の文字列の数。 lpServiceArgVectors
[in, optional] lpServiceArgVectors
サービスの ServiceMain 関数に引数として渡される null で終わる文字列。 引数がない場合、このパラメーターには NULL を指定できます。 それ以外の場合、最初の引数 (lpServiceArgVectors[0]) はサービスの名前であり、その後に追加の引数 (lpServiceArgVectors[1] から lpServiceArgVectors[dwNumServiceArgs-1]) が続きます。
ドライバー サービスは、これらの引数を受け取りません。
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
サービス コントロール マネージャーでは、次のエラー コードを設定できます。 その他は、サービス コントロール マネージャーによって呼び出されるレジストリ関数によって設定できます。
リターン コード | 形容 |
---|---|
|
ハンドルにSERVICE_STARTアクセス権がありません。 |
|
ハンドルが無効です。 |
|
サービス バイナリ ファイルが見つかりませんでした。 |
|
サービスのインスタンスが既に実行されています。 |
|
データベースがロックされています。 |
|
このサービスは、存在しないサービスまたは削除対象としてマークされているサービスに依存します。 |
|
サービスは、開始に失敗した別のサービスに依存します。 |
|
サービスが無効になっています。 |
|
ログオンエラーのため、サービスが開始されませんでした。 このエラーは、"サービスとしてログオン" 権限を持たないアカウントでサービスが実行されるように構成されている場合に発生します。 |
|
サービスは削除対象としてマークされています。 |
|
サービスのスレッドを作成できませんでした。 |
|
サービスのプロセスは開始されましたが、StartServiceCtrlDispatcher |
備考
ドライバー サービスが開始されると、StartService 関数は、デバイス ドライバーの初期化が完了するまで戻りません。
サービスが開始されると、必要に応じてサービス コントロール マネージャー (SCM) によってサービス プロセスが生成されます。 指定されたサービスが他のサービスとプロセスを共有している場合は、必要なプロセスが既に存在している可能性があります。 StartService 関数は、新しいサービスからの最初の状態の更新を待機しません。しばらく時間がかかる場合があるためです。 代わりに、SCM がサービス コントロール ディスパッチャーから、このサービスの ServiceMain スレッドが正常に作成されたことを示す通知を受信したときに返されます。
SCM は、StartServiceから戻る前に、次の既定の状態値
- サービスの現在の状態がSERVICE_START_PENDINGに設定されています。
- 受け入れられるコントロールは none (ゼロ) に設定されます。
- CheckPoint 値は 0 に設定されます。
- WaitHint 時間は 2 秒に設定されます。
初期化中にサービス StartService を呼び出すことはできません。 その理由は、SCM が初期化中にサービス コントロール データベースをロックするため、StartService
例
例については、「サービスの開始
手記
winsvc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして StartService を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winsvc.h (Windows.h を含む) |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |
関連項目
CreateService の
DeleteService の
QueryServiceDynamicInformation の
ServiceMain の