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 |
---|---|
|
L’appel a réussi. |
|
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. |
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 |