Fungsi midl_user_allocate
Fungsi midl_user_allocate adalah prosedur yang harus disediakan oleh pengembang aplikasi RPC. Ini mengalokasikan memori untuk stub RPC dan rutinitas pustaka. Fungsi midl_user_allocate Anda harus cocok dengan prototipe berikut:
void __RPC_FAR * __RPC_USER midl_user_allocate (size_t cBytes);
Parameter cBytes menentukan jumlah byte yang akan dialokasikan. Aplikasi klien dan aplikasi server harus menerapkan fungsi midl_user_allocate kecuali Anda mengkompilasi dalam mode kompatibilitas OSF (/osf). Aplikasi dan stub yang dihasilkan memanggil midl_user_allocate secara langsung atau tidak langsung untuk mengelola objek yang dialokasikan. Misalnya:
- Aplikasi klien dan server memanggil midl_user_allocate untuk mengalokasikan memori untuk aplikasi, seperti saat membuat simpul baru di pohon atau daftar tertaut.
- Stub server memanggil midl_user_allocate saat membatalkan nama data ke ruang alamat server.
- Stub klien memanggil midl_user_allocate saat membatalkan nama data dari server yang dirujuk oleh penunjuk [out]. Perhatikan bahwa untuk penunjuk [in], [out], dan [unique], stub klien memanggil midl_user_allocate hanya jika nilai pointer [unik] null pada input dan berubah menjadi nilai non-null selama panggilan. Jika penunjuk [unik] non-null pada input, stub klien menulis data terkait ke dalam memori yang ada.
Jika midl_user_allocate gagal mengalokasikan memori, itu harus mengembalikan penunjuk null.
Fungsi midl_user_allocate harus mengembalikan penunjuk rata 8-byte.
Misalnya, program sampel yang disediakan dengan Platform Software Development Kit (SDK) mengimplementasikan midl_user_allocate dalam hal fungsi C malloc:
void __RPC_FAR * __RPC_USER midl_user_allocate(size_t cBytes)
{
return((void __RPC_FAR *) malloc(cBytes));
}
Nota
Jika paket RpcSs diaktifkan (misalnya, sebagai hasil dari menggunakan atribut [ enable_allocate] ), gunakan RpcSmAllocate untuk mengalokasikan memori di sisi server. Untuk informasi tambahan tentang [enable_allocate], lihat Referensi MIDL.