Partager via


RpcNsBindingUnexportA, fonction (rpcnsi.h)

La fonction RpcNsBindingUnexport supprime les descripteurs de liaison pour une interface et des objets d’une entrée dans la base de données name-service.

Note Cette fonction n’est pas prise en charge sur Windows Vista et les systèmes d’exploitation ultérieurs.
 

Syntaxe

RPC_STATUS RpcNsBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  UUID_VECTOR   *ObjectUuidVec
);

Paramètres

EntryNameSyntax

Syntaxe d’EntryName.

Pour utiliser la syntaxe spécifiée dans l’entrée de valeur de Registre HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, fournissez la valeur RPC_C_NS_SYNTAX_DEFAULT.

EntryName

Pointeur vers le nom d’entrée à partir duquel supprimer les handles de liaison et les UUID d’objet.

IfSpec

Spécification d’interface pour les handles de liaison à supprimer de la base de données du service de noms. Une valeur de paramètre Null indique qu’il n’est pas nécessaire d’annuler l’exportation de handles de liaison (seuls les UUID d’objet doivent être désexportés).

ObjectUuidVec

Pointeur vers un vecteur d’UUID d’objet que le serveur ne souhaite plus offrir. L’application construit ce vecteur. Une valeur Null indique qu’il n’y a pas d’UUID d’objet à désexporter (seuls les handles de liaison doivent être désexportés).

Valeur retournée

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_INVALID_VERS_OPTION
Option de version non valide.
RPC_S_INVALID_NAME_SYNTAX
La syntaxe de nom n’est pas valide.
RPC_S_UNSUPPORTED_NAME_SYNTAX
La syntaxe de nom n’est pas prise en charge.
RPC_S_INCOMPLETE_NAME
Le nom est incomplet.
RPC_S_ENTRY_NOT_FOUND
L’entrée name-service est introuvable.
RPC_S_NAME_SERVICE_UNAVAILABLE
Nom de service indisponible.
RPC_S_INTERFACE_NOT_FOUND
L’interface est introuvable.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Tous les objets non exportés.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

Remarques

La fonction RpcNsBindingUnexport permet à une application serveur de supprimer les handles de liaison et les UUID d’objet des ressources d’une entrée de base de données de service de noms. Une application serveur peut annuler l’exportation de l’interface et des objets spécifiés en un seul appel à RpcNsBindingUnexport, ou les annuler séparément. Seuls les handles de liaison qui correspondent à l’UUID de l’interface et aux numéros de version d’interface principale et secondaire trouvés dans le paramètre IfSpec ne sont pas exportés. Utilisez la fonction RpcNsMgmtBindingUnexport pour supprimer plusieurs versions d’une interface.

À compter de Windows 2000, l’environnement d’exécution RPC utilise Active Directory comme base de données name-service. Cela signifie qu’une entrée non exportée autorisée sera supprimée à la fois du cache local et de l’annuaire Active Directory. Les désexportations non autorisées seront uniquement supprimées du cache local. Pour plus d’informations sur l’autorisation et la Access Control Listes, consultez Access Control dans la section Sécurité du Kit de développement logiciel (SDK) de plateforme.

Si RpcNsBindingUnexport ne trouve aucun handle de liaison pour l’interface spécifiée, la fonction retourne un code RPC_S_INTERFACE_NOT_FOUND status et n’annule pas l’exportation des UUID d’objet, le cas échéant.

Si un ou plusieurs handles de liaison pour l’interface spécifiée sont trouvés et non exportés sans erreur, RpcNsBindingUnexport annule l’exportation des UUID d’objet spécifiés, le cas échéant.

Si l’un des UUID d’objet spécifié n’a pas été trouvé, RpcNsBindingUnexport retourne le code RPC_S_NOT_ALL_OBJS_UNEXPORTED status.

En plus d’appeler RpcNsBindingUnexport, un serveur doit également appeler la fonction RpcEpUnregister pour annuler l’inscription des points de terminaison précédemment inscrits auprès de la base de données de mappage de points de terminaison locale.

Une fois créée, une entrée de serveur persiste, même lorsque tous les handles de liaison et tous les UUID sont supprimés. Une entrée de serveur doit avoir au moins un handle de liaison pour exister. Par conséquent, l’exportation de uniquement des UUID vers une entrée inexistante n’a aucun effet, et l’annulation de l’exportation de tous les handles de liaison supprime l’entrée.

Utilisez RpcNsBindingUnexport judicieusement. Pour qu’un serveur activé automatiquement reste disponible, vous devez laisser ses descripteurs de liaison dans la base de données name-service entre les heures d’activation des processus serveur. Toutefois, avec les liaisons dynamiques, si vous ne désexportez pas les handles de liaison, Active Directory peut devenir si volumineux qu’il n’est pas ingérable.

Par conséquent, avant d’appeler cette fonction, gardez à l’esprit la durée pendant laquelle vous prévoyez que le serveur sera indisponible et le type de liaison en cours d’utilisation. Si vous utilisez des liaisons statiques, réservez cette fonction quand vous vous attendez à ce qu’un serveur soit indisponible pendant une période prolongée, par exemple lorsqu’il est supprimé définitivement du service.

Note Les bases de données name-service sont conçues pour être relativement stables. Dans les bases de données de service de noms répliquées, l’utilisation fréquente des fonctions RpcNsBindingExport et RpcNsBindingUnexport entraîne la suppression et le remplacement répétés de la même entrée par la base de données name-service, ce qui peut entraîner des problèmes de performances.
 

Notes

L’en-tête rpcnsi.h définit RpcNsBindingUnexport en tant qu’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. La combinaison 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 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête rpcnsi.h (inclure Rpc.h)
Bibliothèque Rpcns4.lib
DLL Rpcns4.dll

Voir aussi

RpcEpUnregister

RpcNsBindingExport