Fonction RpcServerInqCallAttributesA (rpcasync.h)
La fonction RpcServerInqCallAttributes est un appel de serveur RPC qui obtient des attributs de contexte de sécurité client.
Syntaxe
RPC_STATUS RpcServerInqCallAttributesA(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
Paramètres
[in] ClientBinding
Facultatif. Pour la liaison explicite au sein d’une routine de serveur, ClientBinding est le handle de liaison avec lequel la routine du gestionnaire a été appelée. Consultez la section Notes.
[in, out] RpcCallAttributes
RPC_CALL_ATTRIBUTES_V2 structure qui reçoit des attributs d’appel.
Valeur retournée
Retourne RPC_S_OK en cas de réussite, et RpcCallAttributes est rempli. Si ERROR_MORE_DATA est retourné, un ou plusieurs champs de RpcCallAttributes étaient d’une longueur insuffisante et n’ont pas pu être remplis. Pour plus d’informations sur la gestion des ERROR_MORE_DATA, consultez Remarques dans RPC_CALL_ATTRIBUTES_V2 .
En cas d’échec, le contenu de RpcCallAttributes n’est pas défini et peut être partiellement modifié par RPC.
Remarques
La fonction RpcServerInqCallAttributes utilise un schéma de contrôle de version pour incorporer de nouvelles fonctionnalités sans avoir à introduire de nouvelles fonctions avec des identificateurs de suffixe. Par exemple, une deuxième version du RPC_CALL_ATTRIBUTES_V2, identifiée par un simple #define dans l’en-tête, peut ajouter de nouveaux membres pour faciliter les nouvelles fonctionnalités intégrées dans les versions futures de la fonction RpcServerInqCallAttributes , sans avoir à libérer une fonction appelée RpcServerInqCallAttributesEx.
Si la fonction RpcServerInqCallAttributes est appelée en dehors d’une routine de serveur et si l’appel de fonction interroge les attributs de contexte de sécurité pour un appel RPC asynchrone, ClientBinding peut être récupéré en appelant la fonction RpcAsyncGetCallHandle à partir du handle asynchrone.
La fonction RpcServerInqCallAttributes n’est pas prise en charge pour les séquences de protocole de datagramme, telles que ncadg_*. S’il est appelé sur un appel qui s’exécute sur une séquence de protocole de datagramme, RPC_S_CANNOT_SUPPORT est retourné.
La fonction RpcServerInqCallAttributes est thread-safe.
Exemples
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
Notes
L’en-tête rpcasync.h définit RpcServerInqCallAttributes comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | rpcasync.h (inclure Rpc.h) |
Bibliothèque | Rpcrt4.lib |
DLL | Rpcrt4.dll |