共用方式為


Surrogate 共用

如果 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 索引鍵指定 DLL 伺服器可以藉由指定 DllSurrogate 值,在代理中載入。 在此範例中 ,DllSurrogate 值是空字串串,表示應該使用 DLL 代理的默認系統實作。

DLL 伺服器需求

註冊代理啟用的 DLL 伺服器