次の方法で共有


PeerPnrpResolve 関数 (p2p.h)

PeerPnrpResolve 関数は、特定のピア名に登録されているエンドポイント アドレスを取得します。

構文

NOT_BUILD_WINDOWS_DEPRECATE HRESULT PeerPnrpResolve(
  [in]           PCWSTR                   pcwzPeerName,
  [in, optional] PCWSTR                   pcwzCloudName,
  [in, out]      ULONG                    *pcEndpoints,
  [out]          PPEER_PNRP_ENDPOINT_INFO *ppEndpoints
);

パラメーター

[in] pcwzPeerName

エンドポイント アドレスが取得されるピア名を含む、0 で終わる文字列へのポインター。

[in, optional] pcwzCloudName

ピア名を解決する PNRP クラウドの名前を含む、0 で終わる文字列へのポインター。 NULL の場合、解決はすべてのクラウドで実行されます。 PEER_PNRP_ALL_LINK_CLOUDS場合、すべてのリンク ローカル クラウドで解決が実行されます。 "GLOBAL_" の場合、解決はグローバル クラウドでのみ行われます。

[in, out] pcEndpoints

ppEndpoints で返されるエンドポイントの最大数。 戻り時に、このパラメーターには ppEndpoints 内のエンドポイントの実際の数が含まれます。

[out] ppEndpoints

ピア名が正常に解決されたエンドポイントを含む PEER_PNRP_ENDPOINT_INFO 構造体のリストへのポインター。 各エンドポイントには、ピア ノードに到達できる 1 つ以上の IP アドレスが含まれています。

戻り値

関数呼び出しが成功した場合、戻り値は S_OK。 それ以外の場合は、次のいずれかの値が返されます。

リターン コード 説明
E_INVALIDARG
パラメーターの 1 つが無効です。
E_OUTOFMEMORY
指定した操作を実行するのに十分なメモリがありません。

注釈

この呼び出しは同期的であり、完了するまでブロックされます。 非同期ピア名解決の場合は、 PeerPnrpStartResolve を呼び出し、指定されたイベントが発生したときに解決されたエンドポイント アドレスを取得します。

ハンドルは、登録されたプロセスとは別のプロセスで解決する必要があります。 同じプロセス内でハンドルが登録されて解決された場合、ハンドルは認識されません。

すべてのクラウドに対して解決が実行されると、各クラウドに同時に発行されます。 このメソッドは、クラウドの任意の組み合わせから十分な結果を受け取るとすぐに返されます。

このメソッドで内部的に使用される既定の解決タイムアウトは 30 秒です。 特定のタイムアウトが必要な場合は、非同期 PeerPnrpStartResolve 関数を使用する必要があります。

要件

要件
サポートされている最小のクライアント Windows XP と SP2 [デスクトップ アプリのみ]、Windows XP 用 Advanced Networking Pack を使用した SP1 の Windows XP
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー p2p.h
Library P2P.lib
[DLL] P2P.dll

こちらもご覧ください

PeerPnrpStartResolve