OpenServiceA 関数 (winsvc.h)
既存のサービスを開きます。
構文
SC_HANDLE OpenServiceA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
パラメーター
[in] hSCManager
サービス コントロール マネージャー データベースへのハンドル。 OpenSCManager 関数は、このハンドルを返します。 詳細については、「サービスのセキュリティとアクセス権の」を参照してください。
[in] lpServiceName
開くサービスの名前。 これは、サービス オブジェクトの作成時に CreateService 関数の lpServiceName パラメーターで指定された名前であり、サービスを識別するためにユーザー インターフェイス アプリケーションによって表示されるサービス表示名ではありません。
文字列の最大長は 256 文字です。 サービス コントロール マネージャー データベースでは文字の大文字と小文字が保持されますが、サービス名の比較では常に大文字と小文字が区別されません。 スラッシュ (/) と円記号 (\) は無効なサービス名文字です。
[in] dwDesiredAccess
サービスへのアクセス。 アクセス権の一覧については、「サービス セキュリティとアクセス権の」を参照してください。
要求されたアクセスを許可する前に、システムは呼び出し元プロセスのアクセス トークンを、サービス オブジェクトに関連付けられているセキュリティ記述子の随意アクセス制御リストと照合します。
戻り値
関数が成功した場合、戻り値はサービスへのハンドルです。
関数が失敗した場合、戻り値は NULL です。 拡張エラー情報を取得するには、GetLastError
サービス コントロール マネージャーでは、次のエラー コードを設定できます。 その他は、サービス コントロール マネージャーによって呼び出されるレジストリ関数によって設定できます。
リターン コード | 形容 |
---|---|
|
ハンドルはサービスにアクセスできません。 |
|
指定されたハンドルが無効です。 |
|
指定されたサービス名が無効です。 |
|
指定されたサービスが存在しません。 |
備考
返されたハンドルは、OpenService
OpenService
例
例については、「サービスの開始
手記
winsvc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OpenService を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winsvc.h (Windows.h を含む) |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |
関連項目
ChangeServiceConfig の
CloseServiceHandle の
CreateService の
DeleteService の
EnumDependentServices を
QueryServiceDynamicInformation の
SetServiceObjectSecurity の
StartService の