Freigeben über


MIDL_STUB_DESC-Struktur (rpcndr.h)

Die MIDL_STUB_DESC-Struktur ist eine VON MIDL generierte Struktur, die Informationen zum Schnittstellenstub zu RPC-Aufrufen zwischen Client und Server enthält.

Syntax

typedef struct _MIDL_STUB_DESC {
  void                                 *RpcInterfaceInformation;
  void * )(size_t)                                 *(pfnAllocate;
  void()(void *)                                * pfnFree;
  union {
    handle_t              *pAutoHandle;
    handle_t              *pPrimitiveHandle;
    PGENERIC_BINDING_INFO pGenericBindingInfo;
  } IMPLICIT_HANDLE_INFO;
  const NDR_RUNDOWN                    *apfnNdrRundownRoutines;
  const GENERIC_BINDING_ROUTINE_PAIR   *aGenericBindingRoutinePairs;
  const EXPR_EVAL                      *apfnExprEval;
  const XMIT_ROUTINE_QUINTUPLE         *aXmitQuintuple;
  const unsigned char                  *pFormatTypes;
  int                                  fCheckBounds;
  unsigned long                        Version;
  MALLOC_FREE_STRUCT                   *pMallocFreeStruct;
  long                                 MIDLVersion;
  const COMM_FAULT_OFFSETS             *CommFaultOffsets;
  const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
  const NDR_NOTIFY_ROUTINE             *NotifyRoutineTable;
  ULONG_PTR                            mFlags;
  const NDR_CS_ROUTINES                *CsRoutineTables;
  void                                 *ProxyServerInfo;
  const NDR_EXPR_DESC                  *pExprInfo;
} MIDL_STUB_DESC;

Member

RpcInterfaceInformation

Bei einer nicht objektorientierten RPC-Schnittstelle auf der Serverseite verweist sie auf eine RPC-Serverschnittstellenstruktur. Auf der Clientseite verweist er auf eine RPC-Clientschnittstellenstruktur. Es ist NULL für eine Objektschnittstelle.

pfnAllocate

Speicherzuordnungsfunktion, die vom Stub verwendet werden soll. Legen Sie auf midl_user_allocate für Nichtobjektschnittstelle und auf NdrOleAllocate für Objektschnittstelle fest.

pfnFree

Speicherfreie Funktion, die vom Stub verwendet werden soll. Legen Sie auf midl_user_free für die Nichtobjektschnittstelle und auf NdrOleFree für objektschnittstelle fest.

IMPLICIT_HANDLE_INFO

Die Union enthält eines der folgenden Handles.

IMPLICIT_HANDLE_INFO.pAutoHandle

Zeiger auf das implizite automatische Handle für den RPC-Aufruf.

IMPLICIT_HANDLE_INFO.pPrimitiveHandle

Zeiger auf das implizite primitive Handle für den RPC-Aufruf.

IMPLICIT_HANDLE_INFO.pGenericBindingInfo

Zeiger auf die Informationen zum impliziten generischen Handle.

apfnNdrRundownRoutines

Array von Kontexthandle-Rundownfunktionen.

aGenericBindingRoutinePairs

Array von Funktionszeigern zum Binden und Aufheben der Bindung von Funktionspaaren für das implizite generische Handle.

apfnExprEval

Array von Funktionszeigern auf Ausdrucksauswertungsfunktionen, die zur Auswertung komplexer MIDL-Konformität und unterschiedlicher Beschreibungen verwendet werden. Beispiel : size_is(param1 + param2).

aXmitQuintuple

Array eines Arrays von Funktionszeigern für benutzerdefinierte transmit_as - und represent_as typen.

pFormatTypes

Zeiger auf die Beschreibung des Typformats.

fCheckBounds

Flag, das die benutzerdefinierte MIDL-Compileroption /error beschreibt.

Version

Für den Stub erforderliche NDR-Version.

pMallocFreeStruct

Zeiger auf die MALLOC_FREE_STRUCT-Struktur, die die Zuweisungs- und freien Funktionszeiger enthält. Verwenden Sie, wenn das enable_allocate MIDL-Attribut angegeben ist.

MIDLVersion

Version des MIDL-Compilers, der zum Kompilieren der IDL-Datei verwendet wird.

CommFaultOffsets

Array von Stapeloffsets für Parameter mit comm_status - oder fault_status-Attributen .

aUserMarshalQuadruple

Array eines Arrays von Funktionszeigern für benutzerdefinierte user_marshal - und wire_marshal typen.

NotifyRoutineTable

Array von Benachrichtigungsfunktionszeigern für Methoden mit dem angegebenen Attribut notify oder notify_flag angegeben.

mFlags

Flag, das die Attribute des Stubs beschreibt

Wert Bedeutung
RPCFLG_HAS_MULTI_SYNTAXES
Legen Sie fest, ob der Stub mehrere Übertragungssyntaxen unterstützt.
RPCFLG_HAS_CALLBACK
Legen Sie fest, ob die Schnittstelle Rückruffunktionen enthält.
RPC_INTERFACE_HAS_PIPES
Legen Sie fest, ob die Schnittstelle eine Methode enthält, die Pipes verwendet.

CsRoutineTables

Nicht verwendet.

ProxyServerInfo

pExprInfo

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile rpcndr.h (include Rpc.h)