Author: fireball
Date: Sun Mar 26 23:38:03 2006
New Revision: 21395
URL:
http://svn.reactos.ru/svn/reactos?rev=21395&view=rev
Log:
- Update rpc-related headers to Wine 0.9.10 (rpcndr.h is merged with the new changes, not
replaced completely)
- dll/rpcrt4 - if NdrSendReceive fails, don't produce um exception, but just print a
warning - as it was before the Wine 0.9.10 merge (fixes TaskMgr regression, and probably
other related things)
Modified:
trunk/reactos/dll/win32/rpcrt4/ndr_midl.c
trunk/reactos/include/rpcndr.h
Modified: trunk/reactos/dll/win32/rpcrt4/ndr_midl.c
URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/rpcrt4/ndr_midl.c…
==============================================================================
--- trunk/reactos/dll/win32/rpcrt4/ndr_midl.c (original)
+++ trunk/reactos/dll/win32/rpcrt4/ndr_midl.c Sun Mar 26 23:38:03 2006
@@ -285,7 +285,11 @@
status = I_RpcSendReceive(stubmsg->RpcMsg);
if (status != RPC_S_OK)
- RpcRaiseException(status);
+ {
+ WARN("I_RpcSendReceive did not return success.\n");
+ /* FIXME: raise exception? */
+ //RpcRaiseException(status);
+ }
stubmsg->BufferLength = stubmsg->RpcMsg->BufferLength;
stubmsg->BufferStart = stubmsg->RpcMsg->Buffer;
Modified: trunk/reactos/include/rpcndr.h
URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/include/rpcndr.h?rev=21395&…
==============================================================================
--- trunk/reactos/include/rpcndr.h (original)
+++ trunk/reactos/include/rpcndr.h Sun Mar 26 23:38:03 2006
@@ -100,10 +100,7 @@
void *userContext;
} *NDR_SCONTEXT;
typedef void (__RPC_USER *NDR_RUNDOWN)(void*);
-typedef struct _SCONTEXT_QUEUE {
- unsigned long NumberOfObjects;
- NDR_SCONTEXT *ArrayOfObjects;
-} SCONTEXT_QUEUE,*PSCONTEXT_QUEUE;
+
struct _MIDL_STUB_MESSAGE;
struct _MIDL_STUB_DESC;
struct _FULL_PTR_XLAT_TABLES;
@@ -111,47 +108,16 @@
typedef unsigned long RPC_LENGTH;
typedef void(__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE*);
typedef const unsigned char *PFORMAT_STRING;
-typedef struct {
+
+typedef struct
+{
long Dimension;
unsigned long *BufferConformanceMark;
unsigned long *BufferVarianceMark;
unsigned long *MaxCountArray;
unsigned long *OffsetArray;
unsigned long *ActualCountArray;
-} ARRAY_INFO,*PARRAY_INFO;
-
-RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT);
-void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT,void*);
-void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,unsigned
long);
-void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN);
-NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void*pBuff,unsigned long);
-void RPC_ENTRY RpcSsDestroyClientContext(void**);
-void RPC_ENTRY NDRcopy(void*,void*,unsigned int);
-unsigned int RPC_ENTRY MIDL_wchar_strlen(wchar_t*);
-void RPC_ENTRY MIDL_wchar_strcpy(void*,wchar_t*);
-void RPC_ENTRY char_from_ndr(PRPC_MESSAGE,unsigned char*);
-void RPC_ENTRY char_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned
char*);
-void RPC_ENTRY short_from_ndr(PRPC_MESSAGE,unsigned short*);
-void RPC_ENTRY short_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned
short*);
-void RPC_ENTRY short_from_ndr_temp(unsigned char**,unsigned short*,unsigned long);
-void RPC_ENTRY long_from_ndr(PRPC_MESSAGE,unsigned long*);
-void RPC_ENTRY long_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned
long*);
-void RPC_ENTRY long_from_ndr_temp(unsigned char**,unsigned long*,unsigned long);
-void RPC_ENTRY enum_from_ndr(PRPC_MESSAGE,unsigned int*);
-void RPC_ENTRY float_from_ndr(PRPC_MESSAGE,void*);
-void RPC_ENTRY float_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
-void RPC_ENTRY double_from_ndr(PRPC_MESSAGE,void*);
-void RPC_ENTRY double_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*);
-void RPC_ENTRY hyper_from_ndr(PRPC_MESSAGE,hyper*);
-void RPC_ENTRY hyper_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,hyper*);
-void RPC_ENTRY hyper_from_ndr_temp(unsigned char**,hyper*,unsigned long);
-void RPC_ENTRY data_from_ndr(PRPC_MESSAGE,void*,char*,unsigned char);
-void RPC_ENTRY data_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
-void RPC_ENTRY tree_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
-void RPC_ENTRY data_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
-void RPC_ENTRY tree_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char);
-void RPC_ENTRY tree_peek_ndr(PRPC_MESSAGE,unsigned char**,char*,unsigned char);
-void *RPC_ENTRY midl_allocate(int);
+} ARRAY_INFO, *PARRAY_INFO;
typedef struct
{
@@ -160,10 +126,12 @@
void *CSArrayInfo;
} CS_STUB_INFO;
+typedef struct _NDR_PIPE_DESC *PNDR_PIPE_DESC;
+typedef struct _NDR_PIPE_MESSAGE *PNDR_PIPE_MESSAGE;
typedef struct _NDR_ASYNC_MESSAGE *PNDR_ASYNC_MESSAGE;
typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO;
-#pragma pack(push,4)
+#include <pshpack4.h>
typedef struct _MIDL_STUB_MESSAGE
{
PRPC_MESSAGE RpcMsg;
@@ -231,7 +199,8 @@
INT_PTR Reserved51_4;
INT_PTR Reserved51_5;
} MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE;
-#pragma pack(pop)
+#include <poppack.h>
+
typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*);
typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void*,unsigned char*);
typedef struct _GENERIC_BINDING_ROUTINE_PAIR {
@@ -245,12 +214,14 @@
GENERIC_UNBIND_ROUTINE pfnUnbind;
} GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO;
typedef void(__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE);
-typedef struct _XMIT_ROUTINE_QUINTUPLE {
+typedef struct _XMIT_ROUTINE_QUINTUPLE
+{
XMIT_HELPER_ROUTINE pfnTranslateToXmit;
XMIT_HELPER_ROUTINE pfnTranslateFromXmit;
XMIT_HELPER_ROUTINE pfnFreeXmit;
XMIT_HELPER_ROUTINE pfnFreeInst;
-} XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE;
+} XMIT_ROUTINE_QUINTUPLE, *PXMIT_ROUTINE_QUINTUPLE;
+
typedef struct _MALLOC_FREE_STRUCT {
void*(__RPC_USER *pfnAllocate)(unsigned int);
void(__RPC_USER *pfnFree)(void*);
@@ -263,7 +234,9 @@
typedef unsigned char *(__RPC_USER *USER_MARSHAL_MARSHALLING_ROUTINE)(unsigned long
*,unsigned char *,void *);
typedef unsigned char *(__RPC_USER *USER_MARSHAL_UNMARSHALLING_ROUTINE)(unsigned long
*,unsigned char *,void *);
typedef void (__RPC_USER *USER_MARSHAL_FREEING_ROUTINE)(unsigned long *,void *);
-typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE {
+
+typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE
+{
USER_MARSHAL_SIZING_ROUTINE pfnBufferSize;
USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall;
USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall;
@@ -290,10 +263,11 @@
NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines;
CS_TAG_GETTING_ROUTINE *pTagGettingRoutines;
} NDR_CS_ROUTINES;
-typedef struct _MIDL_STUB_DESC {
- void*RpcInterfaceInformation;
- void*(__RPC_API *pfnAllocate)(unsigned int);
- void(__RPC_API *pfnFree)(void*);
+typedef struct _MIDL_STUB_DESC
+{
+ void *RpcInterfaceInformation;
+ void * (__RPC_API *pfnAllocate)(size_t);
+ void (__RPC_API *pfnFree)(void *);
union {
handle_t *pAutoHandle;
handle_t *pPrimitiveHandle;
@@ -318,24 +292,34 @@
} MIDL_STUB_DESC;
typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC;
typedef void*PMIDL_XMIT_TYPE;
-typedef struct _MIDL_FORMAT_STRING {
+typedef struct _MIDL_FORMAT_STRING
+{
short Pad;
+#if defined(__GNUC__)
+ unsigned char Format[0];
+#else
unsigned char Format[1];
+#endif
} MIDL_FORMAT_STRING;
+
typedef struct _MIDL_SYNTAX_INFO
{
RPC_SYNTAX_IDENTIFIER TransferSyntax;
- RPC_DISPATCH_TABLE *DispatchTable;
+ RPC_DISPATCH_TABLE* DispatchTable;
PFORMAT_STRING ProcString;
- const unsigned short *FmtStringOffset;
+ const unsigned short* FmtStringOffset;
PFORMAT_STRING TypeString;
- const void *aUserMarshalQuadruple;
+ const void* aUserMarshalQuadruple;
ULONG_PTR pReserved1;
ULONG_PTR pReserved2;
} MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO;
-typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE);
-typedef long(__RPC_API *SERVER_ROUTINE)(void);
-typedef struct _MIDL_SERVER_INFO_ {
+
+typedef void (__RPC_API *STUB_THUNK)( PMIDL_STUB_MESSAGE );
+
+typedef long (__RPC_API *SERVER_ROUTINE)();
+
+typedef struct _MIDL_SERVER_INFO_
+{
PMIDL_STUB_DESC pStubDesc;
const SERVER_ROUTINE *DispatchTable;
PFORMAT_STRING ProcString;
@@ -344,151 +328,31 @@
PRPC_SYNTAX_IDENTIFIER pTransferSyntax;
ULONG_PTR nCount;
PMIDL_SYNTAX_INFO pSyntaxInfo;
-} MIDL_SERVER_INFO,*PMIDL_SERVER_INFO;
-typedef struct _MIDL_STUBLESS_PROXY_INFO {
+} MIDL_SERVER_INFO, *PMIDL_SERVER_INFO;
+
+typedef struct _MIDL_STUBLESS_PROXY_INFO
+{
PMIDL_STUB_DESC pStubDesc;
PFORMAT_STRING ProcFormatString;
const unsigned short *FormatStringOffset;
-} MIDL_STUBLESS_PROXY_INFO;
-typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO;
-typedef union _CLIENT_CALL_RETURN {
+ PRPC_SYNTAX_IDENTIFIER pTransferSyntax;
+ ULONG_PTR nCount;
+ PMIDL_SYNTAX_INFO pSyntaxInfo;
+} MIDL_STUBLESS_PROXY_INFO, *PMIDL_STUBLESS_PROXY_INFO;
+
+typedef union _CLIENT_CALL_RETURN
+{
void *Pointer;
- long Simple;
+ LONG_PTR Simple;
} CLIENT_CALL_RETURN;
-typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE;
-typedef struct _FULL_PTR_TO_REFID_ELEMENT {
- struct _FULL_PTR_TO_REFID_ELEMENT *Next;
- void*Pointer;
- unsigned long RefId;
- unsigned char State;
-} FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT;
-typedef struct _FULL_PTR_XLAT_TABLES {
- struct {
- void **XlatTable;
- unsigned char *StateTable;
- unsigned long NumberOfEntries;
- } RefIdToPointer;
- struct {
- PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
- unsigned long NumberOfBuckets;
- unsigned long HashMask;
- } PointerToRefId;
- unsigned long NextRefId;
- XLAT_SIDE XlatSide;
-} FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES;
-void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
-unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING pFormat);
-unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int);
-void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN);
-void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char);
-unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-void RPC_ENTRY
NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE);
-NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE);
-void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-unsigned long RPC_ENTRY
NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
-void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-void RPC_ENTRY
NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
-unsigned char *RPC_ENTRY
NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
-void RPC_ENTRY
NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int);
-unsigned char *RPC_ENTRY
NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC);
-unsigned char *RPC_ENTRY
NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE);
-void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE);
-unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned
long,RPC_BINDING_HANDLE);
-unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned
long,RPC_BINDING_HANDLE);
-unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*);
-unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned
char*,RPC_BINDING_HANDLE*);
-void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE);
-CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...);
+
typedef enum {
STUB_UNMARSHAL,
STUB_CALL_SERVER,
STUB_MARSHAL,
STUB_CALL_SERVER_NO_HRESULT
} STUB_PHASE;
+
typedef enum {
PROXY_CALCSIZE,
PROXY_GETBUFFER,
@@ -496,66 +360,245 @@
PROXY_SENDRECEIVE,
PROXY_UNMARSHAL
} PROXY_PHASE;
-long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct
IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*);
-void RPC_ENTRY NdrServerCall(PRPC_MESSAGE);
-int RPC_ENTRY NdrServerUnmarshall(struct
IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*);
-void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct
IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned
long*,RPC_STATUS);
-int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR);
-int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**);
-int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**);
-int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
-int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
-int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
-RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long);
-RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned
long);
-unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long);
-void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*);
-RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned
long,int);
-RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int);
-typedef void *RPC_SS_THREAD_HANDLE;
-typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int);
-typedef void __RPC_API RPC_CLIENT_FREE(void*);
-void*RPC_ENTRY RpcSsAllocate(unsigned int);
-void RPC_ENTRY RpcSsDisableAllocate(void);
-void RPC_ENTRY RpcSsEnableAllocate(void);
-void RPC_ENTRY RpcSsFree(void*);
-RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void);
-void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
-void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE);
-void RPC_ENTRY
RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
-void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*);
-RPC_STATUS RPC_ENTRY RpcSmClientFree(void*);
-RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**);
-RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void);
-RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void);
-RPC_STATUS RPC_ENTRY RpcSmFree(void*);
-RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*);
-RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*);
-RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE);
-RPC_STATUS RPC_ENTRY
RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**);
-void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE);
-void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE);
-void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE);
-void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int);
-void RPC_ENTRY NdrRpcSmClientFree(void*);
-void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int);
-void RPC_ENTRY NdrRpcSsDefaultFree(void*);
-PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE);
-void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES);
-int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned
char,unsigned long*);
-int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned
char,void**);
-void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*);
-int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*);
-void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int);
-void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*);
-void*RPC_ENTRY NdrOleAllocate(unsigned int);
-void RPC_ENTRY NdrOleFree(void*);
-unsigned char*RPC_ENTRY NdrUserMarshalMarshall(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned char*RPC_ENTRY NdrUserMarshalUnmarshall(PMIDL_STUB_MESSAGE,unsigned
char**,PFORMAT_STRING,unsigned char);
-void RPC_ENTRY NdrUserMarshalBufferSize(PMIDL_STUB_MESSAGE,unsigned
char*,PFORMAT_STRING);
-unsigned long RPC_ENTRY NdrUserMarshalMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING);
-void RPC_ENTRY NdrUserMarshalFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING);
+
+typedef enum {
+ XLAT_SERVER = 1,
+ XLAT_CLIENT
+} XLAT_SIDE;
+
+typedef struct _FULL_PTR_TO_REFID_ELEMENT {
+ struct _FULL_PTR_TO_REFID_ELEMENT *Next;
+ void *Pointer;
+ unsigned long RefId;
+ unsigned char State;
+} FULL_PTR_TO_REFID_ELEMENT, *PFULL_PTR_TO_REFID_ELEMENT;
+
+/* Full pointer translation tables */
+typedef struct _FULL_PTR_XLAT_TABLES {
+ struct {
+ void **XlatTable;
+ unsigned char *StateTable;
+ unsigned long NumberOfEntries;
+ } RefIdToPointer;
+
+ struct {
+ PFULL_PTR_TO_REFID_ELEMENT *XlatTable;
+ unsigned long NumberOfBuckets;
+ unsigned long HashMask;
+ } PointerToRefId;
+
+ unsigned long NextRefId;
+ XLAT_SIDE XlatSide;
+} FULL_PTR_XLAT_TABLES, *PFULL_PTR_XLAT_TABLES;
+
+struct IRpcStubBuffer;
+
+typedef unsigned long error_status_t;
+typedef void * NDR_CCONTEXT;
+
+typedef struct _SCONTEXT_QUEUE {
+ unsigned long NumberOfObjects;
+ NDR_SCONTEXT *ArrayOfObjects;
+} SCONTEXT_QUEUE, *PSCONTEXT_QUEUE;
+
+/* Context Handles */
+
+RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY
+ NDRCContextBinding( IN NDR_CCONTEXT CContext );
+
+RPCRTAPI void RPC_ENTRY
+ NDRCContextMarshall( IN NDR_CCONTEXT CContext, OUT void *pBuff );
+
+RPCRTAPI void RPC_ENTRY
+ NDRCContextUnmarshall( OUT NDR_CCONTEXT *pCContext, IN RPC_BINDING_HANDLE hBinding,
+ IN void *pBuff, IN unsigned long DataRepresentation );
+
+RPCRTAPI void RPC_ENTRY
+ NDRSContextMarshall( IN NDR_SCONTEXT CContext, OUT void *pBuff, IN NDR_RUNDOWN
userRunDownIn );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NDRSContextUnmarshall( IN void *pBuff, IN unsigned long DataRepresentation );
+
+RPCRTAPI void RPC_ENTRY
+ NDRSContextMarshallEx( IN RPC_BINDING_HANDLE BindingHandle, IN NDR_SCONTEXT CContext,
+ OUT void *pBuff, IN NDR_RUNDOWN userRunDownIn );
+
+RPCRTAPI void RPC_ENTRY
+ NDRSContextMarshall2( IN RPC_BINDING_HANDLE BindingHandle, IN NDR_SCONTEXT CContext,
+ OUT void *pBuff, IN NDR_RUNDOWN userRunDownIn, IN void *
CtxGuard,
+ IN unsigned long Flags );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NDRSContextUnmarshallEx( IN RPC_BINDING_HANDLE BindingHandle, IN void *pBuff,
+ IN unsigned long DataRepresentation );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NDRSContextUnmarshall2( IN RPC_BINDING_HANDLE BindingHandle, IN void *pBuff,
+ IN unsigned long DataRepresentation, IN void *CtxGuard,
+ IN unsigned long Flags );
+
+RPCRTAPI void RPC_ENTRY
+ NdrClientContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT ContextHandle, int
fCheck );
+
+RPCRTAPI void RPC_ENTRY
+ NdrClientContextUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg, OUT NDR_CCONTEXT*
pContextHandle,
+ IN RPC_BINDING_HANDLE BindHandle );
+
+RPCRTAPI void RPC_ENTRY
+ NdrServerContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle,
NDR_RUNDOWN RundownRoutine );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NdrServerContextUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg );
+
+RPCRTAPI void RPC_ENTRY
+ NdrContextHandleSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory,
PFORMAT_STRING pFormat );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NdrContextHandleInitialize( IN PMIDL_STUB_MESSAGE pStubMsg, IN PFORMAT_STRING pFormat
);
+
+RPCRTAPI void RPC_ENTRY
+ NdrServerContextNewMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle,
+ NDR_RUNDOWN RundownRoutine, PFORMAT_STRING pFormat );
+
+RPCRTAPI NDR_SCONTEXT RPC_ENTRY
+ NdrServerContextNewUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg, IN PFORMAT_STRING
pFormat );
+
+RPCRTAPI void RPC_ENTRY
+ RpcSsDestroyClientContext( IN void **ContextHandle );
+
+RPCRTAPI void RPC_ENTRY
+ NdrSimpleTypeMarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned
char FormatChar );
+RPCRTAPI void RPC_ENTRY
+ NdrSimpleTypeUnmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, unsigned
char FormatChar );
+
+/* while MS declares each prototype separately, I prefer to use macros for this kind of
thing instead */
+#define SIMPLE_TYPE_MARSHAL(type) \
+RPCRTAPI unsigned char* RPC_ENTRY \
+ Ndr##type##Marshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory,
PFORMAT_STRING pFormat ); \
+RPCRTAPI unsigned char* RPC_ENTRY \
+ Ndr##type##Unmarshall( PMIDL_STUB_MESSAGE pStubMsg, unsigned char** ppMemory,
PFORMAT_STRING pFormat, unsigned char fMustAlloc ); \
+RPCRTAPI void RPC_ENTRY \
+ Ndr##type##BufferSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory,
PFORMAT_STRING pFormat ); \
+RPCRTAPI unsigned long RPC_ENTRY \
+ Ndr##type##MemorySize( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat );
+
+#define TYPE_MARSHAL(type) \
+ SIMPLE_TYPE_MARSHAL(type) \
+RPCRTAPI void RPC_ENTRY \
+ Ndr##type##Free( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING
pFormat );
+
+TYPE_MARSHAL(Pointer)
+TYPE_MARSHAL(SimpleStruct)
+TYPE_MARSHAL(ConformantStruct)
+TYPE_MARSHAL(ConformantVaryingStruct)
+TYPE_MARSHAL(ComplexStruct)
+TYPE_MARSHAL(FixedArray)
+TYPE_MARSHAL(ConformantArray)
+TYPE_MARSHAL(ConformantVaryingArray)
+TYPE_MARSHAL(VaryingArray)
+TYPE_MARSHAL(ComplexArray)
+TYPE_MARSHAL(EncapsulatedUnion)
+TYPE_MARSHAL(NonEncapsulatedUnion)
+TYPE_MARSHAL(ByteCountPointer)
+TYPE_MARSHAL(XmitOrRepAs)
+TYPE_MARSHAL(UserMarshal)
+TYPE_MARSHAL(InterfacePointer)
+TYPE_MARSHAL(Range)
+
+SIMPLE_TYPE_MARSHAL(ConformantString)
+SIMPLE_TYPE_MARSHAL(NonConformantString)
+
+#undef TYPE_MARSHAL
+#undef SIMPLE_TYPE_MARSHAL
+
+RPCRTAPI void RPC_ENTRY
+ NdrConvert2( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, long NumberParams );
+RPCRTAPI void RPC_ENTRY
+ NdrConvert( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat );
+
+/* Note: this should return a CLIENT_CALL_RETURN, but calling convention for
+ * returning structures/unions is different between Windows and gcc on i386. */
+LONG_PTR RPC_VAR_ENTRY
+ NdrClientCall2( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
+LONG_PTR RPC_VAR_ENTRY
+ NdrClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
+LONG_PTR RPC_VAR_ENTRY
+ NdrAsyncClientCall( PMIDL_STUB_DESC pStubDescriptor, PFORMAT_STRING pFormat, ... );
+
+RPCRTAPI void RPC_ENTRY
+ NdrServerCall2( PRPC_MESSAGE pRpcMsg );
+RPCRTAPI void RPC_ENTRY
+ NdrServerCall( PRPC_MESSAGE pRpcMsg );
+
+RPCRTAPI long RPC_ENTRY
+ NdrStubCall2( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel,
PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase );
+RPCRTAPI long RPC_ENTRY
+ NdrStubCall( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel,
PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase );
+RPCRTAPI long RPC_ENTRY
+ NdrAsyncStubCall( struct IRpcStubBuffer* pThis, struct IRpcChannelBuffer* pChannel,
PRPC_MESSAGE pRpcMsg, unsigned long * pdwStubPhase );
+
+RPCRTAPI void* RPC_ENTRY
+ NdrAllocate( PMIDL_STUB_MESSAGE pStubMsg, size_t Len );
+
+RPCRTAPI void RPC_ENTRY
+ NdrClearOutParameters( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void
*ArgAddr );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+ NdrMapCommAndFaultStatus( PMIDL_STUB_MESSAGE pStubMsg, unsigned long *pCommStatus,
+ unsigned long *pFaultStatus, RPC_STATUS Status_ );
+
+RPCRTAPI void* RPC_ENTRY
+ NdrOleAllocate( size_t Size );
+RPCRTAPI void RPC_ENTRY
+ NdrOleFree( void* NodeToFree );
+
+RPCRTAPI void RPC_ENTRY
+ NdrClientInitializeNew( PRPC_MESSAGE pRpcMessage, PMIDL_STUB_MESSAGE pStubMsg,
+ PMIDL_STUB_DESC pStubDesc, unsigned int ProcNum );
+RPCRTAPI unsigned char* RPC_ENTRY
+ NdrServerInitializeNew( PRPC_MESSAGE pRpcMsg, PMIDL_STUB_MESSAGE pStubMsg,
PMIDL_STUB_DESC pStubDesc );
+RPCRTAPI unsigned char* RPC_ENTRY
+ NdrGetBuffer( MIDL_STUB_MESSAGE *stubmsg, unsigned long buflen, RPC_BINDING_HANDLE
handle );
+RPCRTAPI void RPC_ENTRY
+ NdrFreeBuffer( MIDL_STUB_MESSAGE *pStubMsg );
+RPCRTAPI unsigned char* RPC_ENTRY
+ NdrSendReceive( MIDL_STUB_MESSAGE *stubmsg, unsigned char *buffer );
+
+RPCRTAPI unsigned char * RPC_ENTRY
+ NdrNsGetBuffer( PMIDL_STUB_MESSAGE pStubMsg, unsigned long BufferLength,
RPC_BINDING_HANDLE Handle );
+RPCRTAPI unsigned char * RPC_ENTRY
+ NdrNsSendReceive( PMIDL_STUB_MESSAGE pStubMsg, unsigned char *pBufferEnd,
RPC_BINDING_HANDLE *pAutoHandle );
+
+RPCRTAPI PFULL_PTR_XLAT_TABLES RPC_ENTRY
+ NdrFullPointerXlatInit( unsigned long NumberOfPointers, XLAT_SIDE XlatSide );
+RPCRTAPI void RPC_ENTRY
+ NdrFullPointerXlatFree( PFULL_PTR_XLAT_TABLES pXlatTables );
+RPCRTAPI int RPC_ENTRY
+ NdrFullPointerQueryPointer( PFULL_PTR_XLAT_TABLES pXlatTables, void *pPointer,
+ unsigned char QueryType, unsigned long *pRefId );
+RPCRTAPI int RPC_ENTRY
+ NdrFullPointerQueryRefId( PFULL_PTR_XLAT_TABLES pXlatTables, unsigned long RefId,
+ unsigned char QueryType, void **ppPointer );
+RPCRTAPI void RPC_ENTRY
+ NdrFullPointerInsertRefId( PFULL_PTR_XLAT_TABLES pXlatTables, unsigned long RefId, void
*pPointer );
+RPCRTAPI int RPC_ENTRY
+ NdrFullPointerFree( PFULL_PTR_XLAT_TABLES pXlatTables, void *Pointer );
+
+RPCRTAPI void RPC_ENTRY
+ NdrRpcSsEnableAllocate( PMIDL_STUB_MESSAGE pMessage );
+RPCRTAPI void RPC_ENTRY
+ NdrRpcSsDisableAllocate( PMIDL_STUB_MESSAGE pMessage );
+RPCRTAPI void RPC_ENTRY
+ NdrRpcSmSetClientToOsf( PMIDL_STUB_MESSAGE pMessage );
+RPCRTAPI void * RPC_ENTRY
+ NdrRpcSmClientAllocate( IN size_t Size );
+RPCRTAPI void RPC_ENTRY
+ NdrRpcSmClientFree( IN void *NodeToFree );
+RPCRTAPI void * RPC_ENTRY
+ NdrRpcSsDefaultAllocate( IN size_t Size );
+RPCRTAPI void RPC_ENTRY
+ NdrRpcSsDefaultFree( IN void *NodeToFree );
+
#ifdef __cplusplus
}
#endif