Popisovač záhlaví procedury
Hlavička byla několikrát prodloužena v průběhu životnosti modulu oznámení o nedoručení. Aktuální kompilátor stále generuje různé hlavičky v závislosti na režimu kompilátoru. Novější hlavičky jsou ale nadmnožinou těch starších.
Původní hlavička –Oi
Záhlaví má následující formát:
handle_type<1>
Oi_flags<1>
[rpc_flags<4>]
proc_num<2>
stack_size<2>
[explicit_handle_description<>]
Kde handle_type<1> může být jedna z hodnot zobrazených v následující tabulce.
Šestnáctkový | Klika |
---|---|
31 | FC_BIND_GENERIC |
32 | FC_BIND_PRIMITIVE |
33 | FC_AUTO_HANDLE |
34 | FC_CALLBACK_HANDLE |
0 | (explicitní popisovač) |
Pokud je pole handle_type<1> nenulové, použije procedura implicitní popisovač uvedeného typu. Další informace najdete v tématu Popisovačů. Pokud je pole handle_type<1> nula, je popisovač použitý pro vazbu jedním z parametrů procedury.
Explicitní popisovače mohou být primitivní, obecné a kontextové; poslední má následující token FC.
Šestnáctkový | Klika |
---|---|
30 | FC_BIND_CONTEXT |
Podle konvence je typ popisovače pro rozhraní DCOM FC_AUTO_HANDLE.
Pole Oi_flags<1> je 8bitová maska následujících příznaků.
Šestnáctkový | Vlajka | Význam |
---|---|---|
01 | Oi_FULL_PTR_USED | Používá balíček s úplným ukazatelem. |
02 | Oi_RPCSS_ALLOC_USED | Používá balíček paměti RpcSs. |
04 | Oi_OBJECT_PROC | Procedura v rozhraní objektu. |
08 | Oi_HAS_RPCFLAGS | Procedura obsahuje nenulové příznaky rpc. |
10 | Oi_* | Přetížený. |
20 | Oi_* | Přetížený. |
40 | Oi_USE_NEW_INIT_ROUTINES | Používá inicializační rutiny systému Windows NT3.5 Beta2+ . |
80 | Nepoužitý. |
Následující příznaky jsou přetížené.
Šestnáctkový | Vlajka | Význam |
---|---|---|
10 | ENCODE_IS_USED | Používá se pouze při výběru. |
20 | DECODE_IS_USED | Používá se pouze při výběru. |
10 | Oi_IGNORE_OBJECT_EXCEPTION_HANDLING | Už se nepoužívá (stará OLE). |
20 | Oi_HAS_COMM_OR_FAULT | Pouze v nezpracovaných procedurách RPC[ čárka _, fault_status]. |
20 | Oi_OBJ_USE_V2_INTERPRETER | V modelu DCOM používejte pouze –Oif interpret. |
Pole rpc_flags<4> popisuje, jak nastavit pole RpcFlags struktury RPC_MESSAGE. Toto pole je k dispozici pouze v případě, že pole Oi_flags<1> nastaveno Oi_HAD_RPCFLAGS. Pokud toto pole není k dispozici, jsou příznaky RPC pro vzdálenou proceduru nulové.
Poznámka
Pro výkon mají asynchronní interprety vždy k dispozici pole rpc_flags<4>.
Pole proc_num<2> poskytuje číslo procedury.
Stack_size<2> poskytuje celkovou velikost všech parametrů v zásobníku, včetně jakéhokoli tohoto ukazatele a/nebo návratové hodnoty.
Pole explicit_handle_description<> je popsáno dále v tomto dokumentu. Toto pole není k dispozici, pokud procedura používá implicitní popisovač.