次の方法で共有


RpcServerInterfaceGroupCreateA 関数 (rpcdce.h)

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

構文

RPC_STATUS RpcServerInterfaceGroupCreateA(
  [in]  RPC_INTERFACE_TEMPLATEA              *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATEA               *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 コールバック 。 IdlePeriod が INFINITE場合にのみ、NULL できます。

[in] IdleCallbackContext

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

[out] IfGroup

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

戻り値

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

備考

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

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

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

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

手記

rpcdce.h ヘッダーは、RPCServerInterfaceGroupCreate を、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 8 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2012 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー rpcdce.h (Rpc.h を含む)
ライブラリ Rpcrt4.lib
DLL Rpcrt4.dll

関連項目

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose の

RpcServerInterfaceGroupDeactivate の

RpcServerInterfaceGroupInqBindings の