OpenSCManagerW

指定したコンピュータ上のサービスコントロールマネージャへの接続を確立し、指定したサービスコントロールマネージャデータベースを開く。(Unicode)

OpenSCManagerW lpMachineName, lpDatabaseName, dwDesiredAccess

lpMachineName : [wstr] 対象コンピュータの名前。ポインタが NULL または空文字列を指す場合、関数はローカルコンピュータ上のサービスコントロールマネージャに接続する。
lpDatabaseName : [wstr] サービスコントロールマネージャデータベースの名前。このパラメータは SERVICES_ACTIVE_DATABASE に設定するべきである。NULL の場合、SERVICES_ACTIVE_DATABASE データベースが既定で開かれる。
dwDesiredAccess : [int] サービスコントロールマネージャへのアクセス。アクセス権のリストについては「Service Security and Access Rights」を参照。

(プラグイン / モジュール : advapi32.dll)

解説

指定したコンピュータ上のサービスコントロールマネージャへの接続を確立し、指定したサービスコントロールマネージャデータベースを開く。(Unicode)

[戻り値]
関数が成功した場合、戻り値は指定されたサービスコントロールマネージャデータベースへのハンドルである。関数が失敗した場合、戻り値は NULL
である。拡張エラー情報を取得するには GetLastError を呼び出す。以下のエラーコードが SCM によって設定されることがある。
(以下省略)

[備考]
プロセスが OpenSCManager
関数を使用してサービスコントロールマネージャデータベースへのハンドルを開くとき、システムは要求されたアクセスを付与する前にセキュリティチェックを実行する。詳細は「Service
Security and Access
Rights」を参照。現在のユーザーが別のコンピュータ上のサービスに接続する際に適切なアクセスを持たない場合、OpenSCManager
関数呼び出しは失敗する。サービスにリモートで接続するには、LOGON32_LOGON_NEW_CREDENTIALS を指定して
LogonUser 関数を呼び出し、次に OpenSCManager を呼び出す前に ImpersonateLoggedOnUser
を呼び出す。サービスへのリモート接続の詳細については「Services and
RPC/TCP」を参照。管理者特権を持つプロセスのみが、CreateService
関数で使用できるデータベースハンドルを開くことができる。返されたハンドルは OpenSCManager
関数を呼び出したプロセスでのみ有効である。CloseServiceHandle 関数を呼び出して閉じることができる。

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs