Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __RPCNDR_H_VERSION__
      7 #define __RPCNDR_H_VERSION__ (475)
      8 #endif
      9 
     10 #ifndef __RPCNDR_H__
     11 #define __RPCNDR_H__
     12 
     13 #ifdef __REQUIRED_RPCNDR_H_VERSION__
     14 #if (475 < __REQUIRED_RPCNDR_H_VERSION__)
     15 #error incorrect <rpcndr.h> version. Use the header that matches with the MIDL compiler.
     16 #endif
     17 #endif
     18 
     19 #include <pshpack8.h>
     20 #include <basetsd.h>
     21 #include <rpcnsip.h>
     22 #include <rpcsal.h>
     23 
     24 #ifdef __cplusplus
     25 extern "C" {
     26 #endif
     27 
     28 #define NDR_CHAR_REP_MASK __MSABI_LONG(0X0000000FU)
     29 #define NDR_INT_REP_MASK __MSABI_LONG(0X000000F0U)
     30 #define NDR_FLOAT_REP_MASK __MSABI_LONG(0X0000FF00U)
     31 
     32 #define NDR_LITTLE_ENDIAN __MSABI_LONG(0X00000010U)
     33 #define NDR_BIG_ENDIAN __MSABI_LONG(0X00000000U)
     34 
     35 #define NDR_IEEE_FLOAT __MSABI_LONG(0X00000000U)
     36 #define NDR_VAX_FLOAT __MSABI_LONG(0X00000100U)
     37 #define NDR_IBM_FLOAT __MSABI_LONG(0X00000300U)
     38 
     39 #define NDR_ASCII_CHAR __MSABI_LONG(0X00000000U)
     40 #define NDR_EBCDIC_CHAR __MSABI_LONG(0X00000001U)
     41 
     42 #define NDR_LOCAL_DATA_REPRESENTATION __MSABI_LONG(0X00000010U)
     43 #define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN
     44 
     45 #if _WIN32_WINNT >= 0x601
     46 #define TARGET_IS_NT61_OR_LATER 1
     47 #else
     48 #define TARGET_IS_NT61_OR_LATER 0
     49 #endif
     50 #if _WIN32_WINNT >= 0x600
     51 #define TARGET_IS_NT60_OR_LATER 1
     52 #else
     53 #define TARGET_IS_NT60_OR_LATER 0
     54 #endif
     55 #define TARGET_IS_NT51_OR_LATER 1
     56 #define TARGET_IS_NT50_OR_LATER 1
     57 #define TARGET_IS_NT40_OR_LATER 1
     58 #define TARGET_IS_NT351_OR_WIN95_OR_LATER 1
     59 
     60 #ifdef RC_INVOKED
     61 #define small char
     62 #endif
     63   typedef unsigned char byte;
     64   typedef byte cs_byte;
     65   typedef unsigned char boolean;
     66 
     67 #ifndef _HYPER_DEFINED
     68 #define _HYPER_DEFINED
     69 #define hyper /* __MINGW_EXTENSION */ __int64
     70 #define MIDL_uhyper /* __MINGW_EXTENSION */ unsigned __int64
     71 #endif
     72 
     73 #ifndef _WCHAR_T_DEFINED
     74 #define _WCHAR_T_DEFINED
     75   typedef unsigned short wchar_t;
     76 #endif
     77 
     78 #ifndef _SIZE_T_DEFINED
     79 #define _SIZE_T_DEFINED
     80 #undef size_t
     81 #ifdef _WIN64
     82   __MINGW_EXTENSION typedef unsigned __int64 size_t;
     83 #else
     84   typedef unsigned int size_t;
     85 #endif
     86 #endif
     87 
     88 #ifndef _SSIZE_T_DEFINED
     89 #define _SSIZE_T_DEFINED
     90 #undef ssize_t
     91 #ifdef _WIN64
     92   __MINGW_EXTENSION typedef __int64 ssize_t;
     93 #else
     94   typedef int ssize_t;
     95 #endif
     96 #endif
     97 
     98 #ifdef __RPC_WIN32__
     99 #define __RPC_CALLEE __stdcall
    100 #endif
    101 
    102 #ifndef __MIDL_USER_DEFINED
    103 #define __MIDL_USER_DEFINED
    104 #define midl_user_allocate MIDL_user_allocate
    105 #define midl_user_free MIDL_user_free
    106 #endif
    107 
    108 #ifndef __MIDL_user_allocate_free_DEFINED__
    109 #define __MIDL_user_allocate_free_DEFINED__
    110   void *__RPC_USER MIDL_user_allocate(SIZE_T);
    111   void __RPC_USER MIDL_user_free(void *);
    112 #endif
    113 
    114 #define RPC_VAR_ENTRY __cdecl
    115 
    116 #if (defined(_X86_) && !defined(__x86_64)) || defined(__x86_64) || defined(__ia64__)
    117 #define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport)
    118 #define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport)
    119 #else
    120 #define __MIDL_DECLSPEC_DLLIMPORT
    121 #define __MIDL_DECLSPEC_DLLEXPORT
    122 #endif
    123 
    124   typedef void *NDR_CCONTEXT;
    125 
    126   typedef struct _NDR_SCONTEXT {
    127     void *pad[2];
    128     void *userContext;
    129   } *NDR_SCONTEXT;
    130 
    131 #define NDRSContextValue(hContext) (&(hContext)->userContext)
    132 
    133 #define cbNDRContext 20
    134 
    135   typedef void (__RPC_API *NDR_RUNDOWN)(void *context);
    136   typedef void (__RPC_API *NDR_NOTIFY_ROUTINE)(void);
    137   typedef void (__RPC_API *NDR_NOTIFY2_ROUTINE)(boolean flag);
    138 
    139   typedef struct _SCONTEXT_QUEUE {
    140     unsigned __LONG32 NumberOfObjects;
    141     NDR_SCONTEXT *ArrayOfObjects;
    142   } SCONTEXT_QUEUE,*PSCONTEXT_QUEUE;
    143 
    144   RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT CContext);
    145   RPCRTAPI void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT CContext,void *pBuff);
    146   RPCRTAPI void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT *pCContext,RPC_BINDING_HANDLE hBinding,void *pBuff,unsigned __LONG32 DataRepresentation);
    147   RPCRTAPI void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT CContext,void *pBuff,NDR_RUNDOWN userRunDownIn);
    148   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void *pBuff,unsigned __LONG32 DataRepresentation);
    149   RPCRTAPI void RPC_ENTRY NDRSContextMarshallEx(RPC_BINDING_HANDLE BindingHandle,NDR_SCONTEXT CContext,void *pBuff,NDR_RUNDOWN userRunDownIn);
    150   RPCRTAPI void RPC_ENTRY NDRSContextMarshall2(RPC_BINDING_HANDLE BindingHandle,NDR_SCONTEXT CContext,void *pBuff,NDR_RUNDOWN userRunDownIn,void *CtxGuard,unsigned __LONG32 Flags);
    151   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshallEx(RPC_BINDING_HANDLE BindingHandle,void *pBuff,unsigned __LONG32 DataRepresentation);
    152   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall2(RPC_BINDING_HANDLE BindingHandle,void *pBuff,unsigned __LONG32 DataRepresentation,void *CtxGuard,unsigned __LONG32 Flags);
    153   RPCRTAPI void RPC_ENTRY RpcSsDestroyClientContext(void **ContextHandle);
    154 
    155 #define byte_from_ndr(source,target) { *(target) = *(*(char **)&(source)->Buffer)++; }
    156 #define byte_array_from_ndr(Source,LowerIndex,UpperIndex,Target) { NDRcopy ((((char *)(Target))+(LowerIndex)),(Source)->Buffer,(unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned __LONG32 *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
    157 #define boolean_from_ndr(source,target) { *(target) = *(*(char **)&(source)->Buffer)++; }
    158 #define boolean_array_from_ndr(Source,LowerIndex,UpperIndex,Target) { NDRcopy ((((char *)(Target))+(LowerIndex)),(Source)->Buffer,(unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned __LONG32 *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
    159 #define small_from_ndr(source,target) { *(target) = *(*(char **)&(source)->Buffer)++; }
    160 #define small_from_ndr_temp(source,target,format) { *(target) = *(*(char **)(source))++; }
    161 #define small_array_from_ndr(Source,LowerIndex,UpperIndex,Target) { NDRcopy ((((char *)(Target))+(LowerIndex)),(Source)->Buffer,(unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned __LONG32 *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); }
    162 
    163 #define MIDL_ascii_strlen(string) strlen(string)
    164 #define MIDL_ascii_strcpy(target,source) strcpy(target,source)
    165 #define MIDL_memset(s,c,n) memset(s,c,n)
    166 
    167 #ifndef _ERROR_STATUS_T_DEFINED
    168 #define _ERROR_STATUS_T_DEFINED
    169 typedef unsigned __LONG32 error_status_t;
    170 #endif
    171 
    172 #define _midl_ma1(p,cast) *(*(cast **)&p)++
    173 #define _midl_ma2(p,cast) *(*(cast **)&p)++
    174 #define _midl_ma4(p,cast) *(*(cast **)&p)++
    175 #define _midl_ma8(p,cast) *(*(cast **)&p)++
    176 
    177 #define _midl_unma1(p,cast) *((cast *)p)++
    178 #define _midl_unma2(p,cast) *((cast *)p)++
    179 #define _midl_unma3(p,cast) *((cast *)p)++
    180 #define _midl_unma4(p,cast) *((cast *)p)++
    181 
    182 #define _midl_fa2(p) (p = (RPC_BUFPTR)((ULONG_PTR)(p+1) & ~0x1))
    183 #define _midl_fa4(p) (p = (RPC_BUFPTR)((ULONG_PTR)(p+3) & ~0x3))
    184 #define _midl_fa8(p) (p = (RPC_BUFPTR)((ULONG_PTR)(p+7) & ~0x7))
    185 
    186 #define _midl_addp(p,n) (p += n)
    187 #define _midl_marsh_lhs(p,cast) *(*(cast **)&p)++
    188 #define _midl_marsh_up(mp,p) *(*(unsigned __LONG32 **)&mp)++ = (unsigned __LONG32)p
    189 #define _midl_advmp(mp) *(*(unsigned __LONG32 **)&mp)++
    190 #define _midl_unmarsh_up(p) (*(*(unsigned __LONG32 **)&p)++)
    191 
    192 #define NdrMarshConfStringHdr(p,s,l) (_midl_ma4(p,unsigned __LONG32) = s,_midl_ma4(p,unsigned __LONG32) = 0,_midl_ma4(p,unsigned __LONG32) = l)
    193 #define NdrUnMarshConfStringHdr(p,s,l) (s=_midl_unma4(p,unsigned __LONG32),(_midl_addp(p,4)),(l=_midl_unma4(p,unsigned __LONG32)))
    194 #define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall((NDR_CCONTEXT)pc,p),p+20)
    195 #define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CCONTEXT)pc,h,p,drep),p+20)
    196 #define NdrUnMarshSCtxtHdl(pc,p,drep) (pc = NdrSContextUnMarshall(p,drep))
    197 #define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p,(NDR_RUNDOWN)rd))
    198 
    199 #define NdrFieldOffset(s,f) (LONG_PTR)(& (((s *)0)->f))
    200 #define NdrFieldPad(s,f,p,t) ((unsigned __LONG32)(NdrFieldOffset(s,f) - NdrFieldOffset(s,p)) - sizeof(t))
    201 
    202 #define NdrFcShort(s) (unsigned char)(s & 0xff),(unsigned char)(s >> 8)
    203 #define NdrFcLong(s) (unsigned char)(s & 0xff),(unsigned char)((s & 0x0000ff00) >> 8),(unsigned char)((s & 0x00ff0000) >> 16),(unsigned char)(s >> 24)
    204 
    205 #define RPC_BAD_STUB_DATA_EXCEPTION_FILTER ((RpcExceptionCode()==STATUS_ACCESS_VIOLATION) || (RpcExceptionCode()==STATUS_DATATYPE_MISALIGNMENT) || (RpcExceptionCode()==RPC_X_BAD_STUB_DATA) || (RpcExceptionCode()==RPC_S_INVALID_BOUND))
    206 
    207   struct _MIDL_STUB_MESSAGE;
    208   struct _MIDL_STUB_DESC;
    209   struct _FULL_PTR_XLAT_TABLES;
    210 
    211   typedef unsigned char *RPC_BUFPTR;
    212   typedef unsigned __LONG32 RPC_LENGTH;
    213   typedef void (__RPC_API *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE *);
    214   typedef const unsigned char *PFORMAT_STRING;
    215 
    216   typedef struct {
    217     __LONG32 Dimension;
    218     unsigned __LONG32 *BufferConformanceMark;
    219     unsigned __LONG32 *BufferVarianceMark;
    220     unsigned __LONG32 *MaxCountArray;
    221     unsigned __LONG32 *OffsetArray;
    222     unsigned __LONG32 *ActualCountArray;
    223   } ARRAY_INFO,*PARRAY_INFO;
    224 
    225   typedef struct _NDR_ASYNC_MESSAGE *PNDR_ASYNC_MESSAGE;
    226   typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO;
    227 
    228   typedef struct {
    229     unsigned __LONG32 WireCodeset;
    230     unsigned __LONG32 DesiredReceivingCodeset;
    231     void *CSArrayInfo;
    232   } CS_STUB_INFO;
    233 
    234   struct _MIDL_SYNTAX_INFO;
    235   typedef struct _MIDL_SYNTAX_INFO MIDL_SYNTAX_INFO,*PMIDL_SYNTAX_INFO;
    236 
    237   struct NDR_ALLOC_ALL_NODES_CONTEXT;
    238   struct NDR_POINTER_QUEUE_STATE;
    239   struct _NDR_PROC_CONTEXT;
    240 
    241   typedef struct _MIDL_STUB_MESSAGE {
    242     PRPC_MESSAGE RpcMsg;
    243     unsigned char *Buffer;
    244     unsigned char *BufferStart;
    245     unsigned char *BufferEnd;
    246     unsigned char *BufferMark;
    247     unsigned __LONG32 BufferLength;
    248     unsigned __LONG32 MemorySize;
    249     unsigned char *Memory;
    250     unsigned char IsClient;
    251     unsigned char Pad;
    252     unsigned short uFlags2;
    253     int ReuseBuffer;
    254     struct NDR_ALLOC_ALL_NODES_CONTEXT *pAllocAllNodesContext;
    255     struct NDR_POINTER_QUEUE_STATE *pPointerQueueState;
    256     int IgnoreEmbeddedPointers;
    257     unsigned char *PointerBufferMark;
    258     unsigned char fBufferValid;
    259     unsigned char uFlags;
    260     unsigned short UniquePtrCount;
    261     ULONG_PTR MaxCount;
    262     unsigned __LONG32 Offset;
    263     unsigned __LONG32 ActualCount;
    264     void *(__RPC_API *pfnAllocate)(size_t);
    265     void (__RPC_API *pfnFree)(void *);
    266     unsigned char *StackTop;
    267     unsigned char *pPresentedType;
    268     unsigned char *pTransmitType;
    269     handle_t SavedHandle;
    270     const struct _MIDL_STUB_DESC *StubDesc;
    271     struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables;
    272     unsigned __LONG32 FullPtrRefId;
    273     unsigned __LONG32 PointerLength;
    274     int fInDontFree : 1;
    275     int fDontCallFreeInst : 1;
    276     int fInOnlyParam : 1;
    277     int fHasReturn : 1;
    278     int fHasExtensions : 1;
    279     int fHasNewCorrDesc : 1;
    280     int fIsOicfServer : 1;
    281     int fHasMemoryValidateCallback : 1;
    282     int fUnused : 8;
    283     int fUnused2 : 16;
    284     unsigned __LONG32 dwDestContext;
    285     void *pvDestContext;
    286     NDR_SCONTEXT *SavedContextHandles;
    287     __LONG32 ParamNumber;
    288     struct IRpcChannelBuffer *pRpcChannelBuffer;
    289     PARRAY_INFO pArrayInfo;
    290     unsigned __LONG32 *SizePtrCountArray;
    291     unsigned __LONG32 *SizePtrOffsetArray;
    292     unsigned __LONG32 *SizePtrLengthArray;
    293     void *pArgQueue;
    294     unsigned __LONG32 dwStubPhase;
    295     void *LowStackMark;
    296     PNDR_ASYNC_MESSAGE pAsyncMsg;
    297     PNDR_CORRELATION_INFO pCorrInfo;
    298     unsigned char *pCorrMemory;
    299     void *pMemoryList;
    300     CS_STUB_INFO *pCSInfo;
    301     unsigned char *ConformanceMark;
    302     unsigned char *VarianceMark;
    303 #if defined(IA64)
    304     void *BackingStoreLowMark;
    305 #else
    306     INT_PTR Unused;
    307 #endif
    308     struct _NDR_PROC_CONTEXT *pContext;
    309     void *pUserMarshalList;
    310     INT_PTR Reserved51_2;
    311     INT_PTR Reserved51_3;
    312     INT_PTR Reserved51_4;
    313     INT_PTR Reserved51_5;
    314   } MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE;
    315 
    316   typedef void *(__RPC_API *GENERIC_BINDING_ROUTINE)(void *);
    317   typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void *,unsigned char *);
    318 
    319   typedef struct _GENERIC_BINDING_ROUTINE_PAIR {
    320     GENERIC_BINDING_ROUTINE pfnBind;
    321     GENERIC_UNBIND_ROUTINE pfnUnbind;
    322   } GENERIC_BINDING_ROUTINE_PAIR,*PGENERIC_BINDING_ROUTINE_PAIR;
    323 
    324   typedef struct __GENERIC_BINDING_INFO {
    325     void *pObj;
    326     unsigned int Size;
    327     GENERIC_BINDING_ROUTINE pfnBind;
    328     GENERIC_UNBIND_ROUTINE pfnUnbind;
    329   } GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO;
    330 
    331 #define NDR_SHAREABLE __inline
    332 
    333   typedef void (__RPC_API *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE);
    334 
    335   typedef struct _XMIT_ROUTINE_QUINTUPLE {
    336     XMIT_HELPER_ROUTINE pfnTranslateToXmit;
    337     XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
    338     XMIT_HELPER_ROUTINE pfnFreeXmit;
    339     XMIT_HELPER_ROUTINE pfnFreeInst;
    340   } XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE;
    341 
    342   typedef ULONG (__RPC_API *USER_MARSHAL_SIZING_ROUTINE)(ULONG *,ULONG,void *);
    343   typedef unsigned char *(__RPC_API *USER_MARSHAL_MARSHALLING_ROUTINE)(ULONG *,unsigned char *,void *);
    344   typedef unsigned char *(__RPC_API *USER_MARSHAL_UNMARSHALLING_ROUTINE)(ULONG *,unsigned char *,void *);
    345   typedef void (__RPC_API *USER_MARSHAL_FREEING_ROUTINE)(ULONG *,void *);
    346 
    347   typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE {
    348     USER_MARSHAL_SIZING_ROUTINE pfnBufferSize;
    349     USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall;
    350     USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall;
    351     USER_MARSHAL_FREEING_ROUTINE pfnFree;
    352   } USER_MARSHAL_ROUTINE_QUADRUPLE;
    353 
    354 #define USER_MARSHAL_CB_SIGNATURE 'USRC'
    355 
    356   typedef enum _USER_MARSHAL_CB_TYPE {
    357     USER_MARSHAL_CB_BUFFER_SIZE,USER_MARSHAL_CB_MARSHALL,USER_MARSHAL_CB_UNMARSHALL,USER_MARSHAL_CB_FREE
    358   } USER_MARSHAL_CB_TYPE;
    359 
    360   typedef struct _USER_MARSHAL_CB {
    361     unsigned __LONG32 Flags;
    362     PMIDL_STUB_MESSAGE pStubMsg;
    363     PFORMAT_STRING pReserve;
    364     unsigned __LONG32 Signature;
    365     USER_MARSHAL_CB_TYPE CBType;
    366     PFORMAT_STRING pFormat;
    367     PFORMAT_STRING pTypeFormat;
    368   } USER_MARSHAL_CB;
    369 
    370 #define USER_CALL_CTXT_MASK(f) ((f) & 0x00ff)
    371 #define USER_CALL_AUX_MASK(f) ((f) & 0xff00)
    372 #define GET_USER_DATA_REP(f) ((f) >> 16)
    373 
    374 #define USER_CALL_IS_ASYNC 0x0100
    375 #define USER_CALL_NEW_CORRELATION_DESC 0x0200
    376 
    377   typedef struct _MALLOC_FREE_STRUCT {
    378     void *(__RPC_API *pfnAllocate)(size_t);
    379     void (__RPC_API *pfnFree)(void *);
    380   } MALLOC_FREE_STRUCT;
    381 
    382   typedef struct _COMM_FAULT_OFFSETS {
    383     short CommOffset;
    384     short FaultOffset;
    385   } COMM_FAULT_OFFSETS;
    386 
    387   typedef enum _IDL_CS_CONVERT {
    388     IDL_CS_NO_CONVERT,IDL_CS_IN_PLACE_CONVERT,IDL_CS_NEW_BUFFER_CONVERT
    389   } IDL_CS_CONVERT;
    390 
    391   typedef void (__RPC_API *CS_TYPE_NET_SIZE_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,unsigned __LONG32 ulLocalBufferSize,IDL_CS_CONVERT *conversionType,unsigned __LONG32 *pulNetworkBufferSize,error_status_t *pStatus);
    392   typedef void (__RPC_API *CS_TYPE_LOCAL_SIZE_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,unsigned __LONG32 ulNetworkBufferSize,IDL_CS_CONVERT *conversionType,unsigned __LONG32 *pulLocalBufferSize,error_status_t *pStatus);
    393   typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
    394   typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
    395   typedef void (__RPC_API *CS_TAG_GETTING_ROUTINE)(RPC_BINDING_HANDLE hBinding,int fServerSide,unsigned __LONG32 *pulSendingTag,unsigned __LONG32 *pulDesiredReceivingTag,unsigned __LONG32 *pulReceivingTag,error_status_t *pStatus);
    396 
    397   void __RPC_API RpcCsGetTags(RPC_BINDING_HANDLE hBinding,int fServerSide,unsigned __LONG32 *pulSendingTag,unsigned __LONG32 *pulDesiredReceivingTag,unsigned __LONG32 *pulReceivingTag,error_status_t *pStatus);
    398 
    399   typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES {
    400     CS_TYPE_NET_SIZE_ROUTINE pfnNetSize;
    401     CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs;
    402     CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize;
    403     CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs;
    404   } NDR_CS_SIZE_CONVERT_ROUTINES;
    405 
    406   typedef struct _NDR_CS_ROUTINES {
    407     NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines;
    408     CS_TAG_GETTING_ROUTINE *pTagGettingRoutines;
    409   } NDR_CS_ROUTINES;
    410 
    411   typedef struct _MIDL_STUB_DESC {
    412     void *RpcInterfaceInformation;
    413     void *(__RPC_API *pfnAllocate)(size_t);
    414     void (__RPC_API *pfnFree)(void *);
    415     union {
    416       handle_t *pAutoHandle;
    417       handle_t *pPrimitiveHandle;
    418       PGENERIC_BINDING_INFO pGenericBindingInfo;
    419     } IMPLICIT_HANDLE_INFO;
    420     const NDR_RUNDOWN *apfnNdrRundownRoutines;
    421     const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs;
    422     const EXPR_EVAL *apfnExprEval;
    423     const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple;
    424     const unsigned char *pFormatTypes;
    425     int fCheckBounds;
    426     unsigned __LONG32 Version;
    427     MALLOC_FREE_STRUCT *pMallocFreeStruct;
    428     __LONG32 MIDLVersion;
    429     const COMM_FAULT_OFFSETS *CommFaultOffsets;
    430     const USER_MARSHAL_ROUTINE_QUADRUPLE *aUserMarshalQuadruple;
    431     const NDR_NOTIFY_ROUTINE *NotifyRoutineTable;
    432     ULONG_PTR mFlags;
    433     const NDR_CS_ROUTINES *CsRoutineTables;
    434     void *Reserved4;
    435     ULONG_PTR Reserved5;
    436   } MIDL_STUB_DESC;
    437 
    438   typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
    439   typedef void *PMIDL_XMIT_TYPE;
    440 
    441   typedef struct _MIDL_FORMAT_STRING {
    442     short Pad;
    443     unsigned char Format[];
    444   } MIDL_FORMAT_STRING;
    445 
    446   typedef void (__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
    447   typedef __LONG32 (__RPC_API *SERVER_ROUTINE)();
    448 
    449   typedef struct _MIDL_SERVER_INFO_ {
    450     PMIDL_STUB_DESC pStubDesc;
    451     const SERVER_ROUTINE *DispatchTable;
    452     PFORMAT_STRING ProcString;
    453     const unsigned short *FmtStringOffset;
    454     const STUB_THUNK *ThunkTable;
    455     PRPC_SYNTAX_IDENTIFIER pTransferSyntax;
    456     ULONG_PTR nCount;
    457     PMIDL_SYNTAX_INFO pSyntaxInfo;
    458   } MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
    459 
    460 #undef _MIDL_STUBLESS_PROXY_INFO
    461 
    462   typedef struct _MIDL_STUBLESS_PROXY_INFO {
    463     PMIDL_STUB_DESC pStubDesc;
    464     PFORMAT_STRING ProcFormatString;
    465     const unsigned short *FormatStringOffset;
    466     PRPC_SYNTAX_IDENTIFIER pTransferSyntax;
    467     ULONG_PTR nCount;
    468     PMIDL_SYNTAX_INFO pSyntaxInfo;
    469   } MIDL_STUBLESS_PROXY_INFO;
    470 
    471   typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
    472 
    473   struct _MIDL_SYNTAX_INFO {
    474     RPC_SYNTAX_IDENTIFIER TransferSyntax;
    475     RPC_DISPATCH_TABLE *DispatchTable;
    476     PFORMAT_STRING ProcString;
    477     const unsigned short *FmtStringOffset;
    478     PFORMAT_STRING TypeString;
    479     const void *aUserMarshalQuadruple;
    480     ULONG_PTR pReserved1;
    481     ULONG_PTR pReserved2;
    482   };
    483 
    484   typedef unsigned short *PARAM_OFFSETTABLE,*PPARAM_OFFSETTABLE;
    485 
    486   typedef union _CLIENT_CALL_RETURN {
    487     void *Pointer;
    488     LONG_PTR Simple;
    489   } CLIENT_CALL_RETURN;
    490 
    491   typedef enum {
    492     XLAT_SERVER = 1,XLAT_CLIENT
    493   } XLAT_SIDE;
    494 
    495   typedef struct _FULL_PTR_TO_REFID_ELEMENT {
    496     struct _FULL_PTR_TO_REFID_ELEMENT *Next;
    497     void *Pointer;
    498     unsigned __LONG32 RefId;
    499     unsigned char State;
    500   } FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
    501 
    502   typedef struct _FULL_PTR_XLAT_TABLES {
    503 
    504     struct {
    505       void **XlatTable;
    506       unsigned char *StateTable;
    507       unsigned __LONG32 NumberOfEntries;
    508     } RefIdToPointer;
    509     struct {
    510       PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
    511       unsigned __LONG32 NumberOfBuckets;
    512       unsigned __LONG32 HashMask;
    513     } PointerToRefId;
    514     unsigned __LONG32 NextRefId;
    515     XLAT_SIDE XlatSide;
    516   } FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
    517 
    518   RPC_STATUS RPC_ENTRY NdrClientGetSupportedSyntaxes(RPC_CLIENT_INTERFACE *pInf,unsigned __LONG32 *pCount,MIDL_SYNTAX_INFO **pArr);
    519   RPC_STATUS RPC_ENTRY NdrServerGetSupportedSyntaxes(RPC_SERVER_INTERFACE *pInf,unsigned __LONG32 *pCount,MIDL_SYNTAX_INFO **pArr,unsigned __LONG32 *pPreferSyntaxIndex);
    520   RPCRTAPI void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,unsigned char FormatChar);
    521   RPCRTAPI unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    522   RPCRTAPI unsigned char *RPC_ENTRY NdrCsArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    523   RPCRTAPI unsigned char *RPC_ENTRY NdrCsTagMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    524   RPCRTAPI unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    525   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    526   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    527   RPCRTAPI unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    528   RPCRTAPI unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    529   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    530   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    531   RPCRTAPI unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    532   RPCRTAPI unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    533   RPCRTAPI unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    534   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    535   RPCRTAPI unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    536   RPCRTAPI unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    537   RPCRTAPI unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    538   RPCRTAPI unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    539   RPCRTAPI unsigned char *RPC_ENTRY NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    540   RPCRTAPI unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    541   RPCRTAPI void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE pStubMsg,NDR_CCONTEXT ContextHandle,int fCheck);
    542   RPCRTAPI void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE pStubMsg,NDR_SCONTEXT ContextHandle,NDR_RUNDOWN RundownRoutine);
    543   RPCRTAPI void RPC_ENTRY NdrServerContextNewMarshall(PMIDL_STUB_MESSAGE pStubMsg,NDR_SCONTEXT ContextHandle,NDR_RUNDOWN RundownRoutine,PFORMAT_STRING pFormat);
    544   RPCRTAPI void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,unsigned char FormatChar);
    545   RPCRTAPI unsigned char *RPC_ENTRY NdrCsArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    546   RPCRTAPI unsigned char *RPC_ENTRY NdrCsTagUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    547   RPCRTAPI unsigned char *RPC_ENTRY NdrRangeUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    548   RPCRTAPI void RPC_ENTRY NdrCorrelationInitialize(PMIDL_STUB_MESSAGE pStubMsg,void *pMemory,unsigned __LONG32 CacheSize,unsigned __LONG32 flags);
    549   RPCRTAPI void RPC_ENTRY NdrCorrelationPass(PMIDL_STUB_MESSAGE pStubMsg);
    550   RPCRTAPI void RPC_ENTRY NdrCorrelationFree(PMIDL_STUB_MESSAGE pStubMsg);
    551   RPCRTAPI unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    552   RPCRTAPI unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    553   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    554   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    555   RPCRTAPI unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    556   RPCRTAPI unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    557   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    558   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    559   RPCRTAPI unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    560   RPCRTAPI unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    561   RPCRTAPI unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    562   RPCRTAPI unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    563   RPCRTAPI unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    564   RPCRTAPI unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    565   RPCRTAPI unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    566   RPCRTAPI unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    567   RPCRTAPI unsigned char *RPC_ENTRY NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    568   RPCRTAPI unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **ppMemory,PFORMAT_STRING pFormat,unsigned char fMustAlloc);
    569   RPCRTAPI void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,NDR_CCONTEXT *pContextHandle,RPC_BINDING_HANDLE BindHandle);
    570   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE pStubMsg);
    571   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NdrContextHandleInitialize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    572   RPCRTAPI NDR_SCONTEXT RPC_ENTRY NdrServerContextNewUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    573   RPCRTAPI void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    574   RPCRTAPI void RPC_ENTRY NdrCsArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    575   RPCRTAPI void RPC_ENTRY NdrCsTagBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    576   RPCRTAPI void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    577   RPCRTAPI void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    578   RPCRTAPI void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    579   RPCRTAPI void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    580   RPCRTAPI void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    581   RPCRTAPI void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    582   RPCRTAPI void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    583   RPCRTAPI void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    584   RPCRTAPI void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    585   RPCRTAPI void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    586   RPCRTAPI void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    587   RPCRTAPI void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    588   RPCRTAPI void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    589   RPCRTAPI void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    590   RPCRTAPI void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    591   RPCRTAPI void RPC_ENTRY NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    592   RPCRTAPI void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    593   RPCRTAPI void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    594   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    595   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrCsArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    596   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrCsTagMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    597   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    598   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    599   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    600   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    601   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    602   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    603   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    604   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    605   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    606   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    607   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    608   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    609   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    610   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    611   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    612   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    613   RPCRTAPI void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    614   RPCRTAPI void RPC_ENTRY NdrCsArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    615   RPCRTAPI void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    616   RPCRTAPI void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    617   RPCRTAPI void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    618   RPCRTAPI void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    619   RPCRTAPI void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    620   RPCRTAPI void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    621   RPCRTAPI void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    622   RPCRTAPI void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    623   RPCRTAPI void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    624   RPCRTAPI void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    625   RPCRTAPI void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    626   RPCRTAPI void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    627   RPCRTAPI void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    628   RPCRTAPI void RPC_ENTRY NdrUserMarshalFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    629   RPCRTAPI void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pMemory,PFORMAT_STRING pFormat);
    630   RPCRTAPI void RPC_ENTRY NdrConvert2(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat,__LONG32 NumberParams);
    631   RPCRTAPI void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    632 
    633 #define USER_MARSHAL_FC_BYTE 1
    634 #define USER_MARSHAL_FC_CHAR 2
    635 #define USER_MARSHAL_FC_SMALL 3
    636 #define USER_MARSHAL_FC_USMALL 4
    637 #define USER_MARSHAL_FC_WCHAR 5
    638 #define USER_MARSHAL_FC_SHORT 6
    639 #define USER_MARSHAL_FC_USHORT 7
    640 #define USER_MARSHAL_FC_LONG 8
    641 #define USER_MARSHAL_FC_ULONG 9
    642 #define USER_MARSHAL_FC_FLOAT 10
    643 #define USER_MARSHAL_FC_HYPER 11
    644 #define USER_MARSHAL_FC_DOUBLE 12
    645 
    646   RPCRTAPI unsigned char *RPC_ENTRY NdrUserMarshalSimpleTypeConvert(unsigned __LONG32 *pFlags,unsigned char *pBuffer,unsigned char FormatChar);
    647   RPCRTAPI void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor,unsigned int ProcNum);
    648   RPCRTAPI unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor);
    649   RPCRTAPI void RPC_ENTRY NdrServerInitializePartial(PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor,unsigned __LONG32 RequestedBufferSize);
    650   RPCRTAPI void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor,unsigned int ProcNum);
    651   RPCRTAPI unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor);
    652   RPCRTAPI unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall (PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor,PRPC_MESSAGE pRpcMsg);
    653   RPCRTAPI void RPC_ENTRY NdrServerInitializeMarshall (PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg);
    654   RPCRTAPI unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE pStubMsg,unsigned __LONG32 BufferLength,RPC_BINDING_HANDLE Handle);
    655   RPCRTAPI unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE pStubMsg,unsigned __LONG32 BufferLength,RPC_BINDING_HANDLE Handle);
    656   RPCRTAPI unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pBufferEnd);
    657   RPCRTAPI unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE pStubMsg,unsigned char *pBufferEnd,RPC_BINDING_HANDLE *pAutoHandle);
    658   RPCRTAPI void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE pStubMsg);
    659   RPCRTAPI RPC_STATUS RPC_ENTRY NdrGetDcomProtocolVersion(PMIDL_STUB_MESSAGE pStubMsg,RPC_VERSION *pVersion);
    660   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall2(PMIDL_STUB_DESC pStubDescriptor,PFORMAT_STRING pFormat,...);
    661 #if defined (__arm__)
    662   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrpClientCall2(PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, unsigned char *StartofStack);
    663 #endif
    664   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC pStubDescriptor,PFORMAT_STRING pFormat,...);
    665   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrAsyncClientCall(PMIDL_STUB_DESC pStubDescriptor,PFORMAT_STRING pFormat,...);
    666   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrDcomAsyncClientCall(PMIDL_STUB_DESC pStubDescriptor,PFORMAT_STRING pFormat,...);
    667 
    668   typedef enum {
    669     STUB_UNMARSHAL,STUB_CALL_SERVER,STUB_MARSHAL,STUB_CALL_SERVER_NO_HRESULT
    670   } STUB_PHASE;
    671 
    672   typedef enum {
    673     PROXY_CALCSIZE,PROXY_GETBUFFER,PROXY_MARSHAL,PROXY_SENDRECEIVE,PROXY_UNMARSHAL
    674   } PROXY_PHASE;
    675 
    676   struct IRpcStubBuffer;
    677 
    678   RPCRTAPI void RPC_ENTRY NdrAsyncServerCall(PRPC_MESSAGE pRpcMsg);
    679   RPCRTAPI __LONG32 RPC_ENTRY NdrAsyncStubCall(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    680   RPCRTAPI __LONG32 RPC_ENTRY NdrDcomAsyncStubCall(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    681   RPCRTAPI __LONG32 RPC_ENTRY NdrStubCall2(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    682   RPCRTAPI void RPC_ENTRY NdrServerCall2(PRPC_MESSAGE pRpcMsg);
    683   RPCRTAPI __LONG32 RPC_ENTRY NdrStubCall (struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    684   RPCRTAPI void RPC_ENTRY NdrServerCall(PRPC_MESSAGE pRpcMsg);
    685   RPCRTAPI int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,PMIDL_STUB_MESSAGE pStubMsg,PMIDL_STUB_DESC pStubDescriptor,PFORMAT_STRING pFormat,void *pParamList);
    686   RPCRTAPI void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat);
    687   RPCRTAPI RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE pStubMsg,unsigned __LONG32 *pCommStatus,unsigned __LONG32 *pFaultStatus,RPC_STATUS Status);
    688   RPCRTAPI int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,RPC_BUFPTR pBuffer);
    689   RPCRTAPI int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem);
    690   RPCRTAPI int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem);
    691   RPCRTAPI int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,unsigned __LONG32 Count);
    692   RPCRTAPI int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,unsigned __LONG32 Count);
    693   RPCRTAPI int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,unsigned __LONG32 Count);
    694   RPCRTAPI RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,unsigned __LONG32 Count);
    695   RPCRTAPI RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE pStubMsg,unsigned char **pPtrInMem,unsigned __LONG32 Count);
    696   RPCRTAPI unsigned __LONG32 RPC_ENTRY NdrSH_Copy(unsigned char *pStubMsg,unsigned char *pPtrInMem,unsigned __LONG32 Count);
    697   RPCRTAPI void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE pMessage,unsigned char *pPtr);
    698   RPCRTAPI RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE pMessage,unsigned char *pMemory,unsigned __LONG32 Count,int Size);
    699   RPCRTAPI RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE pMessage,unsigned char **pMemory,int Size);
    700 
    701   typedef void *RPC_SS_THREAD_HANDLE;
    702 
    703   typedef void *__RPC_API RPC_CLIENT_ALLOC(size_t Size);
    704   typedef void __RPC_API RPC_CLIENT_FREE(void *Ptr);
    705 
    706   RPCRTAPI void *RPC_ENTRY RpcSsAllocate(size_t Size);
    707   RPCRTAPI void RPC_ENTRY RpcSsDisableAllocate(void);
    708   RPCRTAPI void RPC_ENTRY RpcSsEnableAllocate(void);
    709   RPCRTAPI void RPC_ENTRY RpcSsFree(void *NodeToFree);
    710   RPCRTAPI RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
    711   RPCRTAPI void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC *ClientAlloc,RPC_CLIENT_FREE *ClientFree);
    712   RPCRTAPI void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE Id);
    713   RPCRTAPI void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC *ClientAlloc,RPC_CLIENT_FREE *ClientFree,RPC_CLIENT_ALLOC **OldClientAlloc,RPC_CLIENT_FREE **OldClientFree);
    714   RPCRTAPI void *RPC_ENTRY RpcSmAllocate(size_t Size,RPC_STATUS *pStatus);
    715   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmClientFree(void *pNodeToFree);
    716   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void **ContextHandle);
    717   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
    718   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
    719   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmFree(void *NodeToFree);
    720   RPCRTAPI RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle (RPC_STATUS *pStatus);
    721   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC *ClientAlloc,RPC_CLIENT_FREE *ClientFree);
    722   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE Id);
    723   RPCRTAPI RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC *ClientAlloc,RPC_CLIENT_FREE *ClientFree,RPC_CLIENT_ALLOC **OldClientAlloc,RPC_CLIENT_FREE **OldClientFree);
    724   RPCRTAPI void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE pMessage);
    725   RPCRTAPI void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE pMessage);
    726   RPCRTAPI void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE pMessage);
    727   RPCRTAPI void *RPC_ENTRY NdrRpcSmClientAllocate(size_t Size);
    728   RPCRTAPI void RPC_ENTRY NdrRpcSmClientFree(void *NodeToFree);
    729   RPCRTAPI void *RPC_ENTRY NdrRpcSsDefaultAllocate(size_t Size);
    730   RPCRTAPI void RPC_ENTRY NdrRpcSsDefaultFree(void *NodeToFree);
    731   RPCRTAPI PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned __LONG32 NumberOfPointers,XLAT_SIDE XlatSide);
    732   RPCRTAPI void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES pXlatTables);
    733   RPCRTAPI int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES pXlatTables,void *pPointer,unsigned char QueryType,unsigned __LONG32 *pRefId);
    734   RPCRTAPI int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES pXlatTables,unsigned __LONG32 RefId,unsigned char QueryType,void **ppPointer);
    735   RPCRTAPI void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES pXlatTables,unsigned __LONG32 RefId,void *pPointer);
    736   RPCRTAPI int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES pXlatTables,void *Pointer);
    737   RPCRTAPI void *RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE pStubMsg,size_t Len);
    738   RPCRTAPI void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE pStubMsg,PFORMAT_STRING pFormat,void *ArgAddr);
    739   RPCRTAPI void *RPC_ENTRY NdrOleAllocate(size_t Size);
    740   RPCRTAPI void RPC_ENTRY NdrOleFree(void *NodeToFree);
    741 
    742 #ifdef CONST_VTABLE
    743 #define CONST_VTBL const
    744 #else
    745 #define CONST_VTBL
    746 #endif
    747 
    748 #ifndef DECLSPEC_SELECTANY
    749 #define DECLSPEC_SELECTANY __declspec(selectany)
    750 #endif
    751 
    752 #define MIDL_INTERFACE(x) struct
    753 #define EXTERN_GUID(itf,l1,s1,s2,c1,c2,c3,c4,c5,c6,c7,c8) EXTERN_C const IID DECLSPEC_SELECTANY itf = {l1,s1,s2,{c1,c2,c3,c4,c5,c6,c7,c8}}
    754 
    755   typedef struct _NDR_USER_MARSHAL_INFO_LEVEL1 {
    756     void *Buffer;
    757     unsigned __LONG32 BufferSize;
    758     void *(__RPC_API *pfnAllocate)(size_t);
    759     void (__RPC_API *pfnFree)(void *);
    760     struct IRpcChannelBuffer *pRpcChannelBuffer;
    761     ULONG_PTR Reserved[5];
    762   } NDR_USER_MARSHAL_INFO_LEVEL1;
    763 
    764   typedef struct _NDR_USER_MARSHAL_INFO {
    765     unsigned __LONG32 InformationLevel;
    766     __C89_NAMELESS union {
    767       NDR_USER_MARSHAL_INFO_LEVEL1 Level1;
    768     };
    769   } NDR_USER_MARSHAL_INFO;
    770 
    771   RPC_STATUS RPC_ENTRY NdrGetUserMarshalInfo(unsigned __LONG32 *pFlags,unsigned __LONG32 InformationLevel,NDR_USER_MARSHAL_INFO *pMarshalInfo);
    772   RPC_STATUS RPC_ENTRY NdrCreateServerInterfaceFromStub(struct IRpcStubBuffer *pStub,RPC_SERVER_INTERFACE *pServerIf);
    773   CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall3(MIDL_STUBLESS_PROXY_INFO *pProxyInfo,unsigned __LONG32 nProcNum,void *pReturnValue,...);
    774   CLIENT_CALL_RETURN RPC_VAR_ENTRY Ndr64AsyncClientCall(MIDL_STUBLESS_PROXY_INFO *pProxyInfo,unsigned __LONG32 nProcNum,void *pReturnValue,...);
    775   CLIENT_CALL_RETURN RPC_VAR_ENTRY Ndr64DcomAsyncClientCall(MIDL_STUBLESS_PROXY_INFO *pProxyInfo,unsigned __LONG32 nProcNum,void *pReturnValue,...);
    776 
    777   struct IRpcStubBuffer;
    778 
    779   RPCRTAPI void RPC_ENTRY Ndr64AsyncServerCall(PRPC_MESSAGE pRpcMsg);
    780   RPCRTAPI void RPC_ENTRY Ndr64AsyncServerCall64(PRPC_MESSAGE pRpcMsg);
    781   RPCRTAPI void RPC_ENTRY Ndr64AsyncServerCallAll(PRPC_MESSAGE pRpcMsg);
    782   RPCRTAPI __LONG32 RPC_ENTRY Ndr64AsyncStubCall(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    783   RPCRTAPI __LONG32 RPC_ENTRY Ndr64DcomAsyncStubCall(struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    784   RPCRTAPI __LONG32 RPC_ENTRY NdrStubCall3 (struct IRpcStubBuffer *pThis,struct IRpcChannelBuffer *pChannel,PRPC_MESSAGE pRpcMsg,unsigned __LONG32 *pdwStubPhase);
    785   RPCRTAPI void RPC_ENTRY NdrServerCallAll(PRPC_MESSAGE pRpcMsg);
    786   RPCRTAPI void RPC_ENTRY NdrServerCallNdr64(PRPC_MESSAGE pRpcMsg);
    787   RPCRTAPI void RPC_ENTRY NdrServerCall3(PRPC_MESSAGE pRpcMsg);
    788   RPCRTAPI void RPC_ENTRY NdrPartialIgnoreClientMarshall(PMIDL_STUB_MESSAGE pStubMsg,void *pMemory);
    789   RPCRTAPI void RPC_ENTRY NdrPartialIgnoreServerUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,void **ppMemory);
    790   RPCRTAPI void RPC_ENTRY NdrPartialIgnoreClientBufferSize(PMIDL_STUB_MESSAGE pStubMsg,void *pMemory);
    791   RPCRTAPI void RPC_ENTRY NdrPartialIgnoreServerInitialize(PMIDL_STUB_MESSAGE pStubMsg,void **ppMemory,PFORMAT_STRING pFormat);
    792   void RPC_ENTRY RpcUserFree(handle_t AsyncHandle,void *pBuffer);
    793 
    794 #ifdef __cplusplus
    795 }
    796 #endif
    797 
    798 #include <poppack.h>
    799 #endif
    800