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.
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 |
---|---|
|
L’appel a réussi. |
|
L’option de version n’est pas valide. |
|
La syntaxe du nom n’est pas valide. |
|
La syntaxe du nom n’est pas prise en charge. |
|
Le nom est incomplet. |
|
L’entrée nom-service est introuvable. |
|
Le service de noms n’est pas disponible. |
|
L’interface est introuvable. |
|
Tous les objets ne sont pas exportés. |
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.
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 |