Constantes d’option de liaison

Les applications définissent les constantes d’option de liaison pour contrôler la façon dont la bibliothèque d’exécution RPC traite les appels de procédure distante. Le tableau suivant répertorie chaque propriété de liaison et les valeurs constantes pertinentes pour les propriétés de liaison.

Notes

Toutes les options de file d’attente de messages (MQ) du tableau suivant sont valides pour Windows 2000 uniquement. Windows XP et versions ultérieures ne prennent pas en charge la mise en file d’attente de message. Les développeurs sont déconseillés d’utiliser la mise en file d’attente des messages.

Constante/valeur Description
RPC_C_OPT_BINDING_NONCAUSAL
9
Par défaut. Si la valeur EST FALSE, l’ordre d’appel causal. Les appels RPC sont exécutés dans un ordre strict de soumission. Consultez la section Notes.
Si TRUE, l’ordre d’appel non-causal. Les appels RPC sont exécutés indépendamment. Consultez la section Notes.
RPC_C_OPT_MAX_OPTIONS
17
Non nécessaire pour les programmes d’application. Utilisé en interne par Microsoft.
RPC_C_DONT_FAIL
4
Non nécessaire pour les programmes d’application. Utilisé en interne par Microsoft.
RPC_C_OPT_SESSION_ID
6
Si true, un ID de session est généré pour chaque connexion.
RPC_C_OPT_COOKIE_AUTH
7
Si TRUE, l’authentification basée sur les cookies côté client est utilisée pour les connexions. Un pointeur vers la structure RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR est passé en tant que paramètre OptionValue dans RpcBindingSetOption.
RPC_C_OPT_RESOURCE_TYPE_UUID
8
Non nécessaire pour les programmes d’application. Utilisé en interne par Microsoft.
RPC_C_OPT_DONT_LINGER
13
Si true, forcez l’arrêt de l’association après le dernier handle de liaison/handle de contexte sur celui-ci est libéré.
RPC_C_OPT_UNIQUE_BINDING
11
Lorsqu’il est défini sur true, RPC ne réutilise pas les connexions existantes. Un handle de liaison unique est ouvert pour chaque connexion et état est conservé pour chaque handle de liaison unique.

Remarques

Par défaut, la bibliothèque d’exécution RPC exécute les appels sur un handle de liaison donné à partir de chaque thread d’une application dans un ordre strict de soumission. Cela ne garantit pas que les appels provenant de différents threads sur le même handle de liaison sont sérialisés. Les applications multithread doivent sérialiser leurs appels RPC. Si ce comportement est trop restrictif, vous pouvez activer l’ordre non-causal. Lorsque vous le faites, la bibliothèque d’exécution RPC exécute des appels indépendamment. Elle n’impose aucune commande à leur soumission.

Un exemple d’application qui peut trouver un ordre noncausal utile est un programme multithread dont les threads effectuent des appels sur le même handle de liaison. De même, un programme qui utilise plusieurs appels asynchrones sur un handle de liaison recherche une option pratique. Un autre exemple peut être un programme proxy Internet qui utilise un thread unique pour gérer les demandes de plusieurs clients. Dans chacun de ces cas, il serait extrêmement restrictif de tenter de sérialiser les appels de procédure distante.

L’option RPC_C_OPT_DONT_LINGER peut être définie uniquement sur les handles de liaison qui utilisent les séquences de protocole ncalrpc ou ncacn_* . Il ne peut pas être utilisé sur les séquences de protocole ncadg_* . La fonction RpcBindingSetOption avec cette option doit être appelée sur un handle de liaison sur lequel au moins un appel RPC a été effectué. Si aucun appel RPC n’a été effectué sur le handle de liaison, RPC_S_WRONG_KIND_OF_BINDING est retourné à partir de l’appel de fonction RpcBindingSetOption . L’option prend effet pour l’ensemble de l’association, quel que soit le nombre de handles de liaison attachés à l’association. Étant donné qu’elle est vérifiée avant la destruction de l’association, elle peut être définie à tout moment avant la fermeture du handle de liaison.

Spécifications

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]
En-tête
Rpcdce.h;
Rpcdcep.h

Voir aussi

RpcBindingSetOption

RpcBindingInqOption

Gestion des ensembles de connexions réseau (associations)