Condividi tramite


struttura MIDL_STUB_DESC (rpcndr.h)

La struttura MIDL_STUB_DESC è una struttura generata da MIDL che contiene informazioni sullo stub dell'interfaccia relative alle chiamate RPC tra il client e il server.

Sintassi

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;

Members

RpcInterfaceInformation

Per un'interfaccia RPC non oggetto sul lato server, punta a una struttura di interfaccia server RPC. Sul lato client punta a una struttura dell'interfaccia client RPC. È Null per un'interfaccia oggetto.

pfnAllocate

Funzione di allocazione della memoria da usare dallo stub. Impostare su midl_user_allocate per l'interfaccia non oggetto e NdrOleAllocate per l'interfaccia dell'oggetto.

pfnFree

Funzione senza memoria da usare dallo stub. Impostare su midl_user_free per l'interfaccia nonobject e NdrOleFree per l'interfaccia dell'oggetto.

IMPLICIT_HANDLE_INFO

L'unione contiene uno degli handle seguenti.

IMPLICIT_HANDLE_INFO.pAutoHandle

Puntatore all'handle automatico implicito per la chiamata RPC.

IMPLICIT_HANDLE_INFO.pPrimitiveHandle

Puntatore all'handle primitivo implicito per la chiamata RPC.

IMPLICIT_HANDLE_INFO.pGenericBindingInfo

Puntatore alle informazioni sull'handle generico implicito.

apfnNdrRundownRoutines

Matrice di funzioni di rundown dell'handle di contesto.

aGenericBindingRoutinePairs

Matrice di puntatori a funzione per associare e annullare l'associazione delle coppie di funzioni per l'handle generico implicito.

apfnExprEval

Matrice di puntatori a funzione alle funzioni di valutazione delle espressioni usate per valutare la conformità complessa MIDL e descrizioni variabili. Ad esempio, size_is(param1 + param2).

aXmitQuintuple

Matrice di una matrice di puntatori a funzione per i tipi di transmit_as e represent_as definiti dall'utente.

pFormatTypes

Puntatore alla descrizione del formato del tipo.

fCheckBounds

Flag che descrive l'opzione del compilatore /error MIDL specificata dall'utente.

Version

Versione NDR necessaria per lo stub.

pMallocFreeStruct

Puntatore alla struttura MALLOC_FREE_STRUCT che contiene i puntatori a funzione allocati e liberi. Utilizzare se viene specificato l'attributo ENABLE_ALLOCATE MIDL.

MIDLVersion

Versione del compilatore MIDL usata per compilare il file con estensione idl.

CommFaultOffsets

Matrice di offset dello stack per i parametri con attributi comm_status o fault_status .

aUserMarshalQuadruple

Matrice di una matrice di puntatori a funzione per i tipi di user_marshal e wire_marshal definiti dall'utente.

NotifyRoutineTable

Matrice di puntatori a funzione di notifica per i metodi con l'attributo notify o notify_flag specificato.

mFlags

Flag che descrive gli attributi dello stub

Valore Significato
RPCFLG_HAS_MULTI_SYNTAXES
Impostare se lo stub supporta più sintassi di trasferimento.
RPCFLG_HAS_CALLBACK
Impostare se l'interfaccia contiene funzioni di callback.
RPC_INTERFACE_HAS_PIPES
Impostare se l'interfaccia contiene un metodo che utilizza pipe.

CsRoutineTables

Non utilizzato.

ProxyServerInfo

pExprInfo

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione rpcndr.h (include Rpc.h)