Bagikan melalui


Pendeskripsi Header Prosedur

Header telah diperpanjang beberapa kali selama masa pakai mesin NDR. Pengkompilasi saat ini masih menghasilkan header yang berbeda tergantung pada mode pengkompilasi. Namun, header yang lebih baru adalah superset dari yang lebih lama.

Header Lama –Oi

Header memiliki format berikut:

handle_type<1> 
Oi_flags<1>
[rpc_flags<4>]
proc_num<2>  
stack_size<2>
[explicit_handle_description<>]

Di mana handle_type<1> bisa menjadi salah satu nilai yang diperlihatkan dalam tabel berikut ini.

Hex Menangani
31 FC_BIND_GENERIC
32 FC_BIND_PRIMITIVE
33 FC_AUTO_HANDLE
34 FC_CALLBACK_HANDLE
0 (handel eksplisit)

 

Jika bidang> handle_type<1 bukan nol, maka prosedur menggunakan handel implisit dari jenis yang ditunjukkan. Lihat topik Menangani untuk informasi selengkapnya. Jika bidang handle_type<1> adalah nol, handel yang digunakan untuk pengikatan adalah salah satu parameter prosedur.

Handel eksplisit bisa primitif, generik, dan konteks; yang terakhir memiliki token FC berikut.

Hex Menangani
30 FC_BIND_CONTEXT

 

Menurut konvensi, jenis handel untuk antarmuka DCOM FC_AUTO_HANDLE.

Bidang Oi_flags<1> adalah masker 8-bit dari bendera berikut.

Hex Bendera Arti
01 Oi_FULL_PTR_USED Menggunakan paket penunjuk lengkap.
02 Oi_RPCSS_ALLOC_USED Menggunakan paket memori RpcSs.
04 Oi_OBJECT_PROC Prosedur dalam antarmuka objek.
08 Oi_HAS_RPCFLAGS Prosedur ini memiliki bendera Rpc nonzero.
10 Oi_* Kelebihan beban.
20 Oi_* Kelebihan beban.
40 Oi_USE_NEW_INIT_ROUTINES Menggunakan rutinitas init Windows NT3.5 Beta2+.
80 Tidak terpakai.

 

Bendera berikut kelebihan beban.

Hex Bendera Arti
10 ENCODE_IS_USED Hanya digunakan dalam acar.
20 DECODE_IS_USED Hanya digunakan dalam acar.
10 Oi_IGNORE_OBJECT_EXCEPTION_HANDLING Tidak digunakan lagi (OLE lama).
20 Oi_HAS_COMM_OR_FAULT Hanya dalam RPC mentah, [comm _, fault_status].
20 Oi_OBJ_USE_V2_INTERPRETER Hanya di DCOM, gunakan interpreter –Oif.

 

Bidang> rpc_flags<4 menjelaskan cara mengatur bidang RpcFlags struktur RPC_MESSAGE. Bidang ini hanya ada jika bidang Oi_flags<1> memiliki kumpulan Oi_HAD_RPCFLAGS. Jika bidang ini tidak ada, maka bendera RPC untuk prosedur jarak jauh adalah nol.

Nota

Untuk performa, penerjemah asinkron selalu memiliki bidang> rpc_flags<4 yang ada.

 

Bidang> proc_num<2 menyediakan nomor prosedur prosedur.

stack_size<2> menyediakan ukuran total semua parameter pada tumpukan, termasuk nilai pointer dan/atau pengembalian ini.

Bidang explicit_handle_description<> dijelaskan nanti dalam dokumen ini. Bidang ini tidak ada jika prosedur menggunakan handel implisit.