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 |
---|---|
|
L’appel a réussi. |
|
Aucune liaison. |
|
Le handle de liaison n’était pas valide. |
|
Il s’agissait du mauvais type de liaison pour l’opération. |
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 :
- RpcServerUseAllProtseqs
- RpcServerUseProtseq
- RpcServerUseProtseqEp
- RpcServerUseAllProtseqsIf
- RpcServerUseProtseqIf
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)
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 |