Partager via


Inscription du serveur DLL pour l’activation de substitution

Un serveur DLL est chargé dans un processus de substitution dans les conditions suivantes :

  • Une valeur AppID doit être spécifiée sous la clé CLSID dans le Registre et une clé AppID correspondante.
  • Dans un appel d’activation, le bit CLSCTX_LOCAL_SERVER est défini et la clé CLSID ne spécifie pas LocalServer32, LocalServer ou LocalService. Si d’autres bits CLSCTX sont définis, l’algorithme de traitement pour les indicateurs d’exécution en cours, locaux ou distants est suivi.
  • La clé CLSID contient la sous-clé InprocServer32.
  • La DLL spécifiée dans la clé InprocServer32 existe.
  • La valeur DllSurrogate existe sous la clé AppID.

S’il existe un serveur LocalServer, LocalServer32 ou LocalService, indiquant l’existence d’un EXE, le serveur ou le service EXE est toujours lancé en préférence pour charger un serveur DLL dans un processus de substitution.

La dllSurrogate nommée doit être spécifiée pour que l’activation de substitution se produise. L’activation fait référence aux appels à l’une des fonctions d’activation suivantes :

Pour lancer une instance du substitut fourni par le système, définissez la valeur de DllSurrogate sur une chaîne vide ou sur NULL. Pour spécifier le lancement d’une substitution personnalisée, définissez la valeur sur le chemin du substitut.

Si RemoteServerName et DllSurrogate sont spécifiés pour le même AppID, la valeur RemoteServerName est ignorée et la valeur DllSurrogate provoque une activation sur l’ordinateur local. Pour l’activation de substitution distante, spécifiez RemoteServerName , mais pas DllSurrogate sur le client, puis spécifiez DllSurrogate sur le serveur.

Un serveur DLL conçu pour toujours s’exécuter seul dans son propre processus de substitution est mieux configuré avec un APPID égal à son CLSID. Sous AppID, spécifiez simplement une DllSurrogate nommée avec une valeur de chaîne vide.

Il est préférable de configurer un serveur DLL conçu pour s’exécuter seul dans son propre processus de substitution et pour traiter plusieurs clients sur un réseau avec une valeur RunAs spécifiée sous la clé de Registre AppID. Si les RunAs spécifient « Utilisateur(-trice) interactif(-ve) » ou une identité utilisateur(-trice) spécifique dépend de l’interface utilisateur, de la sécurité et d’autres exigences du serveur. Lorsqu’une valeur RunAs est spécifiée, une seule instance du serveur est chargée pour traiter tous les clients, quelle que soit l’identité du client. En revanche, ne configurez pas le serveur avec des RunAs si l’intention est d’avoir une instance du serveur DLL s’exécutant dans la substitution pour traiter chaque identité cliente distante.

Exigence du serveur DLL

Partage de substitution