Partager via


RpcNsBindingUnexportW, fonction (rpcnsi.h)

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

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

Syntaxe

RPC_STATUS RpcNsBindingUnexportW(
  unsigned long EntryNameSyntax,
  RPC_WSTR      EntryName,
  RPC_IF_HANDLE IfSpec,
  UUID_VECTOR   *ObjectUuidVec
);

Paramètres

EntryNameSyntax

Syntaxe de 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 une valeur de 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 de l’interface pour les handles de liaison à supprimer de la base de données du service de noms. Une valeur de paramètre Null indique de ne pas exporter de handles de liaison (seuls les UUID d’objet doivent être non exporté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’existe aucun UUID d’objet pour annuler l’exportation (seuls les handles de liaison doivent être non exportés).

Valeur de retour

Valeur Signification
RPC_S_OK
L’appel a réussi.
RPC_S_INVALID_VERS_OPTION
L’option de version n’est pas valide.
RPC_S_INVALID_NAME_SYNTAX
La syntaxe du nom n’est pas valide.
RPC_S_UNSUPPORTED_NAME_SYNTAX
La syntaxe du nom n’est pas prise en charge.
RPC_S_INCOMPLETE_NAME
Le nom est incomplet.
RPC_S_ENTRY_NOT_FOUND
L’entrée nom-service est introuvable.
RPC_S_NAME_SERVICE_UNAVAILABLE
Le service de noms n’est pas disponible.
RPC_S_INTERFACE_NOT_FOUND
L’interface est introuvable.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Tous les objets ne sont pas exportés.
 
Remarque 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’objets des ressources d’une entrée de base de données de service de nom. Une application serveur peut annuler l’exportation de l’interface et des objets spécifiés dans un seul appel à RpcNsBindingUnexport, ou les exporter 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 mineure 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 nom-service. Cela signifie qu’une entrée non exporté autorisée sera supprimée à la fois du cache local et de l’Annuaire Active Directory. Les exportations non autorisées ne seront supprimées que du cache local. Pour plus d’informations sur les listes d’autorisation et de contrôle d’accès, consultez dans la section Sécurité du Kit de développement logiciel (SDK) de plateforme.

Si RpcNsBindingUnexport ne trouve pas de handles de liaison pour l’interface spécifiée, la fonction retourne un code d’état RPC_S_INTERFACE_NOT_FOUND et ne désexporte pas les 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 désexporte les UUID d’objet spécifiés, le cas échéant.

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

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 point de terminaison locale.

Une fois créée, une entrée de serveur persiste, même lorsque tous les handles de liaison et les UUID sont supprimés. Une entrée de serveur doit avoir au moins un handle de liaison à exister. Par conséquent, l’exportation des UUID uniquement 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 conserver un serveur activé automatiquement, vous devez laisser ses handles de liaison dans la base de données du service de noms entre les moments où les processus serveur sont activés. Toutefois, avec des liaisons dynamiques, si vous n’annulez pas les handles de liaison, Active Directory peut devenir si volumineux que pour être inmanageable.

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

Remarque 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 et peut entraîner des problèmes de performances.
 

Note

L’en-tête rpcnsi.h définit RpcNsBindingUnexport comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête rpcnsi.h (inclure Rpc.h)
bibliothèque Rpcns4.lib
DLL Rpcns4.dll

Voir aussi

RpcEpUnregister

RpcNsBindingExport