Partager via


structure MIDL_STUB_DESC (rpcndr.h)

La structure MIDL_STUB_DESC est une structure générée par MIDL qui contient des informations sur le stub d’interface concernant les appels RPC entre le client et le serveur.

Syntaxe

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;

Membres

RpcInterfaceInformation

Pour une interface RPC non-objet côté serveur, elle pointe vers une structure d’interface de serveur RPC. Côté client, il pointe vers une structure d’interface cliente RPC. Elle est null pour une interface d’objet.

pfnAllocate

Fonction d’allocation de mémoire à utiliser par le stub. Définissez sur midl_user_allocate pour l’interface non-objet et NdrOleAllocate pour l’interface objet.

pfnFree

Fonction sans mémoire à utiliser par le stub. Définissez sur midl_user_free pour l’interface non-objet et NdrOleFree pour l’interface objet.

IMPLICIT_HANDLE_INFO

L’union contient l’un des handles suivants.

IMPLICIT_HANDLE_INFO.pAutoHandle

Pointeur vers le handle automatique implicite pour l’appel RPC.

IMPLICIT_HANDLE_INFO.pPrimitiveHandle

Pointeur vers le handle primitif implicite pour l’appel RPC.

IMPLICIT_HANDLE_INFO.pGenericBindingInfo

Pointeur vers les informations sur le handle générique implicite.

apfnNdrRundownRoutines

Tableau de fonctions d’exécution de gestion de contexte.

aGenericBindingRoutinePairs

Tableau de pointeurs de fonction pour lier et dissocier des paires de fonctions pour le handle générique implicite.

apfnExprEval

Tableau de pointeurs de fonction vers les fonctions d’évaluateur d’expression utilisées pour évaluer la conformité complexe midl et les descriptions variables. Par exemple, size_is(param1 + param2).

aXmitQuintuple

Tableau d’un tableau de pointeurs de fonction pour les types transmit_as et represent_as définis par l’utilisateur .

pFormatTypes

Pointeur vers la description du format de type.

fCheckBounds

Indicateur décrivant l’option du compilateur /error MIDL spécifiée par l’utilisateur.

Version

Version de remise de remise requise pour le stub.

pMallocFreeStruct

Pointeur vers la structure MALLOC_FREE_STRUCT qui contient les pointeurs de fonction d’allocation et de fonction libre. Utilisez si l’attribut MIDL enable_allocate est spécifié.

MIDLVersion

Version du compilateur MIDL utilisé pour compiler le fichier .idl.

CommFaultOffsets

Tableau de décalages de pile pour les paramètres avec des attributs comm_status ou fault_status .

aUserMarshalQuadruple

Tableau d’un tableau de pointeurs de fonction pour les types user_marshal et wire_marshal définis par l’utilisateur .

NotifyRoutineTable

Tableau de pointeurs de fonction de notification pour les méthodes avec l’attribut notify ou notify_flag spécifié.

mFlags

Indicateur décrivant les attributs du stub

Valeur Signification
RPCFLG_HAS_MULTI_SYNTAXES
Définissez si le stub prend en charge plusieurs syntaxes de transfert.
RPCFLG_HAS_CALLBACK
Définissez si l’interface contient des fonctions de rappel.
RPC_INTERFACE_HAS_PIPES
Définissez si l’interface contient une méthode qui utilise des canaux.

CsRoutineTables

Inutilisé.

ProxyServerInfo

pExprInfo

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête rpcndr.h (inclure Rpc.h)