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.

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

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
RPC_S_OK
L’appel a réussi.
RPC_S_NO_MORE_BINDINGS
Plus de liaisons.
RPC_S_NAME_SERVICE_UNAVAILABLE
Nom de service indisponible.
 
Note Pour obtenir la liste des codes d’erreur valides, consultez Valeurs de retour RPC.
 

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.

Le handle de liaison compatible retourné contient toujours un UUID d’objet, dont la valeur dépend du paramètre ObjUuid dans la fonction RpcNsBindingImportBegin . Si un UUID d’objet non null a été spécifié, le handle de liaison retourné contient cet UUID d’objet. Toutefois, si un UUID d’objet null ou une valeur null a été spécifié, l’UUID de l’objet retourné est le résultat des possibilités suivantes :
  • 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.
La fonction RpcNsBindingImportNext sélectionne et retourne un handle de liaison de serveur à partir des handles de liaison compatibles trouvés. L’application cliente peut utiliser ce handle de liaison pour tenter un appel de procédure distante au serveur. Si le client ne parvient pas à établir une relation avec le serveur, il peut à nouveau appeler RpcNsBindingImportNext .

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

Voir aussi

RpcBindingFree

RpcNsBindingImportBegin

RpcNsBindingImportDone

RpcNsBindingInqEntryName

RpcNsBindingLookupBegin

RpcNsBindingLookupDone

RpcNsBindingLookupNext

RpcNsBindingSelect