Freigeben über


Ersatzfreigabe

DLL-Server verwenden ein Ersatzzeichen, wenn sie über übereinstimmende Sicherheitsidentitäten und denselben AppID-Wert verfügen.

DLL-Server werden standardmäßig in ihren eigenen Ersatzprozess geladen. Um andere DLL-Server in ein vorhandenes Ersatzzeichen zu laden, sodass mehrere DLL-Server unterstützt werden, gibt es zwei Anforderungen:

  • Die DLL-Server müssen den gleichen AppID-Wert aufweisen.
  • Der Sicherheitskontext der DLL-Server muss identisch sein.

Wenn zwei DLL-Server unter unterschiedlichen Sicherheitsidentitäten gestartet werden sollen, müssen sie sich in unterschiedlichen Ersatzzeichen befinden, unabhängig davon, ob ihre AppIDs übereinstimmen.

Im Folgenden finden Sie ein Beispiel für die Verwaltung der Ersatzfreigabe mit AppIDs:

    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
 

Die beiden CLSIDs für DLL-Komponenten comp1.dll und comp2.dll wurden so konfiguriert, dass sie eine AppID freigeben. Der AppID-Schlüssel gibt an, dass der DLL-Server in ein Ersatzzeichen geladen werden kann, indem der DllSurrogate-Wert angegeben wird. In diesem Beispiel ist der DllSurrogate-Wert eine leere Zeichenfolge, die angibt, dass die Standardsystemimplementierung des DLL-Ersatzzeichens verwendet werden soll.

DLL-Serveranforderungen

Registrieren des DLL-Servers für die Ersatzaktivierung