DRT_BOOTSTRAP_PROVIDER 構造体 (drt.h)

DRT_BOOTSTRAP_PROVIDER構造体は、ブートストラップ プロバイダーによって実装される必要がある DRT インターフェイスを定義します。

メモ DRT インフラストラクチャは、ブートストラップ プロバイダーのメソッドを同時に呼び出しません。
 

構文

typedef struct drt_bootstrap_provider_tag {
  PVOID    pvContext;
  HRESULT( )(const PVOID pvContext) *Attach;
  VOID( )(const PVOID pvContext)    *Detach;
  HRESULT((const PVOID pvContext,BOOL fSplitDetect,ULONG timeout,ULONG cMaxResults,DRT_BOOTSTRAP_RESOLVE_CONTEXT *ResolveContext,BOOL *fFatalError) * )InitResolve;
  HRESULT()(const PVOID pvContext, const PVOID pvCallbackContext,DRT_BOOTSTRAP_RESOLVE_CALLBACK callback,DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext,BOOL *fFatalError) * IssueResolve;
  VOID( )(const PVOID pvContext,DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext)    *EndResolve;
  HRESULT()(const PVOID pvContext, const SOCKET_ADDRESS_LIST *pAddressList) * Register;
  VOID( )(const PVOID pvContext)    *Unregister;
} DRT_BOOTSTRAP_PROVIDER, *PDRT_BOOTSTRAP_PROVIDER;

メンバー

pvContext

ブートストラップ リゾルバーによって定義されたコンテキスト データへのポインター。 ブートストラップ リゾルバーを作成する場合、開発者はリゾルバーに必要な情報を設定する必要があります。多くの場合、これは "this" ポインターとして発生します。 このコンテキストは、 DRT_BOOTSTRAP_PROVIDERによって定義された関数内のすべてのコンテキスト パラメーターに渡されます。

Attach

一連の DRT を使用して、ブートストラップ プロバイダーの参照の数をインクリメントします。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

Detach

一連の DRT を使用して、ブートストラップ プロバイダーの参照の数をデクリメントします。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

InitResolve

今後の名前解決に関する構成情報を提供するために、DRT インフラストラクチャによって呼び出されます。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

fSplitDetect

ネットワーク分割の検出と回復に解決操作を使用するかどうかを指定します。

timeout

タイムアウトまでに解決が必要な最大時間を指定します。この値はミリ秒単位で表されます。

cMaxResults

解決操作中に返される結果の最大数を指定します。

ResolveContext

リゾルバー固有のデータへのポインター。

fFatalError

ブートストラップ プロバイダーで回復不可能なエラーが発生した場合、DRT がエラー状態に移行するには、関数の完了時にこのパラメーターを TRUE に設定する必要があります。 デバッグのために上位レイヤー アプリケーションで使用できる HRESULT は、障害状態への遷移を通知するイベントに関連付けられているDRT_EVENT_DATA構造体の hr メンバーに表示されます。 fFatalError フラグを TRUE に設定した場合、このブートストラップ プロバイダー関数はS_OKを返さないでください。

IssueResolve

DRT インフラストラクチャによって呼び出され、DRT クラウドで既にアクティブになっているノードのエンドポイントを決定するための解決策を発行します。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

pvCallbackContext

次のパラメーターで定義されたコールバックに返されるコンテキスト データへのポインター。

コールバック (callback)

結果とDRT_E_NO_MOREごとに呼び出されるBOOTSTRAP_RESOLVE_CALLBACK。

ResolveContext

リゾルバー固有のデータへのポインター。

fFatalError

ブートストラップ プロバイダーで回復不可能なエラーが発生した場合、DRT がエラー状態に移行するには、関数の完了時にこのパラメーターを TRUE に設定する必要があります。 デバッグのために上位レイヤー アプリケーションで使用できる HRESULT は、障害状態への遷移を通知するイベントに関連付けられているDRT_EVENT_DATA構造体の hr メンバーに表示されます。 fFatalError フラグを TRUE に設定した場合、このブートストラップ プロバイダー関数はS_OKを返さないでください。

EndResolve

エンドポイントの解決を終了します。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

ResolveContext

指定したブートストラップ プロバイダーの Resolve 関数から受け取った BOOTSTRAP_RESOLVE_CONTEXT

Register

ブートストラップ メカニズムを使用してエンドポイントを登録します。 このプロセスにより、ブートストラップ リゾルバーを介して他のノードがエンドポイントを検索できるようになります。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

pAddressList

ブートストラップ メカニズムに登録するアドレスの一覧へのポインター。

Unregister

この関数は、ブートストラップ メカニズムを使用してエンドポイントの登録を解除します。 その結果、他のノードはブートストラップ リゾルバーを介してローカル ノードを見つけることができません。

pvContext

DRT_BOOTSTRAP_PROVIDERからの pvContext 値を格納します。

要件

   
サポートされている最小のクライアント Windows 7 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header drt.h