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
一 個RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN 回呼,一旦介面群組閑置時,RPC 運行時間就會叫用,以 在IdlePeriod中提供的時間長度。 只有在 IdlePeriod 為 INFINITE 時,才能為 NULL。
[in] IdleCallbackContext
要傳遞至 IdleCallbackFn 中閑置回呼的使用者定義指標。
[out] IfGroup
如果成功,則為接收新建立介面群組句柄 之RPC_INTERFACE_GROUP 緩衝區的指標。 如果此函式失敗, IfGroup 為未定義。
傳回值
值 | 意義 |
---|---|
|
呼叫成功。 |
備註
當介面群組閑置時,可以選擇性地通知伺服器應用程式。 雖然任何應用程式都可以利用這項功能,但目標是想要讓服務閑置停止的服務開發人員。
IdlePeriod 可防止 RPC 運行時間在閑置狀態快速變更時產生大量通知,並在觸發的服務案例中協助服務避免不必要啟動和停止。 開發人員應該考慮服務初始化和關機的成本、將發生新活動的預期頻率,以及選取此值時讓服務保持閑置的成本。 低閑置期間會導致服務在新的用戶端活動發生時經常啟動和停止,而高閑置期間會導致服務在不執行有意義的工作的情況下耗用資源。
介面群組中的介面只能透過相同群組的端點呼叫。 不屬於介面群組的介面無法透過屬於群組一部分的連接點呼叫。
伺服器應用程式不一定會看到 RPC 伺服器活動。 在某些情況下,只要有用戶端與伺服器的開啟連線,即使長時間未分派任何呼叫,仍可能會讓用戶端保持作用中狀態。 伺服器應用程式不得依賴 RPC 運行時間之間的任何相互關聯,宣告群組處於閑置狀態,以及上次分派呼叫之後的時間。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcdce.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |
另請參閱
RpcServerInterfaceGroupActivate