代理项共享
如果 DLL 服务器具有匹配的安全标识并共享相同的 AppID 值,则 DLL 服务器将共享代理项。
默认情况下,DLL 服务器会加载到自己的代理进程。 若要将其他 DLL 服务器加载到现有代理项中,使其支持多个 DLL 服务器,有两个要求:
- DLL 服务器必须具有相同的 AppID 值。
- DLL 服务器的安全上下文必须相同。
如果要在不同的安全标识下启动两个 DLL 服务器,则无论它们的 AppID 是否匹配,它们都必须位于不同的代理中。
下面是使用 AppID 管理代理项共享的示例:
AppID
{00001111-aaaa-2222-bbbb-3333cccc4444}
@DllSurrogate REG_SZ
CLSID
{12345678-0000-0000-0000-000000000001}
@AppId REG_SZ {00001111-aaaa-2222-bbbb-3333cccc4444}
InProcServer32
@ REG_SZ c:\myapp\comp1.dll
{12345678-0000-0000-0000-000000000002}
@AppId REG_SZ {00001111-aaaa-2222-bbbb-3333cccc4444}
InProcServer32
@ REG_SZ c:\myapp\comp2.dll
DLL 组件的两个 CLSID comp1.dll 和 comp2.dll 已配置为共享 AppID。 AppID 键指定可以通过指定 DllSurrogate 值在代理项中加载 DLL 服务器。 在本例中,DllSurrogate 值为空字符串,指示应使用 DLL 代理项的默认系统实现。
相关主题