RpcServerUseProtseqEp, fonction (rpcdce.h)

La fonction RpcServerUseProtseqEp indique à la bibliothèque d’exécution RPC d’utiliser la séquence de protocole spécifiée associée au point de terminaison spécifié pour recevoir des appels de procédure distante.

Syntaxe

RPC_STATUS RpcServerUseProtseqEp(
  RPC_CSTR     Protseq,
  unsigned int MaxCalls,
  RPC_CSTR     Endpoint,
  void         *SecurityDescriptor
);

Paramètres

Protseq

Pointeur vers un identificateur de chaîne de la séquence de protocole à inscrire auprès de la bibliothèque d’exécution RPC.

MaxCalls

Longueur de la file d’attente du backlog pour la séquence de protocole ncacn_ip_tcp . Toutes les autres séquences de protocole ignorent ce paramètre. Utilisez RPC_C_PROTSEQ_MAX_REQS_DEFAULT pour spécifier la valeur par défaut. Consultez la section Notes.

Endpoint

Pointeur vers les informations d’adresse de point de terminaison à utiliser lors de la création d’une liaison pour la séquence de protocole spécifiée dans le paramètre Protseq .

SecurityDescriptor

Pointeur vers un paramètre facultatif fourni pour le sous-système de sécurité. Utilisé uniquement pour les séquences de protocole ncacn_np et ncalrpc . Toutes les autres séquences de protocole ignorent ce paramètre. L’utilisation d’un descripteur de sécurité sur le point de terminaison pour sécuriser un serveur n’est pas recommandée. Ce paramètre n’apparaît pas dans la spécification DCE pour cette API.

Valeur retournée

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_PROTSEQ_NOT_SUPPORTED
La séquence de protocole n’est pas prise en charge sur cet hôte.
RPC_S_INVALID_RPC_PROTSEQ
La séquence de protocole n’est pas valide.
RPC_S_INVALID_ENDPOINT_FORMAT
Format du point de terminaison non valide.
RPC_S_OUT_OF_MEMORY
Le système est en mémoire insuffisante.
RPC_S_DUPLICATE_ENDPOINT
Le point de terminaison est un doublon.
RPC_S_INVALID_SECURITY_DESC
Le descripteur de sécurité n'est pas valide.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Remarques

Une application serveur appelle RpcServerUseProtseqEp pour inscrire une séquence de protocole auprès de la bibliothèque d’exécution RPC. Avec chaque inscription de séquence de protocole, RpcServerUseProtseqEp inclut les informations d’adresse de point de terminaison spécifiées.

Pour recevoir des demandes d’appel de procédure distante, un serveur doit inscrire au moins une séquence de protocole auprès de la bibliothèque d’exécution RPC. Une application serveur peut appeler cette routine plusieurs fois pour inscrire des séquences de protocole et des points de terminaison supplémentaires. Pour chaque séquence de protocole inscrite par un serveur, la bibliothèque d’exécution RPC crée un ou plusieurs points de terminaison via lesquels le serveur reçoit des demandes d’appel de procédure distante. La bibliothèque d’exécution RPC crée des points de terminaison différents pour chaque séquence de protocole. Toutefois, chaque interface du processus est accessible via n’importe quel point de terminaison. Pour plus d’informations, consultez Écriture d’un serveur ou d’un client RPC sécurisé.

Pour MaxCalls, la valeur fournie par l’application n’est qu’un indicateur. L’heure d’exécution RPC ou le fournisseur Windows Sockets peut remplacer la valeur. Par exemple, sur Windows XP ou Windows 2000 Professionnel, la valeur est limitée à 5. Les valeurs supérieures à 5 sont ignorées et 5 est utilisé à la place. Sur Windows Server 2003 et Windows 2000 Server, la valeur est respectée.

Les applications doivent veiller à transmettre des valeurs raisonnables dans MaxCalls. Des valeurs élevées sur serveur, serveur avancé ou serveur de centre de données peuvent entraîner l’utilisation d’une grande quantité de mémoire de pool non paginée. L’utilisation d’une valeur trop petite est également défavorable, car elle peut entraîner la mise en place de paquets TCP SYN par TCP RST à partir du serveur si la file d’attente du backlog est épuisée. Un développeur d’applications doit équilibrer l’empreinte mémoire et les exigences de scalabilité lors de la détermination de la valeur appropriée pour MaxCalls.

Lorsque l’ordinateur est configuré pour utiliser la liaison sélective, le retour réussi ne garantit pas que le serveur a créé des points de terminaison pour toutes les interfaces réseau présentes sur l’ordinateur. L’exécution RPC peut ne pas écouter sur certaines interfaces réseau en fonction des paramètres de liaison sélective. En outre, si une interface n’a pas encore reçu d’adresse IP à l’aide du protocole DHCP, le serveur RPC n’écoute pas sur l’interface réseau tant qu’une adresse DHCP ne lui est pas affectée. Un retour réussi implique que le serveur écoute sur au moins une interface réseau ; la liste complète des descripteurs de liaison sur lesquels les appels de procédure distante peuvent être reçus avec un appel à la fonction RpcServerInqBindings.

Pour plus d’informations, consultez Liaison côté serveur et Liaison de chaîne.

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

RpcBindingVectorFree

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingExport

RpcServerInqBindings

RpcServerListen

RpcServerRegisterIf

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqIf

Écriture d’un client ou d’un serveur RPC sécurisé