サロゲート共有
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 サロゲートの既定のシステム実装を使用する必要があることを示します。
関連トピック