Fonction RpcServerUseAllProtseqsIf (rpcdce.h)
La fonction RpcServerUseAllProtseqsIf indique à la bibliothèque d’exécution RPC d’utiliser toutes les séquences de protocole et points de terminaison spécifiés dans la spécification d’interface pour recevoir des appels de procédure distante.
Syntaxe
RPC_STATUS RpcServerUseAllProtseqsIf(
unsigned int MaxCalls,
RPC_IF_HANDLE IfSpec,
void *SecurityDescriptor
);
Paramètres
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.
IfSpec
Interface contenant les séquences de protocole et les informations de point de terminaison correspondantes à utiliser pour créer des handles de liaison.
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 |
---|---|
|
L’appel a réussi. |
|
Il n’existe aucune séquence de protocole prise en charge. |
|
Format du point de terminaison. |
|
La mémoire du système est insuffisante. |
|
Le point de terminaison est un doublon. |
|
Le descripteur de sécurité n'est pas valide. |
|
Séquence de protocole RPC non valide. |
Remarques
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. 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.
Les applications doivent veiller à passer des valeurs raisonnables dans MaxCalls. Des valeurs volumineuses sur le serveur, le serveur avancé ou le 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 cela 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, un 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 de 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 au moins une interface réseau ; la liste complète des handles de liaison sur lesquels les appels de procédure distante peuvent être reçus peut être obtenue avec un appel à la fonction RpcServerInqBindings .
Pour plus d’informations, consultez Liaison côté serveur. Pour inscrire les séquences de protocole sélectionnées spécifiées dans le fichier IDL, un serveur appelle RpcServerUseProtseqIf.
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 |