Delen via


Surrogaat delen

DLL-servers delen een surrogaat als ze overeenkomende beveiligingsidentiteiten hebben en dezelfde AppID-waarde delen.

DLL-servers worden standaard in hun eigen surrogaatproces geladen. Als u andere DLL-servers wilt laden in een bestaand surrogaat zodat deze meer dan één DLL-server ondersteunt, zijn er twee vereisten:

  • De DLL-servers moeten dezelfde AppID-waarde hebben.
  • De beveiligingscontext van de DLL-servers moet hetzelfde zijn.

Als twee DLL-servers moeten worden gestart onder verschillende beveiligingsidentiteiten, moeten ze zich in verschillende surrogaten bevinden, of hun AppID's overeenkomen.

Hieronder volgt een voorbeeld van het beheren van surrogaat delen met AppID's:

    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
 

De twee CLSID's voor DLL-onderdelen comp1.dll en comp2.dll zijn geconfigureerd om een AppID te delen. De AppID--sleutel geeft aan dat de DLL-server in een surrogaat kan worden geladen door de DllSurrogate-waarde op te geven. In dit voorbeeld is de waarde DllSurrogate een lege tekenreeks die aangeeft dat de standaardsysteem-implementatie van het DLL-surrogaat moet worden gebruikt.

DLL-server vereisten

de DLL-server registreren voor surrogaatactivering