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