ncacn_np属性
ncacn_np キーワード (keyword)は、名前付きパイプをエンドポイントのプロトコル ファミリとして識別します。
endpoint("ncacn_np:server-name[\\pipe\\pipe-name]")
-
server-name
-
省略可能。 サーバーの名前を指定します。 円記号は省略可能です。
-
pipe-name
-
有効なパイプ名を指定します。 有効なパイプ名は、円記号で区切られた識別子を含む文字列です。 最初の識別子は パイプである必要があります。 各識別子は、2 つの円記号で区切る必要があります。
サーバーは名前付きパイプのインスタンスを作成し、そのインスタンスを任意のクライアントで使用できます。 クライアントが接続しようとすると、既存のインスタンスがそのクライアントに関連付けられます。 別のクライアントが接続する前に、サーバーは名前付きパイプの別のインスタンスを作成する必要があります。 新しいインスタンスが作成される前にクライアントがサーバーにバインドしようとすると、バインド呼び出し RpcBindingFromStringBinding がエラー メッセージ RPC_S_SERVER_TOO_BUSYで失敗する可能性があります。 そのため、サーバーがビジー状態で接続を受け入れられない場合は、クライアント アプリケーションが処理するようにする必要があります。 クライアントは自動的に再試行するか、ユーザーに一貫したアクションを求めるか、正常に失敗します。
名前付きパイプ ポート文字列の構文は、すべてのポート文字列と同様に、トランスポート実装によって定義され、IDL 仕様とは無関係です。 MIDL コンパイラは、制限付き構文チェックを実行しますが、エンドポイントの指定が正しいことを保証しません。 エラーの一部のクラスは、コンパイル時ではなく実行時に報告される場合があります。
[
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.
}