rpcndr.h) (MIDL_STUB_DESC 结构

MIDL_STUB_DESC 结构是 MIDL 生成的结构,其中包含有关客户端和服务器之间 RPC 调用的接口存根的信息。

语法

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;

成员

RpcInterfaceInformation

对于服务器端的非对象 RPC 接口,它指向 RPC 服务器接口结构。 在客户端,它指向 RPC 客户端接口结构。 对于对象接口,它为 null。

pfnAllocate

存根要使用的内存分配函数。 对于非对象接口,设置为 midl_user_allocate ,对于对象接口设置为 NdrOleAllocate

pfnFree

存根要使用的无内存函数。 对于非对象接口,设置为 midl_user_free ;对于对象接口,设置为 NdrOleFree

IMPLICIT_HANDLE_INFO

联合包含以下句柄之一。

IMPLICIT_HANDLE_INFO.pAutoHandle

指向 RPC 调用的隐式自动句柄的指针。

IMPLICIT_HANDLE_INFO.pPrimitiveHandle

指向 RPC 调用的隐式基元句柄的指针。

IMPLICIT_HANDLE_INFO.pGenericBindingInfo

指向有关隐式泛型句柄的信息的指针。

apfnNdrRundownRoutines

上下文句柄断开函数的数组。

aGenericBindingRoutinePairs

用于绑定和取消绑定隐式泛型句柄的函数对的函数指针数组。

apfnExprEval

指向表达式计算器函数的函数指针数组,用于评估 MIDL 复杂一致性和不同的说明。 例如, size_is (param1 + param2) 。

aXmitQuintuple

用户定义的 transmit_asrepresent_as 类型的函数指针数组。

pFormatTypes

指向类型格式说明的指针。

fCheckBounds

描述用户指定的 /error MIDL 编译器选项的标志。

Version

存根所需的 NDR 版本。

pMallocFreeStruct

指向包含 allocate 和 free 函数指针的 MALLOC_FREE_STRUCT 结构的指针。 如果指定 了enable_allocate MIDL 属性,请使用 。

MIDLVersion

用于编译 .idl 文件的 MIDL 编译器的版本。

CommFaultOffsets

具有 comm_statusfault_status 属性的参数的堆栈偏移量数组。

aUserMarshalQuadruple

用户定义的user_marshal和wire_marshal类型的函数指针数组。

NotifyRoutineTable

指定了 notify 或 notify_flag 属性的方法的通知函数指针数组。

mFlags

描述存根属性的标志

含义
RPCFLG_HAS_MULTI_SYNTAXES
如果存根支持多种传输语法,请设置 。
RPCFLG_HAS_CALLBACK
如果接口包含回调函数,则设置 。
RPC_INTERFACE_HAS_PIPES
如果接口包含使用管道的方法,则设置 。

CsRoutineTables

未使用。

ProxyServerInfo

pExprInfo

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 rpcndr.h (包括 Rpc.h)