次の方法で共有


RpcServerInterfaceGroupDeactivate 関数 (rpcdce.h)

RpcServerInterfaceGroupDeactivate 関数は、指定されたインターフェイス グループを閉じるように RPC ランタイムに指示し、未処理のクライアント アクティビティがある場合は、必要に応じて操作を中止します。

構文

RPC_STATUS RpcServerInterfaceGroupDeactivate(
  [in] RPC_INTERFACE_GROUP IfGroup,
  [in] unsigned long       ForceDeactivation
);

パラメーター

[in] IfGroup

非アクティブ化するインターフェイス グループを定義する RpcServerInterfaceGroupCreate からのRPC_INTERFACE_GROUP

[in] ForceDeactivation

TRUE の場合、RPC ランタイムはクライアント アクティビティを無視し、インターフェイス グループを無条件に非アクティブ化する必要があります。 FALSE の場合、新しいアクティビティが発生した場合は、操作を中止する必要があります。

戻り値

意味
RPC_S_OK
呼び出しは成功しました。
RPC_S_SERVER_TOO_BUSY
ForceDeactivationFALSE で、未処理のクライアント アクティビティがあります。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

注釈

RpcServerInterfaceGroupDeactivate は、インターフェイス グループ内のインターフェイスとエンドポイントの登録を解除するために、サーバー アプリケーションによって使用されます。 RPC サーバー アプリケーションが実行する必要があるシャットダウン作業の大部分が実行されます。 次の操作を実行します。

  • RPC エンドポイント マッパーからエンドポイントとインターフェイスの登録を解除します。
  • サーバー ランタイムからエンドポイントの登録を解除します。
  • サーバー ランタイムからインターフェイスの登録を解除します。
  • 他のインターフェイスが存在しない場合は、呼び出しのリッスンを停止するようにランタイムに指示します。

ForceDeactivationFALSE の場合、RpcServerInterfaceGroupDeactivate は、未処理のクライアント アクティビティがない場合にのみインターフェイス グループを非アクティブ化します。 非アクティブ化プロセス中に新しいアクティビティが到着すると、 RPC_S_SERVER_TOO_BUSY が返されます。 この場合、操作はロールバックされ、インターフェイス グループは引き続き呼び出しの受信とディスパッチを行います。

ForceDeactivationTRUE の場合、RpcServerInterfaceGroupDeactivate は失敗しません。

サービス アプリケーションは、アイドル状態のコールバック関数 RpcServerInterfaceGroupCreate から 、ForceDeactivationFALSE に設定して RpcServerInterfaceGroupDeactivate を呼び出すことができます。 RPC サービス開始トリガーと組み合わせて使用すると、潜在的なクライアントからの呼び出しを見逃すことなく、安全にアイドル状態の停止が可能になります。

要件

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

こちらもご覧ください

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupCreate

RpcServerInterfaceGroupInqBindings