Export (0) Print
Expand All
0 out of 1 rated this helpful - Rate this topic

MIDL_STUB_DESC structure

The MIDL_STUB_DESC structure is a MIDL-generated structure that contains information about the interface stub regarding RPC calls between the client and server.

Syntax


typedef struct _MIDL_STUB_DESC {
  void                                 *RpcInterfaceInformation;
  void*                                (__RPC_API *pfnAllocate)(size_t);
  void                                 (__RPC_API *pfnFree)(void*);
  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                                 *Reserved4;
  ULONG_PTR                            Reserved5;
} MIDL_STUB_DESC, *PMIDL_STUB_DESC;

Members

RpcInterfaceInformation

For a nonobject RPC interface on the server-side, it points to an RPC server interface structure. On the client-side, it points to an RPC client interface structure. It is null for an object interface.

pfnAllocate

Memory allocation function to be used by the stub. Set to midl_user_allocate for nonobject interface and NdrOleAllocate for object interface.

pfnFree

Memory-free function to be used by the stub. Set to midl_user_free for nonobject interface and NdrOleFree for object interface.

IMPLICIT_HANDLE_INFO

The union contains one of the following handles.

pAutoHandle

Pointer to the implicit auto handle for the RPC call.

pPrimitiveHandle

Pointer to the implicit primitive handle for the RPC call.

pGenericBindingInfo

Pointer to the information about the implicit generic handle.

apfnNdrRundownRoutines

Array of context handle rundown functions.

aGenericBindingRoutinePairs

Array of function pointers to bind and unbind function pairs for the implicit generic handle.

apfnExprEval

Array of function pointers to expression evaluator functions used to evaluate MIDL complex conformance and varying descriptions. For example, size_is(param1 + param2).

aXmitQuintuple

Array of an array of function pointers for user-defined transmit_as and represent_as types.

pFormatTypes

Pointer to the type format description.

fCheckBounds

Flag describing the user-specified /error MIDL compiler option.

Version

NDR version required for the stub.

pMallocFreeStruct

Pointer to the MALLOC_FREE_STRUCT structure which contains the allocate and free function pointers. Use if the enable_allocate MIDL attribute is specified.

MIDLVersion

Version of the MIDL compiler used to compile the .idl file.

CommFaultOffsets

Array of stack offsets for parameters with comm_status or fault_status attributes.

aUserMarshalQuadruple

Array of an array of function pointers for user-defined user_marshal and wire_marshal types.

NotifyRoutineTable

Array of notification function pointers for methods with the notify or notify_flag attribute specified.

mFlags

Flag describing the attributes of the stub

ValueMeaning
RPCFLG_HAS_MULTI_SYNTAXES

Set if the stub supports multiple transfer syntaxes.

RPCFLG_HAS_CALLBACK

Set if the interface contains callback functions.

RPC_INTERFACE_HAS_PIPES

Set if the interface contains a method that uses pipes.

 

CsRoutineTables

Unused.

Reserved4

Unused.

Reserved5

Unused.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Rpcndr.h (include Rpc.h)

 

 

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.