RpcBindingSetOption, fonction (rpcdce.h)

La fonction RpcBindingSetOption permet aux applications clientes de spécifier des options de mise en file d’attente de message sur un handle de liaison.

Syntaxe

RPC_STATUS RpcBindingSetOption(
  RPC_BINDING_HANDLE hBinding,
  unsigned long      option,
  ULONG_PTR          optionValue
);

Paramètres

hBinding

Liaison de serveur à modifier.

option

Propriété de liaison à modifier. Pour obtenir la liste des options de liaison et leurs valeurs possibles, consultez Constantes d’option de liaison. Pour plus d’informations sur la fonctionnalité de délai d’attente d’appel RPC, consultez Remarques.

optionValue

Nouvelle valeur pour la propriété de liaison. Consultez la section Notes.

Valeur retournée

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_CANNOT_SUPPORT
La fonction n’est pas prise en charge pour le système d’exploitation ou le transport. Notez que l’appel de RpcBindingSetOption sur les handles de liaison qui utilisent une séquence de protocole autre que ncacn_* échoue et retourne cette valeur.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Remarques

Les processus clients RPC utilisent RpcBindingSetOption pour contrôler la qualité de service de livraison, la journalisation des appels et la durée de vie des appels. La modification des propriétés binding-handle affecte tous les appels distants jusqu’à ce que les propriétés soient modifiées par un autre appel à RpcBindingSetOption. Vous pouvez également appeler RpcBindingSetAuthInfo pour définir les options de sécurité du handle de liaison.

Windows XP : Fonctionnalité de délai d’expiration de l’appel RPC :

L’appel de la fonction RpcBindingSetOption avec Option définie sur RPC_C_OPT_CALL_TIMEOUT et OptionValue définie sur la valeur de délai d’attente (en millisecondes) permet aux développeurs de définir un délai d’attente rpc-server qui empêche un thread de devenir captif sur un serveur RPC qui ne répond pas. Cette fonctionnalité évite aux développeurs d’annuler explicitement un appel à un serveur RPC qui ne répond pas. La surveillance du minuteur pour le délai d’attente est réinitialisée par le client RPC à la réception de chaque paquet. Si le délai d’expiration expire sans recevoir de paquet du serveur, le client RPC retourne RPC_S_CALL_CANCELLED. Notez que le serveur RPC peut toujours exécuter un appel, même si le client ignore la réponse.

Définissez OptionValue sur INFINITE ou zéro pour un délai d’attente infini. Ne modifiez pas cette option à partir d’un autre thread pendant qu’un appel est en cours. N’essayez pas de réessayer un appel annulé ; Cela augmente la charge sur le serveur qui ne répond pas déjà. La fonctionnalité de délai d’expiration des appels RPC est uniquement utile pour les appels RPC synchrones orientés connexion, tels que ceux effectués sur des séquences de protocole ncacn_* . Pour les appels RPC de datagramme, asynchrones ou locaux, cette option est ignorée par l’exécution RPC.

La fonctionnalité de délai d’expiration des appels RPC est utile dans de nombreuses situations, telles que les mises à jour de l’interface utilisateur qui, autrement, attendraient que le serveur RPC occupé réponde (laissant l’utilisateur regarder un sablier) ou lorsque de nombreux serveurs RPC peuvent traiter une demande, ce qui permet aux clients d’identifier et de contourner plus rapidement les serveurs qui ne répondent pas.

Configuration requise

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

Voir aussi

RPC Message Queuing

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message