代理人分享
如果 DLL 伺服器具有相符的安全性身分識別,並共用相同的 AppID 值,則 DLL 伺服器將會共用代理。
根據預設,DLL 伺服器會載入自己的代理程式。 若要將其他 DLL 伺服器載入現有的代理,使其支援多個 DLL 伺服器,有兩個需求:
- DLL 伺服器必須具有相同的AppID值。
- DLL 伺服器的安全性內容必須相同。
如果要在不同的安全性身分識別下啟動兩個 DLL 伺服器,無論它們的 AppID 是否相符,它們都必須在不同的代理伺服器下運行。
以下是使用 AppID 管理 Surrogate 共用的範例:
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 代理的預設系統實作。
相關主題