attribut ncacn_np
Die ncacn_np Schlüsselwort (keyword) identifiziert Named Pipes als Protokollfamilie für den Endpunkt.
endpoint("ncacn_np:server-name[\\pipe\\pipe-name]")
-
Servername
-
Optional. Gibt den Namen des Servers an. Umgekehrte Schrägstriche sind optional.
-
Pipename
-
Gibt einen gültigen Pipenamen an. Ein gültiger Pipename ist eine Zeichenfolge, die Bezeichner enthält, die durch umgekehrte Schrägstriche getrennt sind. Der erste Bezeichner muss pipe sein. Jeder Bezeichner muss durch zwei umgekehrte Schrägstriche getrennt werden.
Ein Server erstellt eine instance einer Named Pipe, die dann für jeden Client verfügbar ist. Wenn ein Client versucht, eine Verbindung herzustellen, wird der vorhandene instance diesem Client zugeordnet. Bevor ein anderer Client eine Verbindung herstellen kann, muss der Server eine weitere instance der benannten Pipe erstellen. Wenn ein Client versucht, eine Bindung an den Server zu binden, bevor der neue instance erstellt wird, schlägt der Bindungsaufruf RpcBindingFromStringBinding möglicherweise mit der Fehlermeldung fehl, die RPC_S_SERVER_TOO_BUSY. Daher müssen Sie sicherstellen, dass Ihre Clientanwendung den Fall verarbeitet, in dem der Server zu ausgelastet ist, um eine Verbindung zu akzeptieren. Der Client sollte es automatisch wiederholen, den Benutzer zu einer Aktion auffordern oder ordnungsgemäß fehlschlagen.
Die Syntax der Named-Pipe-Portzeichenfolge wird wie alle Portzeichenfolgen von der Transportimplementierung definiert und ist unabhängig von der IDL-Spezifikation. Der MIDL-Compiler führt eine eingeschränkte Syntaxüberprüfung durch, garantiert aber nicht, dass die Endpunktspezifikation richtig ist. Einige Klassen von Fehlern werden möglicherweise zur Laufzeit und nicht zur Kompilierzeit gemeldet.
[
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.
}