RpcServerInterfaceGroupCreate 関数 (rpcdce.h)

RpcServerInterfaceGroupCreate 関数は、サーバー アプリケーションの RPC サーバー インターフェイス グループを作成します。 このインターフェイス グループは、RPC サーバー アプリケーションのインターフェイス、エンドポイント、アイドル状態のプロパティを完全に指定します。 作成したインターフェイス グループは、アプリケーションで必要に応じてアクティブ化および非アクティブ化できます。

構文

RPC_STATUS RpcServerInterfaceGroupCreate(
  [in]  RPC_INTERFACE_TEMPLATE               *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATE                *Endpoints,
  [in]  unsigned long                        NumEndpoints,
  [in]  unsigned long                        IdlePeriod,
  [in]  RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
  [in]  void                                 *IdleCallbackContext,
  [out] PRPC_INTERFACE_GROUP                 IfGroup
);

パラメーター

[in] Interfaces

インターフェイス グループによって公開されるインターフェイス 定義するRPC_INTERFACE_TEMPLATE構造体の配列へのポインター。

[in] NumIfs

インターフェイス内の要素の数。

[in] Endpoints

インターフェイス グループによって使用されるエンドポイント 定義するRPC_ENDPOINT_TEMPLATE構造体の配列へのポインター。

[in] NumEndpoints

エンドポイント内の要素の数。

[in] IdlePeriod

インターフェイス グループがアイドル状態になってから、RPC ランタイムがアイドル 状態のコールバックを呼び出す前に待機する時間 (秒単位)。 0 は、コールバックが直ちに呼び出されていることを意味します。 INFINITE は、サーバー アプリケーションがインターフェイス グループのアイドル状態を気にしないことを意味します。

[in] IdleCallbackFn

IdlePeriod で指定された時間、インターフェイス グループがアイドル状態になると RPC ランタイムが呼び出すRPC_INTERFACE_GROUP_IDLE_CALLBACK_FNコールバック。 IdlePeriodINFINITE の場合にのみ NULL を指定できます。

[in] IdleCallbackContext

IdleCallbackFn のアイドル コールバックに渡されるユーザー定義ポインター。

[out] IfGroup

成功した場合は、新しく作成されたインターフェイス グループへの ハンドルを受 け取るRPC_INTERFACE_GROUP バッファーへのポインター。 この関数が失敗した場合、 IfGroup は未定義です。

戻り値

意味
RPC_S_OK
呼び出しは成功しました。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

注釈

必要に応じて、インターフェイス グループがアイドル状態になったときに、サーバー アプリケーションに通知を受け取ることができます。 どのアプリケーションでもこの機能を利用できますが、サービスをアイドル停止にしたいサービス開発者を対象としています。

IdlePeriod は、アイドル状態が急速に変化した場合に RPC ランタイムが多数の通知を生成するのを防ぎ、トリガーされたサービスの場合は、サービスが不必要に開始および停止するのを回避するのに役立ちます。 開発者は、サービスの初期化とシャットダウンのコスト、新しいアクティビティが発生する予想される頻度、およびこの値を選択するときにサービスをアイドル状態に維持するコストを考慮する必要があります。 アイドル期間が少ない場合、新しいクライアント アクティビティが発生するとサービスが頻繁に開始および停止しますが、アイドル期間が長い場合、サービスは意味のある作業を実行せずにリソースを消費します。

インターフェイス グループ内のインターフェイスは、同じグループのエンドポイント経由でのみ呼び出すことができます。 インターフェイス グループに含まれていないインターフェイスは、グループの一部であるエンドポイントを介して呼び出すことはできません。

RPC サーバー アクティビティがサーバー アプリケーションに常に表示されるとは限りません。 場合によっては、サーバーへの接続を開いているクライアントを使用するだけで、長時間呼び出しがディスパッチされていなくてもアクティブな状態が維持される場合があります。 サーバー アプリケーションは、グループがアイドル状態であることを宣言する RPC ランタイムと、最後の呼び出しがディスパッチされてからの時間との間の相関関係に依存してはなりません。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rpcdce.h (Rpc.h を含む)
Library Rpcrt4.lib
[DLL] Rpcrt4.dll

こちらもご覧ください

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings