Fungsi RpcServerRegisterIf3 (rpcdce.h)

Fungsi RpcServerRegisterIf3 mendaftarkan antarmuka dengan pustaka run-time RPC.

Sintaks

RPC_STATUS RpcServerRegisterIf3(
  [in]           RPC_IF_HANDLE      IfSpec,
  [in, optional] UUID               *MgrTypeUuid,
  [in, optional] RPC_MGR_EPV        *MgrEpv,
  [in]           unsigned int       Flags,
  [in]           unsigned int       MaxCalls,
  [in]           unsigned int       MaxRpcSize,
  [in, optional] RPC_IF_CALLBACK_FN *IfCallback,
  [in, optional] void               *SecurityDescriptor
);

Parameter

[in] IfSpec

Struktur yang dihasilkan MIDL menunjukkan antarmuka untuk mendaftar.

[in, optional] MgrTypeUuid

Arahkan ke UUID jenis untuk dikaitkan dengan parameter MgrEpv . Menentukan nilai parameter null (atau UUID nihil) mendaftarkan IfSpec dengan UUID jenis nil.

[in, optional] MgrEpv

Vektor titik masuk (EPV) rutin manajer. Untuk menggunakan EPV default yang dihasilkan MIDL, tentukan nilai null . Untuk informasi lebih lanjut, silakan lihat RPC_MGR_EPV.

[in] Flags

Bendera. Untuk daftar nilai bendera, lihat Bendera Pendaftaran Antarmuka.

[in] MaxCalls

Jumlah maksimum permintaan panggilan prosedur jarak jauh bersamaan yang dapat diterima server pada antarmuka mendengarkan otomatis . Parameter MaxCalls hanya berlaku pada antarmuka mendengarkan otomatis , dan diabaikan pada antarmuka yang tidak mendengarkan secara otomatis. Pustaka run-time RPC berusaha sebaik mungkin untuk memastikan server tidak mengizinkan permintaan panggilan yang lebih bersamaan daripada jumlah panggilan yang ditentukan dalam MaxCalls. Jumlah aktual bisa lebih besar dan dapat bervariasi untuk setiap urutan protokol.

Panggilan pada antarmuka lain diatur oleh nilai parameter MaxCalls di seluruh proses yang ditentukan dalam panggilan fungsi RpcServerListen .

Jika jumlah panggilan bersamaan tidak menjadi perhatian, Anda dapat mencapai performa sisi server yang sedikit lebih baik dengan menentukan nilai default menggunakan RPC_C_LISTEN_MAX_CALLS_DEFAULT. Melakukannya akan meringankan lingkungan run-time RPC agar tidak memberlakukan pembatasan yang tidak perlu.

[in] MaxRpcSize

Ukuran maksimum blok data masuk, dalam byte. Parameter ini dapat digunakan untuk membantu mencegah serangan penolakan layanan berbahaya. Jika blok data panggilan prosedur jarak jauh lebih besar dari MaxRpcSize, pustaka run-time RPC menolak panggilan dan mengirim kesalahan RPC_S_ACCESS_DENIED ke klien. Menentukan nilai (int tidak ditandatangani) –1 untuk parameter ini akan menghapus batas ukuran blok data masuk. Parameter ini tidak berpengaruh pada panggilan yang dilakukan melalui protokol ncalrpc .

[in, optional] IfCallback

Fungsi panggilan balik keamanan, atau NULL tanpa panggilan balik. Setiap antarmuka terdaftar dapat memiliki fungsi panggilan balik yang berbeda. Lihat Komentar di RpcServerRegisterIf2.

[in, optional] SecurityDescriptor

Deskriptor keamanan untuk mengakses antarmuka RPC. Setiap antarmuka terdaftar dapat memiliki deskriptor keamanan yang berbeda.

Nilai kembali

Mengembalikan RPC_S_OK setelah berhasil.

Catatan Untuk daftar kode kesalahan yang valid, lihat Nilai Pengembalian RPC.
 

Keterangan

Parameter dan efek fungsi RpcServerRegisterIf3 memperluas fungsi RpcServerRegisterIf2 . Perbedaannya adalah kemampuan untuk menentukan pendeskripsi keamanan untuk mengontrol akses ke antarmuka RPC terdaftar.

Jika SecurityDescriptor dan IfCallbackFn ditentukan, deskriptor keamanan di SecurityDescriptor akan diperiksa terlebih dahulu dan panggilan balik di IfCallbackFn akan dipanggil setelah pemeriksaan akses terhadap deskriptor keamanan lolos.

Saat memanggil RpcServerRegisterIf3 dengan SecurityDescriptor diatur ke NULL, atau memanggil RpcServerRegisterIf, RpcServerRegisterIf2, atau RpcServerRegisterIfEx untuk mendaftarkan antarmuka, deskriptor keamanan default akan digunakan. Deskriptor keamanan default tidak akan mengizinkan akses dari proses AppContainer apa pun ke antarmuka jika server RPC bukan proses AppContainer. Pendeskripsi keamanan default tidak akan mengizinkan akses dari proses apa pun dalam proses AppContainer lainnya ke antarmuka jika server RPC adalah proses AppContainer. Deskriptor keamanan default akan memungkinkan akses dari proses normal termasuk Proses integritas rendah.

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

Mendaftarkan Antarmuka

RpcGetAuthorizationContextForClient

RpcServerRegisterIf

RpcServerRegisterIf2

RpcServerRegisterIfEx

RpcServerUnregisterIf

RpcServerUnregisterIfEx