Fonction RpcNsBindingImportNext (rpcnsi.h)
La fonction RpcNsBindingImportNext recherche une interface (et éventuellement un objet à partir d’une base de données name-service) et retourne un handle de liaison d’un serveur compatible, le cas échéant.
Syntaxe
RPC_STATUS RpcNsBindingImportNext(
RPC_NS_HANDLE ImportContext,
RPC_BINDING_HANDLE *Binding
);
Paramètres
ImportContext
Handle de service de nom retourné par la fonction RpcNsBindingImportBegin .
Binding
Retourne un pointeur vers un handle de liaison de serveur compatible avec le client pour un serveur.
Valeur retournée
Valeur | Signification |
---|---|
|
L’appel a réussi. |
|
Plus de liaisons. |
|
Nom de service indisponible. |
Notes
La fonction RpcNsBindingImportNext retourne un handle de liaison de serveur compatible avec le client pour un serveur qui offre l’UUID d’interface et d’objet spécifié par les paramètres IfSpec et ObjUuid dans la fonction RpcNsBindingImportBegin . La fonction communique uniquement avec la base de données name-service, pas directement avec les serveurs.
Avec Windows 2000, l’environnement RPC utilise Active Directory comme base de données de nom-service et l’ordre dans lequel l’environnement d’exécution effectue la recherche est le suivant :
- Recherchez dans le cache local. S’il n’y a pas d’entrée,
- Recherchez dans Active Directory. S’il n’y a pas d’entrée,
- Envoyez des demandes de diffusion à tous les autres services d’annuaire dans le domaine.
Notez que si l’entrée existe dans Active Directory, mais qu’aucune information n’est associée à l’entrée, l’environnement d’exécution n’émet pas cette demande de diffusion.
- Si le serveur n’a pas exporté d’UUID d’objet, le handle de liaison retourné contient un UUID d’objet nul.
- Si le serveur a exporté un UUID d’objet, le handle de liaison retourné contient cet UUID d’objet.
- Si le serveur a exporté plusieurs UUID d’objets, le handle de liaison retourné contient l’un des UUID d’objet. L’opération import-next sélectionne l’UUID de l’objet retourné de manière non déterministe. Par conséquent, un UUID d’objet différent peut être retourné pour chaque handle de liaison compatible à partir d’une seule entrée de serveur.
Chaque fois que le client appelle RpcNsBindingImportNext, la fonction retourne un autre handle de liaison de serveur. Les handles de liaison retournés ne sont pas triés. Une application cliente appelle la fonction RpcNsBindingInqEntryName pour obtenir la base de données name-service dans le nom d’entrée d’où provient le handle de liaison. Lorsque la recherche atteint la fin de la base de données name-service, RpcNsBindingInqEntryName retourne une status de RPC_S_NO_MORE_BINDINGS et retourne une valeur de paramètre de liaison null.
La fonction RpcNsBindingImportNext alloue le stockage pour les données référencées par le paramètre Binding retourné. Lorsqu’une application cliente se termine avec le handle de liaison, elle doit appeler RpcBindingFree pour libérer le stockage. Chaque appel à RpcNsBindingImportNext nécessite un appel correspondant à RpcBindingFree.
Le client est responsable de l’appel de la fonction RpcNsBindingImportDone , qui supprime le contexte d’importation. Le client appelle également RpcNsBindingImportDone avant d’appelerRpcNsBindingImportBegin pour lancer une nouvelle recherche de serveurs compatibles. Étant donné que l’ordre des handles de liaison retournés est différent pour chaque nouvelle recherche, l’ordre dans lequel les handles de liaison sont retournés à une application peut être différent chaque fois que l’application est exécutée.
Spécifications
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 |