サロゲート共有

DLL サーバーは、一致するセキュリティ ID を持ち、同じ AppID 値を共有する場合、サロゲートを共有します。

DLL サーバーは、既定で独自のサロゲート プロセスに読み込まれます。 複数の DLL サーバーをサポートするように他の DLL サーバーを既存のサロゲートに読み込むには、次の 2 つの要件があります。

  • DLL サーバーの AppID 値は同じである必要があります。
  • DLL サーバーのセキュリティ コンテキストは同じである必要があります。

異なるセキュリティ ID で 2 つの DLL サーバーを起動する場合は、AppID が一致するかどうかに関係なく、異なるサロゲートに配置する必要があります。

AppID を使用してサロゲート共有を管理する例を次に示します。

    AppID
        {12345678-0000-0000-0000-abcdabcdabcd}
            @DllSurrogate    REG_SZ
    CLSID
        {12345678-0000-0000-0000-000000000001}
            @AppId    REG_SZ    {12345678-0000-0000-0000-abcdabcdabcd}
            InProcServer32
    @    REG_SZ    c:\myapp\comp1.dll
        {12345678-0000-0000-0000-000000000002}
            @AppId    REG_SZ    {12345678-0000-0000-0000-abcdabcdabcd}
            InProcServer32
    @    REG_SZ    c:\myapp\comp2.dll
 

DLL コンポーネントの 2 つの CLSID comp1.dllとcomp2.dllは、AppID を共有するように構成されています。 AppID キーは、 DllSurrogate 値を指定することで、DLL サーバーをサロゲートに読み込むことができることを指定します。 この例では、 DllSurrogate 値は空の文字列で、DLL サロゲートの既定のシステム実装を使用する必要があることを示します。

DLL サーバーの要件

サロゲート ライセンス認証のための DLL サーバーの登録