LocalService
サービス アプリケーションとしてオブジェクトをインストールします。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{AppID_GUID}
LocalService = name
COM オブジェクトは、ローカル サーバー実行可能ファイル (EXE) として実行されるだけでなく、ローカルクライアントまたはリモートクライアントによってアクティブ化されたときにサービス アプリケーションとして実行するように自身をパッケージ化することもできます。 サービスは、ローカルおよびリモートの起動、停止、一時停止、再起動、特定のユーザー アカウントとウィンドウ ステーションで実行するサーバーを確立する機能など、便利で UI に統合された管理機能を多数サポートしています。
サービスとして記述されたオブジェクトは、LocalService 値を確立し、標準的なサービスのインストールを実行することで、COM で使用できるようにインストールされます。 LocalService 値は、既定のREG_SZ 値として HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services で構成されているサービス名に設定する必要があります。
LocalService が設定されている場合、ServiceParameters に割り当てられた文字列は、起動時にコマンドライン引数としてサービスに渡されます。
サービス構成は、ローカルおよびリモートのサービス管理 API とユーザー インターフェイスの機能が、オブジェクトが提供するサービスに役立つ可能性がある多くの状況で推奨されます。 たとえば、オブジェクトが有効期間が長い場合や、起動、停止、リセット、一時停止などの概念を容易にサポートしている場合は、サービス アーキテクチャの既存の管理フレームワークを活用することは明らかな選択肢です。
サービスは動的に構成でき、マシンの起動時に自動的に実行されるように構成することも、クライアント アプリケーションから要求されたときに起動するように構成することもできます。
クラスをサービスとして実装する場合は、次の点に注意する必要があります。
- この値は、ローカルおよびリモートのアクティブ化の要求の LocalServer32 キーよりも優先して使用され、LocalService が存在し有効なサービスを参照している場合、LocalServer32 キーは無視されます。
- 現時点では、サービス アプリケーションのインスタンスは、1 台のコンピューター上の特定の時点で 1 つのみ実行できます。 したがって、COM サービスは、複数のクライアントをサポートするために、起動時に REGCLS_MULTIPLEUSE を使用してクラス オブジェクトを登録する必要があります。
- 正常に起動して初期化するには、コンピューターの起動時に自動的に実行されるように構成された COM サービスに、依存サービスの一覧に RPCSS を含める必要があります。