User-marshal
Marshal pengguna memiliki string format yang mirip dengan transmit_as:
FC_USER_MARSHAL
flags<1>
quadruple_index<2>
user_type_memory_size<2>
transmitted_type_buffer size<2>
offset_to_the_transmitted_type<2>
Bendera<1> byte terdiri dari nibble bendera atas dan nibble penyelarasan bawah.
2 bit atas nibble bendera digunakan untuk menggambarkan apakah jenis kawat didefinisikan sebagai penunjuk unik, penunjuk referensi, atau tanpa pointer (tidak boleh ptr). Manifes berikut telah ditentukan untuk mengatur/mendapatkan bendera:
#define USER_MARSHAL_UNIQUE 0x80
#define USER_MARSHAL_REF 0x40
#define USER_MARSHAL_POINTER 0xc0 /* unique or ref */
#define USER_MARSHAL_IID 0x20 /* JIT compiler only */
Nibble perataan kata bendera menjaga keselarasan kawat dari jenis yang dikirimkan.
quadruple_index<2> adalah indeks quadruple rutin panggilan balik dari fungsi marshal pengguna. Posisi rutinnya adalah sebagai berikut: rutinitas ukuran, marshaling, unmarshaling, dan freeing.
user_type_memory_size<2> menyediakan ukuran untuk jenis spesifik pengguna, termasuk jenis yang tidak diketahui.
transmitted_type_buffer_size<2> adalah nol ketika ukurannya bervariasi, atau ukuran tetap aktual. Ini adalah pengoptimalan yang memungkinkan MIDL untuk melewati panggilan balik saat mengukur buffer, dan juga saat membebaskan.
Rentang
Pemeriksaan [rentang] menyediakan sarana tambahan untuk validasi argumen di lapisan NDR. Deskriptor [rentang] memiliki format berikut:
FC_RANGE, flags_type <1>
low value<4>
high value<4>
Bendera mengambil nibble atas dan jenis nibble bawah byte kedua. Nilai rendah dan tinggi tergantung pada jenis variabel yang akan diperiksa.
Bendera dimaksudkan sebagai kendaraan ekspansi; pengkompilasi telah mengatur nibble ke nol.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk