Bagikan melalui


RpcServerInterfaceGroupCreate (rpcdce.h)

Fungsi RpcServerInterfaceGroupCreate membuat grup antarmuka server RPC untuk aplikasi server. Grup antarmuka ini sepenuhnya menentukan antarmuka, titik akhir, dan properti menganggur aplikasi server RPC. Setelah dibuat, grup antarmuka dapat diaktifkan dan dinonaktifkan sesuai kebutuhan aplikasi.

Sintaks

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
);

Parameter

[in] Interfaces

Penunjuk ke array struktur RPC_INTERFACE_TEMPLATE yang menentukan antarmuka yang diekspos oleh grup antarmuka.

[in] NumIfs

Jumlah elemen dalam Antarmuka.

[in] Endpoints

Penunjuk ke array struktur RPC_ENDPOINT_TEMPLATE yang menentukan titik akhir yang digunakan oleh grup antarmuka.

[in] NumEndpoints

Jumlah elemen di Titik Akhir.

[in] IdlePeriod

Lamanya waktu dalam detik setelah grup antarmuka menganggur bahwa runtime RPC harus menunggu sebelum memanggil panggilan balik diam. 0 berarti panggilan balik segera dipanggil. INFINITE berarti aplikasi server tidak peduli dengan status menganggur grup antarmuka.

[in] IdleCallbackFn

Panggilan balik RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN yang akan dipanggil runtime RPC setelah grup antarmuka menganggur selama waktu yang diberikan dalam IdlePeriod. Dapat berupa NULL hanya jika IdlePeriod adalah INFINITE.

[in] IdleCallbackContext

Penunjuk yang ditentukan pengguna untuk diteruskan ke panggilan balik menganggur di IdleCallbackFn.

[out] IfGroup

Jika berhasil, penunjuk ke buffer RPC_INTERFACE_GROUP yang menerima handel ke grup antarmuka yang baru dibuat. Jika fungsi ini gagal, IfGroup tidak terdefinisi.

Nilai kembali

Nilai Makna
RPC_S_OK
Panggilan berhasil.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Aplikasi server secara opsional dapat diberi tahu ketika grup antarmuka menjadi menganggur. Meskipun aplikasi apa pun dapat memanfaatkan fungsionalitas ini, aplikasi ini ditargetkan untuk pengembang layanan yang ingin memungkinkan layanan mereka berhenti diam.

IdlePeriod mencegah runtime RPC menghasilkan sejumlah besar pemberitahuan jika status menganggur berubah dengan cepat, dan dalam kasus layanan yang dipicu, membantu layanan menghindari memulai dan menghentikan yang tidak perlu. Pengembang harus mempertimbangkan biaya inisialisasi dan penonaktifan layanan, frekuensi yang diharapkan dengan aktivitas baru yang akan terjadi, dan biaya menjaga layanan tetap diam saat memilih nilai ini. Periode diam yang rendah akan menyebabkan layanan sering memulai dan berhenti saat aktivitas klien baru berlangsung, sedangkan periode menganggur yang tinggi akan menyebabkan layanan mengonsumsi sumber daya tanpa melakukan pekerjaan yang bermakna.

Antarmuka dalam grup antarmuka hanya dapat dipanggil melalui titik akhir dari grup yang sama. Antarmuka yang bukan bagian dari grup antarmuka tidak dapat dipanggil melalui titik akhir yang merupakan bagian dari grup.

Aktivitas server RPC tidak selalu terlihat oleh aplikasi server. Dalam beberapa kasus, hanya memiliki klien dengan koneksi terbuka ke server dapat membuatnya tetap aktif bahkan jika tidak ada panggilan yang dikirim untuk jangka waktu yang lama. Aplikasi server tidak boleh mengandalkan korelasi apa pun antara runtime RPC yang menyatakan bahwa grup menganggur dan waktu sejak panggilan terakhir dikirim.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header rpcdce.h (termasuk Rpc.h)
Pustaka Rpcrt4.lib
DLL Rpcrt4.dll

Lihat juga

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings