Bagikan melalui


Fungsi type_UserUnmarshal

Fungsi <type>_UserUnmarshal adalah fungsi pembantu untuk atribut [ wire_marshal] dan [ user_marshal]. Stub memanggil fungsi ini untuk membatalkan amarshal data di sisi klien atau server. Fungsi ini didefinisikan sebagai:

unsigned char __RPC_FAR * __RPC_USER  <type>_UserUnmarshal(
    unsigned long __RPC_FAR * pFlags,
    unsigned char __RPC_FAR * pBuffer,
    <type>  __RPC_FAR *       pMyObj);

Jenis <> dalam nama fungsi berarti jenis penggunam yang ditentukan dalam definisi jenis [wire_marshal] atau [user_marshal]. Jenis ini mungkin tidak dapat ditransmisikan atau bahkan—saat digunakan dengan atribut [user_marshal] —tidak diketahui oleh pengkompilasi MIDL. Nama jenis kawat (nama jenis yang dapat ditransmisikan) tidak digunakan dalam prototipe fungsi. Namun, perhatikan bahwa jenis kawat menentukan tata letak kawat untuk data seperti yang ditentukan oleh OSF DCE.

Parameter pFlags adalah penunjuk ke bidang bendera panjang yang tidak ditandatangani . Kata atas bendera berisi bendera representasi data NDR seperti yang didefinisikan oleh OSF DCE untuk titik mengambang, urutan byte, dan representasi karakter. Kata yang lebih rendah berisi bendera konteks marshaling seperti yang didefinisikan oleh saluran COM. Tata letak bendera yang tepat dalam bidang dijelaskan dalam Fungsi type_UserSize.

Parameter pBuffer adalah penunjuk buffer saat ini. Penunjuk ini mungkin atau mungkin tidak diratakan pada entri. Jenis> Anda<_UserUnmarshal fungsi harus menyelaraskan penunjuk buffer dengan tepat, membatalkan nama data, dan mengembalikan posisi buffer baru, yang merupakan alamat byte pertama setelah objek yang tidak dimarshalasikan.

Parameter pMyObj adalah penunjuk ke objek jenis yang ditentukan pengguna.

Dalam lingkungan heterogen, mesin NDR melakukan konversi data apa pun yang diperlukan sebelum memanggil <jenis>_UserUnmarshal fungsi. Perhatikan bahwa mesin NDR melakukan konversi data ini sesuai dengan definisi jenis kawat yang disediakan untuk jenis data pengguna ini. Bendera menunjukkan representasi data pengirim.

Aturan Marsekal untuk user_marshal dan wire_marshal

wire_marshal

user_marshal