Prozedurheaderdeskriptor
Der Header wurde mehrmals über die Lebensdauer des NDR-Moduls verlängert. Der aktuelle Compiler generiert weiterhin unterschiedliche Header, je nach Compilermodus. Neuere Kopfzeilen sind jedoch eine Obermenge der älteren Kopfzeilen.
Die alte –Oi-Kopfzeile
Die Kopfzeile weist das folgende Format auf:
handle_type<1>
Oi_flags<1>
[rpc_flags<4>]
proc_num<2>
stack_size<2>
[explicit_handle_description<>]
Dabei kann handle_type<1> einer der werte sein, die in der folgenden Tabelle angezeigt werden.
Fluch | Griff |
---|---|
31 | FC_BIND_GENERIC |
32 | FC_BIND_PRIMITIVE |
33 | FC_AUTO_HANDLE |
34 | FC_CALLBACK_HANDLE |
0 | (expliziter Handle) |
Wenn das feld handle_type<1> ungleich Null ist, verwendet die Prozedur ein implizites Handle der angegebenen Art. Weitere Informationen finden Sie im Thema Handles. Wenn das feld handle_type<1> null ist, ist der für die Bindung verwendete Handle einer der Parameter der Prozedur.
Explizite Handles können grundtypisch, generisch und Kontext sein; das letzte hat das folgende FC-Token.
Fluch | Griff |
---|---|
30 | FC_BIND_CONTEXT |
Standardmäßig ist der Handletyp für DCOM-Schnittstellen FC_AUTO_HANDLE.
Das feld Oi_flags<1> ist eine 8-Bit-Maske der folgenden Flags.
Fluch | Flagge | 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_HAS_RPCFLAGS | Die Prozedur weist nichtzero Rpc-Flags auf. |
10 | Oi_* | Überladen. |
20 | Oi_* | Überladen. |
40 | Oi_USE_NEW_INIT_ROUTINES | Verwendet Windows NT3.5 Beta2+-Init-Routinen. |
80 | Unbenutzt. |
Die folgenden Flags sind überladen.
Fluch | Flagge | Bedeutung |
---|---|---|
10 | ENCODE_IS_USED | Wird nur bei der Auswahl verwendet. |
20 | DECODE_IS_USED | Wird nur bei der Auswahl verwendet. |
10 | Oi_IGNORE_OBJECT_EXCEPTION_HANDLING | Wird nicht mehr verwendet (altes OLE). |
20 | Oi_HAS_COMM_OR_FAULT | Nur in unformatiertem RPC, [comm _, fault_status]. |
20 | Oi_OBJ_USE_V2_INTERPRETER | Verwenden Sie in DCOM nur -Oif Dolmetscher. |
Im Feld rpc_flags<4> wird beschrieben, wie das feld RpcFlags der RPC_MESSAGE-Struktur festgelegt wird. Dieses Feld ist nur vorhanden, wenn das Feld Oi_flags<1> Oi_HAD_RPCFLAGS festgelegt ist. Wenn dieses Feld nicht vorhanden ist, sind die RPC-Flags für die Remoteprozedur null.
Anmerkung
Zur Leistung haben die asynchronen Dolmetscher immer die rpc_flags<4> Feld vorhanden.
Das Feld proc_num<2> stellt die Prozedurnummer der Prozedur bereit.
Die stack_size<2> stellt die Gesamtgröße aller Parameter im Stapel bereit, einschließlich aller Zeiger- und/oder Rückgabewerte.
Das feld explicit_handle_description<> wird weiter unten in diesem Dokument beschrieben. Dieses Feld ist nicht vorhanden, wenn die Prozedur ein implizites Handle verwendet.