Prozedurheaderdeskriptor

Der Header wurde mehrmals über die Lebensdauer der NDR-Engine erweitert. Der aktuelle Compiler generiert abhängig vom Compilermodus weiterhin unterschiedliche Header. Neuere Header sind jedoch eine Obermenge der älteren Header.

Der alte –Oi-Header

Der Header hat das folgende Format:

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

Wobei handle type<1> kann einer der in der folgenden _ Tabelle gezeigten Werte sein.

Hex Handle
31 FC _ BIND _ GENERIC
32 FC _ BIND _ PRIMITIVE
33 FC _ AUTO _ HANDLE
34 FC _ CALLBACK _ HANDLE
0 (explizites Handle)

Wenn der Handletyp<1> ist, verwendet die Prozedur ein implizites Handle _ der angegebenen Art. Weitere Informationen finden Sie im Thema Handles. Wenn der Handletyp<1> Null ist, ist das für die Bindung verwendete Handle einer der _ Parameter der Prozedur.

Explizite Handles können primitiv, generisch und Kontext sein. Die letzte verfügt über das folgende FC-Token.

Hex Handle
30 _FC-BINDUNGSKONTEXT _

Standardmäßig ist der Handletyp für DCOM-Schnittstellen FC _ AUTO _ HANDLE.

Die _ Oi-Flags<1> ist eine 8-Bit-Maske der folgenden Flags.

Hex Flag Bedeutung
01 Oi _ FULL _ PTR _ USED Verwendet das vollständige Zeigerpaket.
02 Oi _ RPCSS _ ALLOC _ USED Verwendet das RpcSs-Speicherpaket.
04 Oi _ OBJECT _ PROC Eine Prozedur in einer Objektschnittstelle.
08 Oi _ VERFÜGT _ ÜBER RPCFLAGS Die Prozedur verfügt über RPC-Flags ungleich 0 (null).
10 Oi_* Überladen.
20 Oi_* Überladen.
40 Oi _ VERWENDEN _ NEUE _ INIT-ROUTINEN _ Verwendet Windows NT3.5 Beta2+ init-Routinen.
80 Nicht verwendet.

Die folgenden Flags sind überladen.

Hex Flag Bedeutung
10 ENCODE _ WIRD _ VERWENDET. Wird nur bei der Auswahl verwendet.
20 DECODE _ WIRD _ VERWENDET. Wird nur bei der Auswahl verwendet.
10 Oi _ IGNORE _ OBJECT _ EXCEPTION _ HANDLING Wird nicht mehr verwendet (altes OLE).
20 Oi _ VERFÜGT _ ÜBER COMM ODER _ _ FEHLER Nur in UN-RPC, [ _ comm, _ Fehlerstatus ] .
20 Oi _ OBJ _ USE _ V2 _ INTERPRETER Verwenden Sie nur in DCOM den –Oif-Interpreter.

Das Feld rpc flags<4> beschreibt, wie das _ Feld RpcFlags der RPC _ MESSAGE-Struktur festgelegt wird. Dieses Feld ist nur vorhanden, wenn für die Oi-Flags<1> _ Oi _ HAD _ RPCFLAGS festgelegt ist. Wenn dieses Feld nicht vorhanden ist, sind die RPC-Flags für die Remoteprozedur 0 (null).

Hinweis

Zur Leistungssteigerung verfügen die asynchronen Interpreter immer über die rpc-Flags<4> _ feld vorhanden sind.

Das Feld proc _ num<2> gibt die Prozedurnummer der Prozedur an.

Die Stapelgröße<2> die Gesamtgröße aller Parameter im Stapel, einschließlich dieses Zeigers _ und/oder Rückgabewerts.

Die _ explizite _ Handlebeschreibung<> feld wird weiter unten in diesem Dokument beschrieben. Dieses Feld ist nicht vorhanden, wenn die Prozedur ein implizites Handle verwendet.