Bagikan melalui


Fungsi RpcServerListen (rpcdce.h)

Fungsi RpcServerListen memberi sinyal pustaka run-time RPC untuk mendengarkan panggilan prosedur jarak jauh. Fungsi ini tidak akan memengaruhi antarmuka mendengarkan otomatis; gunakan RpcServerRegisterIfEx jika Anda memerlukan fungsionalitas tersebut.

Sintaks

RPC_STATUS RpcServerListen(
  unsigned int MinimumCallThreads,
  unsigned int MaxCalls,
  unsigned int DontWait
);

Parameter

MinimumCallThreads

Petunjuk waktu proses RPC yang menentukan jumlah minimum utas panggilan yang harus dibuat dan dipertahankan di server yang diberikan. Nilai ini hanyalah petunjuk dan ditafsirkan secara berbeda dalam versi Windows yang berbeda. Di Windows XP, nilai ini adalah jumlah utas yang dibuat sebelumnya di setiap kumpulan utas yang dibuat oleh run time RPC. Aplikasi harus menentukan satu untuk parameter ini, dan menunda keputusan pembuatan utas ke run time RPC.

MaxCalls

Jumlah maksimum panggilan prosedur jarak jauh bersamaan yang disarankan yang dapat dijalankan server. Untuk memungkinkan performa yang efisien, pustaka run-time RPC menginterpretasikan parameter MaxCalls sebagai batas yang disarankan daripada sebagai batas atas absolut.

Gunakan RPC_C_LISTEN_MAX_CALLS_DEFAULT untuk menentukan nilai default.

DontWait

Bendera yang mengontrol pengembalian dari RpcServerListen. Nilai nonzero menunjukkan bahwa RpcServerListen harus segera kembali setelah menyelesaikan pemrosesan fungsi. Nilai nol menunjukkan bahwa RpcServerListen tidak boleh kembali sampai fungsi RpcMgmtStopServerListening telah dipanggil dan semua panggilan jarak jauh telah selesai.

Nilai kembali

Nilai Makna
RPC_S_OK
Panggilan berhasil.
RPC_S_ALREADY_LISTENING
Server sudah mendengarkan.
RPC_S_NO_PROTSEQS_REGISTERED
Tidak ada urutan protokol yang terdaftar.
RPC_S_MAX_CALLS_TOO_SMALL
Nilai panggilan maksimum terlalu kecil.
 
Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Server memanggil RpcServerListen ketika server siap untuk memproses panggilan prosedur jarak jauh. RPC memungkinkan server untuk memproses beberapa panggilan secara bersamaan. Parameter MaxCalls merekomendasikan jumlah maksimum panggilan prosedur jarak jauh bersamaan yang harus dijalankan server.

Nilai MaxCalls tidak boleh nol, dan harus lebih besar dari MinimumCallThreads. Nilai yang lebih besar dari 0x7FFFFFFF diatur ke 0x7FFFFFFF tanpa pemberitahuan.

Windows XP/2000: Mengatur parameter MaxCalls ke RPC_C_LISTEN_MAX_CALLS_DEFAULT menghapus batas panggilan prosedur jarak jauh bersamaan, daripada mengaturnya ke nilai yang ditentukan konstan 1234. Menghapus batas panggilan bersamaan maksimum memungkinkan panggilan prosedur jarak jauh bersamaan sebanyak yang dapat ditangani komputer. Perilaku ini memungkinkan peningkatan efisiensi dalam run time RPC.

Aplikasi server bertanggung jawab atas kontrol konkurensi antara rutinitas manajer server karena setiap rutinitas dijalankan dalam utas terpisah.

Ketika parameter DontWait memiliki nilai nol, pustaka run-time RPC terus mendengarkan panggilan prosedur jarak jauh (yaitu, rutinitas tidak kembali ke aplikasi server) sampai salah satu peristiwa berikut terjadi:

Setelah menerima permintaan berhenti mendengarkan, pustaka run-time RPC berhenti menerima panggilan prosedur jarak jauh baru untuk semua antarmuka terdaftar. Menjalankan panggilan diizinkan untuk diselesaikan, termasuk panggilan balik. Setelah semua panggilan selesai, RpcServerListen kembali ke pemanggil.

Ketika parameter DontWait memiliki nilai bukan nol, RpcServerListen segera kembali ke server setelah memproses semua instruksi yang terkait dengan fungsi. Anda dapat menggunakan fungsi RpcMgmtWaitServerListen untuk melakukan operasi tunggu yang biasanya terkait dengan RpcServerListen.

Catatan Implementasi RpcServerListen Microsoft RPC mencakup dua parameter tambahan yang tidak muncul dalam spesifikasi DCE: DontWait dan MinimumCallThreads.
 

Persyaratan

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

Lihat juga

RpcMgmtStopServerListening

RpcMgmtWaitServerListen

RpcServerRegisterIf

RpcServerRegisterIfEx

RpcServerUseAllProtseqs

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf