Sdílet prostřednictvím


Řetězce formátu oznámení RPC o nedoručení

Modul oznámení o nedoručení: 32bitový interpret

Tento dokument popisuje popisovače řetězců formátu, někdy označované jako MOPs, pro 32bitový modul oznámení o nedoručení. Tato část popisuje změny spojené s vývojem interpretu –Oi na vrstvu interpretu –Oif a také dodatky související s kanály a asynchronní podporou.

Tento dokument popisuje aktuální technologii JAZYKa MIDL (Microsoft Interface Definition Language) z pohledu modulu a aktuální modul oznámení o nedoručení.

Přehled

Modul oznámení o nedoručení je zařazovací modul komponent vzdáleného volání procedur (RPC) a modelu DCOM. Řeší všechny problémy související s zástupnými procedurami vzdáleného volání. Jako proces se zařazování oznámení o nedoručení řídí kódem jazyka C z zástupných procedur generovaných MIDL, generátorem typů MIDL JIT nebo zástupné procedury generované jinými nástroji nebo ručně napsanými. Modul oznámení o nedoručení pak řídí základní dobu běhu (DCOM nebo RPC), která komunikuje s konkrétními přenosy.

Původním cílem návrhu bylo poskytnout nástroj pro efektivní zařazování libovolných dat na základě informací poskytovaných kompilátorem MIDL. Řetězce formátu popsané v tomto dokumentu – a všechny informace generované kompilátorem pro spotřebu modulu oznámení o nedoručení – byly vždy považovány za interní rozhraní mezi kompilátorem a modulem. Podobně rozhraní dostupná pro modul pro zpracování problémů za běhu jsou také většinou interní (některé výjimky existují na straně běhu RPC a některá rozhraní DCOM používaná modulem jsou externí).

Dva typické přístupy k zařazování byly vždy vložené a (interpretované) technologie řízené daty. MIDL podporuje –Os a –Oi* přepínače ve svých zástupných procedurách generovaných jazykem C. Kromě toho může MIDL generovat knihovny TLB používané balíčkem oleautomation. Jedním z pohledu vnitřních vlastností motoru je proto, že se skládá ze dvou částí.

První je sada rutin, které zpracovávají změnu velikosti, zařazování atd., které odpovídají typickým objektům datového typu, jako je struktura nebo pole. Tyto rutiny jsou vyladěné pro výkon; Obvykle se například snaží blokovat a kopírovat data, kdykoli je to možné. Tato část se často označuje jako základní modul oznámení o nedoručení.

Druhá část se skládá z interpreta a jeho souvisejících částí. Interpret používá rutiny z jádra modulu oznámení o nedoručení, jako by z interní knihovny, aby podle potřeby spustil vzdálené volání se všemi jeho argumenty zařazovanými a nezařazenými.

Jádro modulu oznámení o nedoručení se používá podobným způsobem, ať už se používá z vložených zástupných procedur nebo interpreta. Všechny rutiny základního modulu závisí na stavu předávaném strukturou zpráv s zástupnými procedurami. Struktura je nastavena odpovídajícím způsobem vloženou zástupný procedurou nebo interpretem. V průběhu let byl základní modul použit v jiném kontextu; v současné době je interpret ve skutečnosti sadou několika různých smyček interpretů. Souvisí se starými a novými interprety (–Oi versus –Oif) a smyčkami souvisejícími se serializací dat (výběr), asynchronní podporou RPC a asynchronní podporou DCOM (RPC a DCOM mají různé asynchronní programovací modely).

Kromě přidání nových funkcí je důležitým aspektem vývoje modulu oznámení o nedoručení obecný posun přístupu k interpretům. Oznámení o nedoručení verze 1.1 začalo jako součást nového přístupu MIDL 2.0 k zařazování, přičemž vložené zástupné procedury jsou upřednostňované pro aspekty výkonu. S nejnovější verzí oznámení o nedoručení se –Oif stal nejčastěji používaným režimem kompilátoru, téměř až po vyloučení vložených zástupných procedur.

Popisovače řetězců formátu protokolu RPC NDR jsou podrobněji popsány v následujících tématech: