attribut ncacn_np
Le ncacn_np mot clé identifie les canaux nommés en tant que famille de protocoles pour le point de terminaison.
endpoint("ncacn_np:server-name[\\pipe\\pipe-name]")
-
nom_serveur
-
Optionnel. Spécifie le nom du serveur. Les caractères de barre oblique inverse sont facultatifs.
-
pipe-name
-
Spécifie un nom de canal valide. Un nom de canal valide est une chaîne contenant des identificateurs séparés par des caractères de barre oblique inverse. Le premier identificateur doit être canal. Chaque identificateur doit être séparé par deux caractères de barre oblique inverse.
Un serveur crée une instance d’un canal nommé qui est ensuite disponible pour n’importe quel client. Lorsqu’un client tente de se connecter, le instance existant est associé à ce client. Avant qu’un autre client ne puisse se connecter, le serveur doit créer une autre instance du canal nommé. Si un client tente de se lier au serveur avant la création du nouveau instance, l’appel de liaison RpcBindingFromStringBinding peut échouer avec le message d’erreur RPC_S_SERVER_TOO_BUSY. Par conséquent, vous devez vous assurer que votre application cliente gère le cas où le serveur est trop occupé pour accepter une connexion. Le client doit réessayer automatiquement, inviter l’utilisateur à effectuer une action ou échouer correctement.
La syntaxe de la chaîne de port de canal nommé, comme toutes les chaînes de port, est définie par l’implémentation de transport et est indépendante de la spécification IDL. Le compilateur MIDL effectue une vérification de syntaxe limitée, mais ne garantit pas que la spécification du point de terminaison est correcte. Certaines classes d’erreurs peuvent être signalées au moment de l’exécution plutôt qu’au moment de la compilation.
[
uuid(12345678-4000-2006-0000-20000000001a),
version(1.1),
endpoint("ncacn_np:[\\pipe\\stove\\hat]")
]
interface iface1
{
// Interface definition statements.
}
[
uuid(87654321-4000-2006-0000-20000000001b),
version(1.1),
endpoint("ncacn_np:\\\\myotherserver[\\pipe\\corncob]")
]
interface iface2
{
// Interface definition statements.
}