Partager via


RpcEpRegisterW, fonction (rpcdce.h)

La fonction RpcEpRegister ajoute ou remplace les informations d’adresse du serveur dans la base de données locale endpoint-map.

Syntaxe

RPC_STATUS RpcEpRegisterW(
  RPC_IF_HANDLE      IfSpec,
  RPC_BINDING_VECTOR *BindingVector,
  UUID_VECTOR        *UuidVector,
  RPC_WSTR           Annotation
);

Paramètres

IfSpec

Interface pour l’inscription auprès de la base de données de mappage de point de terminaison locale.

BindingVector

Pointeur vers un vecteur de handles de liaison sur lequel le serveur peut recevoir des appels de procédure distante.

UuidVector

Pointeur vers un vecteur d’UUID d’objet proposé par le serveur. L’application serveur construit ce vecteur. Une valeur d’argument null indique qu’il n’y a pas d’UUID d’objet à inscrire.

Annotation

Pointeur vers le commentaire de chaîne de caractères appliqué à chaque élément de produit croisé ajouté à la base de données locale endpoint-map. La chaîne peut avoir jusqu’à 64 caractères, y compris le caractère de fin null. Spécifiez une valeur Null ou une chaîne terminée par null (« \0 ») s’il n’existe aucune chaîne d’annotation.

La chaîne d’annotation est utilisée par les applications à des fins d’information uniquement. RPC n’utilise pas cette chaîne pour déterminer quel serveur instance un client communique avec ou pour énumérer des éléments dans la base de données endpoint-map.

Valeur retournée

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_NO_BINDINGS
Aucune liaison.
RPC_S_INVALID_BINDING
Le handle de liaison n’était pas valide.
RPC_S_WRONG_KIND_OF_BINDING
Il s’agissait du mauvais type de liaison pour l’opération.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Remarques

La fonction RpcEpRegister ajoute ou remplace des entrées dans la base de données endpoint-map de l’hôte local. Pour une entrée de base de données existante qui correspond à la spécification d’interface, au handle de liaison et à l’UUID d’objet fournis, cette fonction remplace le point de terminaison de l’entrée par le point de terminaison dans le handle de liaison fourni.

Un serveur peut utiliser RpcEpRegister et RpcEpRegisterNoReplace pour inscrire des entrées dans la base de données du mappeur de point de terminaison. Avant Windows 2000, deux fonctions étaient disponibles pour permettre à un serveur de remplacer les entrées obsolètes dans la base de données du mappeur de point de terminaison restante des instances de serveur précédentes qui ne sont plus en cours d’exécution. La base de données du mappeur de point de terminaison supprime automatiquement les entrées inscrites par un serveur instance dès que le serveur cesse de fonctionner. Toutefois, les serveurs ne sont pas autorisés à remplacer les entrées du mappeur de point de terminaison d’un autre serveur à des fins de sécurité. Par conséquent, RpcEpRegister et RpcEpRegisterNoReplace exécutent en grande partie les mêmes fonctionnalités.

Une application serveur appelle RpcEpRegister pour inscrire les points de terminaison spécifiés en appelant l’une des fonctions suivantes :

Si le serveur exporte également vers la base de données name-service, le serveur appelle RpcEpRegister avec les mêmes valeurs IfSpec, BindingVector et UuidVector utilisées lors de l’appel de la fonction RpcNsBindingExport .

Si une séquence de protocole est utilisée sans spécifier de point de terminaison, la bibliothèque d’exécution RPC génère automatiquement un point de terminaison dynamique. Dans ce cas, le serveur peut appeler RpcServerInqBindings suivi de RpcEpRegister pour se rendre disponible pour plusieurs clients. Sinon, le serveur démarré automatiquement est connu uniquement du client pour lequel le serveur a été démarré. Chaque élément ajouté à la base de données endpoint-map contient logiquement les éléments suivants :

  • UUID d’interface
  • Version de l’interface (majeure et mineure)
  • Handle de liaison
  • UUID de l’objet (facultatif)
  • Annotation (facultatif)
RpcEpRegister crée un produit croisé à partir des paramètres IfSpec, BindingVector et UuidVector et ajoute chaque élément dans le produit croisé en tant qu’inscription distincte dans la base de données endpoint-map.

Notes

L’en-tête rpcdce.h définit RpcEpRegister en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête rpcdce.h (inclure Rpc.h)
Bibliothèque Rpcrt4.lib
DLL Rpcrt4.dll

Voir aussi

RpcBindingFromStringBinding

RpcEpRegisterNoReplace

RpcEpUnregister

RpcNsBindingExport

RpcServerInqBindings

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf