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