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 の場合、新しいアクティビティが発生した場合は、操作を中止する必要があります。
戻り値
値 | 意味 |
---|---|
|
呼び出しは成功しました。 |
|
ForceDeactivation は FALSE で、未処理のクライアント アクティビティがあります。 |
注釈
RpcServerInterfaceGroupDeactivate は、インターフェイス グループ内のインターフェイスとエンドポイントの登録を解除するために、サーバー アプリケーションによって使用されます。 RPC サーバー アプリケーションが実行する必要があるシャットダウン作業の大部分が実行されます。 次の操作を実行します。
- RPC エンドポイント マッパーからエンドポイントとインターフェイスの登録を解除します。
- サーバー ランタイムからエンドポイントの登録を解除します。
- サーバー ランタイムからインターフェイスの登録を解除します。
- 他のインターフェイスが存在しない場合は、呼び出しのリッスンを停止するようにランタイムに指示します。
ForceDeactivation が FALSE の場合、RpcServerInterfaceGroupDeactivate は、未処理のクライアント アクティビティがない場合にのみインターフェイス グループを非アクティブ化します。 非アクティブ化プロセス中に新しいアクティビティが到着すると、 RPC_S_SERVER_TOO_BUSY が返されます。 この場合、操作はロールバックされ、インターフェイス グループは引き続き呼び出しの受信とディスパッチを行います。
ForceDeactivation が TRUE の場合、RpcServerInterfaceGroupDeactivate は失敗しません。
サービス アプリケーションは、アイドル状態のコールバック関数 RpcServerInterfaceGroupCreate から 、ForceDeactivation を FALSE に設定して RpcServerInterfaceGroupDeactivate を呼び出すことができます。 RPC サービス開始トリガーと組み合わせて使用すると、潜在的なクライアントからの呼び出しを見逃すことなく、安全にアイドル状態の停止が可能になります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcdce.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |