Sdílet prostřednictvím


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č.