Ersatzzeichenfreigabe

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

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

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

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

Es folgt ein Beispiel für die Verwaltung der Ersatzzeichenfreigabe mit AppIDs:

    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
 

Die beiden CLSIDs für DLL-Komponenten comp1.dll und comp2.dll so konfiguriert, dass sie eine AppID gemeinsam nutzen. Der AppID-Schlüssel gibt an, dass der DLL-Server durch Angabe des DllSurrogate-Werts in ein Ersatzzeichen geladen werden kann. 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