Eljárásfejleíró
A fejlécet többször meghosszabbították az NDR motor élettartama során. Az aktuális fordító a fordító módjától függően továbbra is különböző fejléceket hoz létre. A legutóbbi fejlécek azonban a régebbiek szuperhalmazai.
A régi –Oi fejléc
A fejléc formátuma a következő:
handle_type<1>
Oi_flags<1>
[rpc_flags<4>]
proc_num<2>
stack_size<2>
[explicit_handle_description<>]
Ahol handle_type<1> az alábbi táblázatban látható értékek egyike lehet.
Rontás | Fogantyú |
---|---|
31 | FC_BIND_GENERIC |
32 | FC_BIND_PRIMITIVE |
33 | FC_AUTO_HANDLE |
34 | FC_CALLBACK_HANDLE |
0 | (explicit leíró) |
Ha az handle_type<1> mező nem ero, akkor az eljárás a megadott típusú implicit leírót használja. További információért tekintse meg a Leírók témakört. Ha az handle_type<1> mező nulla, a kötéshez használt leíró az eljárás egyik paramétere.
Az explicit leírók lehetnek primitívek, általánosak és környezetek; az utolsó az alábbi FC-jogkivonattal rendelkezik.
Rontás | Fogantyú |
---|---|
30 | FC_BIND_CONTEXT |
A DCOM-felületek leírótípusa konvenció szerint FC_AUTO_HANDLE.
Az Oi_flags<1> mező az alábbi jelölők 8 bites maszkja.
Rontás | Zászló | Jelentés |
---|---|---|
01 | Oi_FULL_PTR_USED | A teljes mutatócsomagot használja. |
02 | Oi_RPCSS_ALLOC_USED | Az RpcSs memóriacsomagot használja. |
04 | Oi_OBJECT_PROC | Eljárás egy objektumfelületen. |
08 | Oi_HAS_RPCFLAGS | Az eljárás nemero Rpc-jelzőkkel rendelkezik. |
10 | Oi_* | Túlterhelt. |
20 | Oi_* | Túlterhelt. |
40 | Oi_USE_NEW_INIT_ROUTINES | Windows NT3.5 Beta2+ init rutinokat használ. |
80 | Használatlan. |
A következő jelzők túlterheltek.
Rontás | Zászló | Jelentés |
---|---|---|
10 | ENCODE_IS_USED | Csak pácoláshoz használható. |
20 | DECODE_IS_USED | Csak pácoláshoz használható. |
10 | Oi_IGNORE_OBJECT_EXCEPTION_HANDLING | Már nem használják (régi OLE). |
20 | Oi_HAS_COMM_OR_FAULT | Csak nyers RPC-ben: [comm _, fault_status]. |
20 | Oi_OBJ_USE_V2_INTERPRETER | Csak DCOM-ban használja a –Oif értelmezőt. |
A rpc_flags<4> mező a RPC_MESSAGE struktúra RpcFlags mezőjének beállítását ismerteti. Ez a mező csak akkor jelenik meg, ha az Oi_flags<1> mező Oi_HAD_RPCFLAGS van beállítva. Ha ez a mező nincs jelen, akkor a távoli eljárás RPC-jelzői nullák.
Jegyzet
A teljesítmény érdekében az aszinkron értelmezők mindig 4> rpc_flags<mezővel rendelkeznek.
A proc_num<2> mező adja meg az eljárás eljárásszámát.
A stack_size<2> a verem összes paraméterének teljes méretét adja meg, beleértve a mutatót és/vagy a visszatérési értéket is.
A explicit_handle_description<> mezőt a dokumentum későbbi részében ismertetjük. Ez a mező nem jelenik meg, ha az eljárás implicit leírót használ.