Dela via


Beskrivning av procedurrubrik

Rubriken har utökats flera gånger under NDR-motorns livslängd. Den aktuella kompilatorn genererar fortfarande olika rubriker beroende på kompilatorns läge. Senare rubriker är dock en superuppsättning av de äldre.

Den gamla -Oi-rubriken

Rubriken har följande format:

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

Där handle_type<1> kan vara ett av värdena som visas i följande tabell.

Hex Handtag
31 FC_BIND_GENERIC
32 FC_BIND_PRIMITIVE
33 FC_AUTO_HANDLE
34 FC_CALLBACK_HANDLE
0 (explicit handtag)

 

Om fältet handle_type<1> inte är noll använder proceduren ett implicit handtag av den angivna typen. Mer information finns i avsnittet Handles . Om fältet handle_type<1> är noll är handtaget som används för bindning en av procedurens parametrar.

Explicita referenser kan vara primitiva, generiska och kontext; den sista har följande FC-token.

Hex Handtag
30 FC_BIND_CONTEXT

 

Enligt konventionen är referenstypen för DCOM-gränssnitt FC_AUTO_HANDLE.

Fältet Oi_flags<1> är en 8-bitars mask av följande flaggor.

Hex Flagga Betydelse
01 Oi_FULL_PTR_USED Använder det fullständiga pekarpaketet.
02 Oi_RPCSS_ALLOC_USED Använder RpcSs-minnespaketet.
04 Oi_OBJECT_PROC En procedur i ett objektgränssnitt.
08 Oi_HAS_RPCFLAGS Proceduren har nonzero Rpc-flaggor.
10 Oi_* Överbelastad.
20 Oi_* Överbelastad.
40 Oi_USE_NEW_INIT_ROUTINES Använder Windows NT3.5 Beta2+ init-rutiner.
80 Oanvänd.

 

Följande flaggor är överbelastade.

Hex Flagga Betydelse
10 ENCODE_IS_USED Används endast i pickling.
20 DECODE_IS_USED Används endast i pickling.
10 Oi_IGNORE_OBJECT_EXCEPTION_HANDLING Används inte längre (gammal OLE).
20 Oi_HAS_COMM_OR_FAULT Endast i rå RPC, [comm _, fault_status].
20 Oi_OBJ_USE_V2_INTERPRETER Använd endast –Oif tolk i DCOM.

 

Fältet rpc_flags<4> beskriver hur du anger RpcFlags fältet i RPC_MESSAGE-strukturen. Det här fältet finns bara om fältet Oi_flags<1> har Oi_HAD_RPCFLAGS angivet. Om det här fältet inte finns är RPC-flaggorna för fjärrproceduren noll.

Not

För prestanda har asynkrona tolkar alltid fältet rpc_flags<4> närvarande.

 

Fältet proc_num<2> innehåller procedurens procedurnummer.

Stack_size<2> ger den totala storleken på alla parametrar i stacken, inklusive den här pekaren och/eller returvärdet.

Fältet explicit_handle_description<> beskrivs senare i det här dokumentet. Det här fältet finns inte om proceduren använder ett implicit handtag.