Partager via


Partage de substitution

Les serveurs DLL partageront un substitut s’ils ont des identités de sécurité correspondantes et partagent la même valeur AppID.

Les serveurs DLL sont chargés, par défaut, dans leur propre processus de substitution. Pour charger d’autres serveurs DLL dans un substitut existant afin qu’il prenne en charge plusieurs serveurs DLL, il existe deux conditions :

  • Les serveurs DLL doivent avoir la même valeur AppID.
  • Le contexte de sécurité des serveurs DLL doit être le même.

Si deux serveurs DLL doivent être lancés sous des identités de sécurité différentes, ils doivent se trouver dans des substituts différents, que leurs AppID correspondent.

Voici un exemple d’administration du partage de substitution avec des AppID :

    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
 

Les deux CLSID pour les composants DLL comp1.dll et comp2.dll ont été configurés pour partager un AppID. La clé AppID spécifie que le serveur DLL peut être chargé dans une substitution en spécifiant la valeur DllSurrogate . Dans cet exemple, la valeur DllSurrogate est une chaîne vide, indiquant que l’implémentation système par défaut du substitut DLL doit être utilisée.

Configuration requise du serveur DLL

Inscription du serveur DLL pour l’activation de substitution