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_as 和 represent_as 类型的函数指针数组。
pFormatTypes
指向类型格式说明的指针。
fCheckBounds
描述用户指定的 /error MIDL 编译器选项的标志。
Version
存根所需的 NDR 版本。
pMallocFreeStruct
指向包含 allocate 和 free 函数指针的 MALLOC_FREE_STRUCT 结构的指针。 如果指定 了enable_allocate MIDL 属性,请使用 。
MIDLVersion
用于编译 .idl 文件的 MIDL 编译器的版本。
CommFaultOffsets
具有 comm_status 或 fault_status 属性的参数的堆栈偏移量数组。
aUserMarshalQuadruple
用户定义的user_marshal和wire_marshal类型的函数指针数组。
NotifyRoutineTable
指定了 notify 或 notify_flag 属性的方法的通知函数指针数组。
mFlags
描述存根属性的标志
值 | 含义 |
---|---|
|
如果存根支持多种传输语法,请设置 。 |
|
如果接口包含回调函数,则设置 。 |
|
如果接口包含使用管道的方法,则设置 。 |
CsRoutineTables
未使用。
ProxyServerInfo
pExprInfo
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | rpcndr.h (包括 Rpc.h) |