Freigeben über


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.