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.